:root { --catalog-ink:#203349; --catalog-muted:#586b80; --catalog-blue:#2476b1; --catalog-line:#e0e9f0; }
.catalog-page { margin:0; color:var(--catalog-ink); background:#f4f8fb; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; line-height:1.75; }
.catalog-page * { box-sizing:border-box; }
.catalog-page a { color:var(--catalog-blue); text-underline-offset:4px; }
.catalog-page :focus-visible { outline:3px solid #248ac7; outline-offset:4px; }
.catalog-main { max-width:1160px; margin:112px auto 52px; padding:0 24px; }
.catalog-skip { position:fixed; top:-90px; left:15px; padding:12px; background:white; z-index:10001; }
.catalog-skip:focus { top:12px; }
.catalog-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:13px; color:var(--catalog-muted); margin-bottom:25px; }
.catalog-breadcrumb a { text-decoration:none; }
.catalog-hero { padding:36px 0 40px; }
.catalog-eyebrow { font-size:12px; font-weight:650; letter-spacing:.1em; color:var(--catalog-muted); margin:0 0 13px; }
.catalog-hero h1 { font-size:clamp(30px,4.2vw,48px); line-height:1.3; letter-spacing:-.04em; margin:0 0 20px; font-weight:700; }
.catalog-hero h1 span { display:block; font-size:clamp(20px,2.7vw,29px); letter-spacing:-.02em; font-weight:500; margin-top:12px; }
.catalog-lead { max-width:790px; color:var(--catalog-muted); font-size:17px; margin:0 0 24px; }
.catalog-actions { display:flex; flex-wrap:wrap; gap:12px; margin:22px 0; }
.catalog-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:8px 16px; border:1px solid #bbd3e3; border-radius:8px; text-decoration:none; background:#fff; font-size:14px; font-weight:600; }
.catalog-button:hover { background:#edf6ff; }
.catalog-button.is-primary { background:var(--catalog-blue); border-color:var(--catalog-blue); color:#fff; }
.catalog-button.is-primary:hover { background:#195d8d; }
.catalog-note { font-size:13px; color:var(--catalog-muted); }
.catalog-section-head { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-bottom:20px; }
.catalog-section-head h2 { margin:0; }
.catalog-section-head .catalog-eyebrow { margin-bottom:5px; }
.catalog-page h2 { font-size:23px; line-height:1.4; }
.catalog-page h3 { font-size:17px; line-height:1.5; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.catalog-school-card { background:#fff; border:1px solid var(--catalog-line); border-radius:14px; padding:25px; }
.catalog-school-card h3 { margin:0 0 12px; font-size:22px; }
.catalog-school-card h3 a { text-decoration:none; color:var(--catalog-ink); }
.catalog-school-card h3 a:hover { color:var(--catalog-blue); }
.catalog-school-card p:not(.catalog-eyebrow) { color:var(--catalog-muted); font-size:13px; margin-bottom:20px; }
.catalog-card-links { display:grid; grid-template-columns:1fr 1fr; gap:9px 12px; font-size:13px; }
.catalog-card-links a { padding:5px 0; text-decoration:none; }
.catalog-panel { margin:26px 0; padding:30px; background:#fff; border:1px solid var(--catalog-line); border-radius:14px; }
.catalog-panel>h2:first-child { margin-top:0; }
.catalog-tabs { display:flex; flex-wrap:wrap; gap:8px; border-bottom:1px solid #d5e2ec; padding-bottom:16px; margin-top:28px; }
.catalog-tabs a { padding:8px 14px; min-height:44px; border-radius:7px; text-decoration:none; font-size:14px; }
.catalog-tabs a[aria-current] { background:#dfedf8; color:#195d8d; font-weight:650; }
.catalog-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(175px,1fr)); gap:14px; margin:24px 0; }
.catalog-stat { border-radius:10px; background:#f3f7fa; padding:18px; }
.catalog-stat span { display:block; font-size:12px; color:var(--catalog-muted); }
.catalog-stat strong { display:block; font-size:30px; margin:6px 0; font-variant-numeric:tabular-nums; }
.catalog-stat small { font-size:13px; font-weight:400; }
.catalog-table-wrap { overflow-x:auto; border:1px solid var(--catalog-line); border-radius:9px; }
.catalog-table { width:100%; border-collapse:collapse; font-size:14px; min-width:650px; text-align:left; }
.catalog-table caption { text-align:left; padding:13px 16px; font-size:13px; background:#f8fafc; color:var(--catalog-muted); }
.catalog-table th,.catalog-table td { padding:12px 16px; border-top:1px solid var(--catalog-line); }
.catalog-table th { background:#f3f7fa; white-space:nowrap; }
.catalog-table td:nth-child(4) { white-space:nowrap; font-variant-numeric:tabular-nums; }
.catalog-sources { margin-top:25px; padding-top:18px; border-top:1px solid var(--catalog-line); font-size:13px; color:var(--catalog-muted); overflow-wrap:anywhere; }
.catalog-sources h3 { color:var(--catalog-ink); margin:0 0 10px; }
.catalog-sources ul { padding-left:20px; }
.catalog-sources li { margin:7px 0; }
.catalog-events { display:grid; gap:0; }
.catalog-event { display:grid; grid-template-columns:145px minmax(0,1fr); gap:20px; padding:22px 0; border-top:1px solid var(--catalog-line); }
.catalog-date { color:var(--catalog-blue); font-size:14px; font-variant-numeric:tabular-nums; }
.catalog-date strong,.catalog-date span { display:block; }
.catalog-event h3 { margin:0 0 7px; }
.catalog-event p { margin:5px 0; color:var(--catalog-muted); font-size:14px; }
.catalog-event a { display:inline-flex; margin-top:9px; font-size:13px; }
.catalog-tag { background:#edf3f8; color:#365d80; padding:3px 8px; border-radius:4px; }
.catalog-empty { padding:22px; border-radius:8px; background:#f5f8fb; color:var(--catalog-muted); }
.catalog-departments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; list-style:none; }
.catalog-departments li { background:#f4f8fa; border-radius:7px; padding:14px; }
.catalog-departments strong { font-size:14px; display:block; }
.catalog-departments span { font-size:12px; color:var(--catalog-muted); }
.catalog-footer { max-width:1112px; margin:auto; padding:32px 24px 45px; border-top:1px solid #d5e2ec; color:var(--catalog-muted); font-size:13px; }
.catalog-footer p { max-width:760px; }
.catalog-footer nav { display:flex; flex-wrap:wrap; gap:10px 22px; }
.catalog-directory-hero { padding:16px 0 24px; }
.catalog-directory-hero h1 { font-size:clamp(30px,4vw,40px); }
.catalog-directory-hero .catalog-lead { margin-bottom:12px; }
.catalog-filter { display:grid; grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) minmax(140px,1fr) auto auto; gap:14px; align-items:end; padding:22px; border:1px solid var(--catalog-line); border-radius:12px; background:white; }
.catalog-filter label { display:block; font-size:13px; margin-bottom:7px; color:var(--catalog-muted); }
.catalog-filter input,.catalog-filter select { width:100%; min-width:0; height:44px; padding:8px 10px; border:1px solid #bbd3e3; border-radius:7px; background:white; font:inherit; font-size:14px; color:var(--catalog-ink); }
.catalog-filter button { cursor:pointer; font-family:inherit; }
.catalog-reset { padding:10px 0; font-size:14px; }
.catalog-topic-links { display:flex; flex-wrap:wrap; gap:9px; margin:18px 0 30px; font-size:13px; }
.catalog-topic-links a { padding:7px 12px; background:#e9f2f8; border-radius:7px; text-decoration:none; }
.catalog-topic-links span { color:var(--catalog-muted); margin-left:6px; }
.catalog-section-head h2 small { font-size:14px; color:var(--catalog-muted); font-weight:400; margin-left:8px; }
.catalog-pagination,.catalog-cohorts { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin:24px 0; }
.catalog-pagination a,.catalog-cohorts a { display:inline-flex; align-items:center; justify-content:center; min-width:42px; min-height:44px; padding:6px 12px; border:1px solid #bbd3e3; border-radius:6px; background:white; text-decoration:none; font-size:14px; }
.catalog-pagination a[aria-current],.catalog-cohorts a[aria-current] { background:var(--catalog-blue); color:white; }
.catalog-cohorts { justify-content:flex-start; }
@media(max-width:950px) { .catalog-filter { grid-template-columns:2fr 1fr 1fr; } }
@media(max-width:600px) { .catalog-filter { grid-template-columns:1fr 1fr; padding:16px; gap:12px; } .catalog-filter>div:first-child { grid-column:1/-1; } .catalog-filter .catalog-reset { text-align:center; } }
@media(max-width:950px) { .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:768px) { .catalog-main { margin:24px auto 35px; padding:0 16px; } .catalog-hero { padding:20px 0; } .catalog-lead { font-size:15px; } .catalog-panel { padding:21px 17px; } .catalog-departments { grid-template-columns:repeat(2,minmax(0,1fr)); } .catalog-event { grid-template-columns:1fr; gap:7px; } .catalog-date { display:flex; gap:12px; } }
@media(max-width:520px) { .catalog-grid { grid-template-columns:1fr; } .catalog-school-card { padding:22px; } .catalog-departments { grid-template-columns:1fr; } .catalog-tabs { gap:4px; } .catalog-tabs a { padding:8px 10px; font-size:13px; } .catalog-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } .catalog-stat { padding:14px; } .catalog-stat strong { font-size:25px; } }
