:root {
  --bg: #f5f7fb;
  --surface: #ffffff;
  --surface-2: #f9fafc;
  --text: #172033;
  --muted: #697386;
  --line: #dfe4ec;
  --brand: #153f6b;
  --brand-2: #245b8f;
  --accent: #e9b949;
  --accent-soft: #fff7df;
  --success: #287a58;
  --shadow: 0 12px 35px rgba(17, 36, 67, .08);
  --radius: 20px;
  --radius-sm: 12px;
  --max: 1220px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.5;
}
a { color: inherit; }
button, input, select { font: inherit; }

.site-header {
  background: linear-gradient(120deg, #102f50 0%, #174b7b 70%, #1a568c 100%);
  color: white;
  box-shadow: 0 3px 18px rgba(14, 41, 70, .18);
}
.header-inner {
  width: min(var(--max), calc(100% - 32px));
  margin: 0 auto;
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}
.brand-mark {
  width: 42px;
  height: 42px;
  border: 2px solid rgba(255,255,255,.92);
  border-radius: 11px;
  display: grid;
  place-items: center;
  font-weight: 800;
  letter-spacing: -.04em;
  background: rgba(255,255,255,.08);
}
.brand-title { font-weight: 760; font-size: 16px; line-height: 1.15; }
.brand-sub { font-size: 12px; color: rgba(255,255,255,.72); margin-top: 3px; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav a {
  padding: 10px 14px;
  border-radius: 10px;
  text-decoration: none;
  color: rgba(255,255,255,.82);
  font-size: 14px;
  font-weight: 650;
}
.nav a:hover, .nav a.active { background: rgba(255,255,255,.12); color: #fff; }
main { width: min(var(--max), calc(100% - 32px)); margin: 0 auto; padding: 34px 0 56px; }
.hero {
  background: linear-gradient(145deg, #fff 0%, #f7faff 100%);
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: 38px;
  box-shadow: var(--shadow);
  position: relative;
  overflow: hidden;
}
.hero::after {
  content: "";
  position: absolute;
  width: 280px; height: 280px;
  right: -90px; top: -110px;
  background: radial-gradient(circle, rgba(233,185,73,.22), rgba(233,185,73,0) 68%);
  pointer-events: none;
}
.eyebrow { color: var(--brand-2); font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
h1 { margin: 8px 0 12px; font-size: clamp(32px, 5vw, 52px); line-height: 1.05; letter-spacing: -.035em; max-width: 850px; }
.hero p { color: var(--muted); font-size: 17px; max-width: 790px; margin: 0; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.pill { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 8px 12px; font-size: 13px; color: #445065; }

.section-title { margin: 34px 0 16px; display:flex; align-items:end; justify-content:space-between; gap:20px; }
.section-title h2 { margin: 0; font-size: 25px; letter-spacing: -.02em; }
.section-title p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }

.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.catalog-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(17,36,67,.055);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  min-height: 220px;
  display:flex; flex-direction:column;
}
.catalog-card:hover { transform: translateY(-2px); border-color: #b7c7d8; box-shadow: var(--shadow); }
.card-icon { width: 48px; height:48px; border-radius: 14px; display:grid; place-items:center; background:#edf4fb; color:var(--brand); font-size:24px; }
.catalog-card h3 { margin: 18px 0 7px; font-size: 22px; letter-spacing: -.02em; }
.catalog-card p { color: var(--muted); margin: 0 0 18px; }
.card-footer { margin-top:auto; display:flex; justify-content:space-between; align-items:center; gap:14px; }
.card-count { color: var(--muted); font-size: 13px; }
.card-link { color: var(--brand); font-weight: 760; font-size: 14px; }

.page-head { margin: 5px 0 22px; }
.breadcrumbs { font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.breadcrumbs a { text-decoration:none; color:var(--brand-2); }
.page-head h1 { font-size: clamp(30px, 4vw, 44px); margin: 0 0 8px; }
.page-head p { margin: 0; color:var(--muted); max-width:860px; }

.filters {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  display: grid;
  grid-template-columns: 1.4fr repeat(4, minmax(150px, .75fr));
  gap: 12px;
  box-shadow: 0 8px 24px rgba(17,36,67,.045);
  position: sticky;
  top: 12px;
  z-index: 5;
}
.field label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:800; margin:0 0 6px 3px; }
.control {
  width:100%; min-height:44px; border:1px solid var(--line); border-radius:11px; background:#fff; color:var(--text); padding:0 12px; outline:none;
}
.control:focus { border-color:#84a8ca; box-shadow:0 0 0 3px rgba(36,91,143,.1); }
.search-wrap { position:relative; }
.search-wrap .control { padding-left:38px; }
.search-icon { position:absolute; left:13px; bottom:12px; color:#7a879a; }

.toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:18px 2px 12px; }
.result-count { font-size:14px; color:var(--muted); }
.reset-btn { border:0; background:transparent; color:var(--brand); cursor:pointer; font-weight:700; padding:8px 0; }

.result-list { display:grid; gap:12px; }
.result-card {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px 20px;
  box-shadow:0 5px 17px rgba(17,36,67,.035);
}
.result-main { display:grid; grid-template-columns:minmax(250px,1.45fr) minmax(170px,.7fr) minmax(190px,.8fr) auto; gap:18px; align-items:center; }
.specialty-code { font-size:12px; font-weight:800; color:var(--brand-2); text-transform:uppercase; letter-spacing:.06em; }
.result-card h3 { margin:3px 0 4px; font-size:18px; }
.meta { font-size:13px; color:var(--muted); }
.practice-type { font-weight:760; }
.date-range { font-weight:720; font-variant-numeric:tabular-nums; }
.duration { font-size:12px; color:var(--muted); margin-top:3px; }
.details-btn { border:1px solid #cad4df; background:#fff; color:var(--brand); border-radius:10px; padding:10px 12px; cursor:pointer; font-weight:750; white-space:nowrap; }
.details-btn:hover { background:#f3f7fb; }
.details { display:none; border-top:1px solid var(--line); margin-top:16px; padding-top:16px; grid-template-columns:1fr 1fr; gap:18px; }
.result-card.open .details { display:grid; }
.detail-label { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:800; margin-bottom:5px; }
.detail-value { font-size:14px; white-space:pre-line; }
.detail-wide { grid-column:1/-1; background:var(--surface-2); padding:14px; border-radius:12px; }

.term-section { margin-top:20px; }
.term-heading { display:flex; align-items:center; gap:12px; margin:18px 0 10px; }
.term-heading h2 { margin:0; font-size:20px; }
.term-line { height:1px; background:var(--line); flex:1; }
.schedule-group { background:var(--surface); border:1px solid var(--line); border-radius:16px; overflow:hidden; margin:12px 0; }
.schedule-group-head { padding:14px 18px; background:#f8fafc; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:12px; align-items:center; }
.schedule-group-head strong { font-size:15px; }
.schedule-rows { display:grid; }
.schedule-row { display:grid; grid-template-columns:175px minmax(260px,1fr) 110px; gap:18px; padding:14px 18px; align-items:center; border-top:1px solid #edf0f4; }
.schedule-row:first-child { border-top:0; }
.schedule-dates { font-weight:760; font-variant-numeric:tabular-nums; }
.schedule-event { font-size:14px; }
.schedule-days { text-align:right; color:var(--muted); font-size:13px; }

.empty { background:#fff; border:1px dashed #cbd4df; border-radius:16px; padding:30px; text-align:center; color:var(--muted); }
.notice { margin-top:22px; padding:14px 16px; border:1px solid #ead9a2; background:var(--accent-soft); border-radius:12px; font-size:13px; color:#6d561c; }

.site-footer { border-top:1px solid var(--line); background:#fff; }
.footer-inner { width:min(var(--max), calc(100% - 32px)); margin:0 auto; min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:var(--muted); font-size:13px; }

@media (max-width: 1040px) {
  .filters { grid-template-columns:repeat(3,1fr); position:static; }
  .search-wrap { grid-column:1/-1; }
  .result-main { grid-template-columns:1.3fr .7fr .8fr; }
  .details-btn { grid-column:1/-1; justify-self:start; }
}
@media (max-width: 760px) {
  .header-inner { align-items:flex-start; padding:14px 0; flex-direction:column; gap:10px; }
  .nav { width:100%; overflow:auto; }
  .nav a { padding:8px 10px; white-space:nowrap; }
  main { width:min(100% - 22px, var(--max)); padding-top:20px; }
  .hero { padding:25px 20px; border-radius:20px; }
  .catalog-grid { grid-template-columns:1fr; }
  .filters { grid-template-columns:1fr 1fr; padding:14px; }
  .search-wrap { grid-column:1/-1; }
  .result-main { grid-template-columns:1fr; gap:10px; }
  .details { grid-template-columns:1fr; }
  .detail-wide { grid-column:auto; }
  .schedule-row { grid-template-columns:1fr; gap:4px; }
  .schedule-days { text-align:left; }
  .footer-inner { padding:18px 0; flex-direction:column; align-items:flex-start; }
}
@media (max-width: 480px) {
  .filters { grid-template-columns:1fr; }
  .search-wrap { grid-column:auto; }
}

.hero-compact h1 { max-width: 960px; }
.catalog-grid-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
.catalog-card-primary { grid-column: 1 / -1; min-height: 250px; border-color:#b7cadb; background:linear-gradient(135deg,#fff 0%,#f1f7fc 100%); }
.card-kicker { margin-top:18px; color:var(--brand-2); text-transform:uppercase; letter-spacing:.08em; font-size:11px; font-weight:850; }
.catalog-card-primary h3 { margin-top:5px; font-size:28px; }

.schedule-filters { grid-template-columns: 1fr 1.3fr 1fr 2fr 1.35fr; position:static; }
.schedule-program-field { min-width:0; }
.schedule-summary {
  margin-top:18px; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:20px;
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:center; box-shadow:0 7px 22px rgba(17,36,67,.045);
}
.schedule-summary h2 { margin:3px 0 7px; font-size:24px; line-height:1.2; }
.summary-meta { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--muted); font-size:13px; }
.summary-meta span:not(:last-child)::after { content:""; }

.view-tabs { display:flex; gap:6px; margin:20px 0 12px; border-bottom:1px solid var(--line); }
.view-tab { border:0; background:transparent; color:var(--muted); padding:10px 14px 11px; cursor:pointer; font-weight:750; border-bottom:3px solid transparent; margin-bottom:-1px; }
.view-tab.active { color:var(--brand); border-bottom-color:var(--brand-2); }
.schedule-view[hidden] { display:none !important; }
.timeline-card { background:var(--surface); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 7px 22px rgba(17,36,67,.04); }
.timeline-help { padding:12px 16px; color:var(--muted); font-size:12px; border-bottom:1px solid var(--line); background:#fbfcfe; }
.timeline-scroll { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-color:#aab8c7 #eef2f6; }
.timeline-track { min-width:2288px; padding:14px 16px 18px; }
.month-grid,.weeks-grid { display:grid; grid-template-columns:repeat(52,minmax(42px,1fr)); gap:3px; }
.month-grid { margin-bottom:5px; }
.month-segment { text-align:center; padding:7px 3px; border-radius:7px; background:#edf3f8; color:#3f5064; font-size:12px; font-weight:800; }
.week-head { text-align:center; border:1px solid #e1e6ec; border-radius:7px; padding:5px 1px; min-height:44px; background:#fff; }
.week-head strong { display:block; font-size:12px; line-height:1; }
.week-head span { display:block; margin-top:4px; font-size:9px; color:var(--muted); font-variant-numeric:tabular-nums; }
.event-grid { margin-top:4px; }
.week-cell { min-height:52px; border-radius:8px; display:grid; place-items:center; border:1px solid rgba(38,52,72,.10); cursor:help; }
.week-cell span { font-size:12px; font-weight:850; }
.ev-t { background:#f7f8fa; color:#2b3543; }
.ev-nn { background:#cfe79e; color:#34451e; }
.ev-ks { background:#a9e6e5; color:#154647; }
.ev-s { background:#ffe290; color:#5b4512; }
.ev-kv { background:#bfe1cf; color:#204c39; }
.ev-np { background:#d8c6eb; color:#47335b; }
.ev-vp { background:#c99db5; color:#502d41; }
.ev-d { background:#dadada; color:#333; }
.ev-a { background:#ffc857; color:#583e00; }
.ev-k { background:#e78282; color:#562222; }
.ev-ds { background:#fff36f; color:#584f00; }
.ev-nr { background:#85b9e4; color:#173e61; }
.ev-empty { background:#fff; color:#b7c0cb; border-style:dashed; }

.period-list { display:grid; gap:10px; }
.period-card { background:var(--surface); border:1px solid var(--line); border-radius:15px; padding:14px 16px; display:grid; grid-template-columns:54px minmax(0,1fr) auto; gap:15px; align-items:center; }
.event-badge,.legend-code { width:46px; min-height:36px; border-radius:9px; display:grid; place-items:center; font-size:12px; font-weight:850; border:1px solid rgba(38,52,72,.09); }
.period-main h3 { margin:0 0 3px; font-size:15px; }
.period-dates { color:var(--muted); font-size:13px; font-variant-numeric:tabular-nums; }
.period-weeks { color:var(--muted); font-size:12px; white-space:nowrap; }
.legend-section { margin-top:28px; }
.section-title-small { margin-top:0; }
.section-title-small h2 { font-size:20px; }
.legend-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.legend-item { display:grid; grid-template-columns:46px 1fr; gap:10px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:12px; padding:9px; font-size:12px; color:#445065; }

.document-list { display:grid; gap:12px; }
.document-card { background:#fff; border:1px solid var(--line); border-radius:17px; padding:20px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; }
.document-card h3 { margin:4px 0 6px; font-size:20px; }
.document-card p { margin:0; color:var(--muted); font-size:14px; }
.document-link { text-decoration:none; color:#fff; background:var(--brand); border-radius:10px; padding:10px 13px; font-weight:750; font-size:13px; white-space:nowrap; }
.document-link.disabled { pointer-events:none; background:#e9edf2; color:#7a8696; }

@media (max-width: 1120px) {
  .schedule-filters { grid-template-columns:repeat(3,1fr); }
  .schedule-program-field { grid-column:span 2; }
  .legend-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .catalog-grid-main { grid-template-columns:1fr; }
  .catalog-card-primary { grid-column:auto; }
  .schedule-filters { grid-template-columns:1fr 1fr; }
  .schedule-program-field { grid-column:1/-1; }
  .schedule-summary { grid-template-columns:1fr; }
  .period-card { grid-template-columns:48px minmax(0,1fr); }
  .period-weeks { grid-column:2; }
  .legend-grid { grid-template-columns:1fr; }
  .document-card { grid-template-columns:1fr; }
  .document-link { justify-self:start; }
}
@media (max-width: 480px) {
  .schedule-filters { grid-template-columns:1fr; }
  .schedule-program-field { grid-column:auto; }
}
:root {
  --bg:#f7f5ef;
  --surface:#ffffff;
  --surface-2:#fbf7ec;
  --text:#171a18;
  --muted:#68716c;
  --line:#dedfd9;
  --brand:#064b39;
  --brand-2:#0b654d;
  --brand-deep:#03382b;
  --accent:#f0dfb5;
  --accent-soft:#fbf4df;
  --wine:#4b111e;
  --terracotta:#aa543f;
  --success:#1d6b50;
  --shadow:0 12px 35px rgba(6,75,57,.09);
}
.site-header{background:linear-gradient(120deg,var(--brand-deep) 0%,var(--brand) 72%,#0b5a46 100%);box-shadow:0 3px 18px rgba(3,56,43,.22)}
.header-inner{min-height:82px}
.brand-logo{display:block;width:280px;max-width:36vw;height:auto;object-fit:contain}
.brand-fallback{display:flex;align-items:center;gap:10px;color:var(--accent)}
.brand-fallback strong{font-size:20px;letter-spacing:.04em}.brand-fallback span{font-size:12px;max-width:220px;line-height:1.2}
.nav a:hover,.nav a.active{background:rgba(240,223,181,.13);color:#fff}
.hero{background:linear-gradient(145deg,#fff 0%,#fbf7ea 100%)}
.hero::after{background:radial-gradient(circle,rgba(6,75,57,.08) 0%,rgba(6,75,57,0) 70%)}
.eyebrow,.card-kicker,.breadcrumbs a,.view-tab.active{color:var(--brand)}
.catalog-card:hover{border-color:rgba(6,75,57,.35);box-shadow:0 15px 36px rgba(6,75,57,.10)}
.catalog-card-primary{border-color:#b8cabe;background:linear-gradient(135deg,#fff 0%,#f4f8f3 100%)}
.card-icon{background:var(--accent-soft);color:var(--brand)}
.card-link,.details-btn,.document-link{color:var(--brand)}
.primary-btn{border:0;border-radius:11px;padding:12px 18px;background:var(--brand);color:#fff;font-weight:800;cursor:pointer;min-height:45px;box-shadow:0 5px 14px rgba(6,75,57,.16)}
.primary-btn:hover{background:var(--brand-2)}.primary-btn:disabled{opacity:.6;cursor:wait}
.query-action{display:flex;align-items:end}.query-action .primary-btn{width:100%}
.query-empty{min-height:94px;display:grid;place-items:center;text-align:center}
.schedule-filters{grid-template-columns:1fr 1.3fr 1fr 2fr 1.35fr 1.15fr}
.practice-filters{grid-template-columns:1fr 1.5fr 1fr 1.8fr .8fr 1.2fr;align-items:end}.practice-filters .search-wrap{grid-column:span 4}.practice-filters .query-action{grid-column:span 2}
.month-segment{background:#edf3ef;color:var(--brand-deep)}
.week-head{border-color:#dfe7e2}.timeline-help{background:#faf8f1}.view-tab.active{border-bottom-color:var(--brand)}
.notice{border-left-color:var(--brand);background:#f1f6f3}
.site-footer{background:#082d24;color:#dfe9e3}
/* semantic schedule colors: subdued so the brand palette remains dominant */
.ev-t{background:#f6f7f5;color:#27312d}.ev-nn{background:#dce8c6;color:#304627}.ev-ks{background:#c9e2dc;color:#17483b}.ev-s{background:#f4dfad;color:#5a4618}.ev-kv{background:#c9dfd2;color:#244f3e}.ev-np{background:#ddd0e3;color:#493650}.ev-vp{background:#d2b2bd;color:#532f3b}.ev-d{background:#ddddda;color:#333}.ev-a{background:#e9c46a;color:#4f3a00}.ev-k{background:#d99586;color:#57291f}.ev-ds{background:#f4e985;color:#5b5200}.ev-nr{background:#a7c8d7;color:#193f4f}
@media(max-width:1180px){.schedule-filters{grid-template-columns:repeat(3,1fr)}.schedule-program-field{grid-column:span 2}.practice-filters{grid-template-columns:repeat(3,1fr)}.practice-filters .search-wrap{grid-column:span 2}.practice-filters .query-action{grid-column:span 1}}
@media(max-width:760px){.brand-logo{width:210px;max-width:58vw}.header-inner{min-height:74px}.schedule-filters,.practice-filters{grid-template-columns:1fr 1fr}.schedule-program-field,.practice-filters .search-wrap{grid-column:1/-1}.query-action,.practice-filters .query-action{grid-column:1/-1}}
@media(max-width:520px){.brand-logo{width:180px;max-width:62vw}.schedule-filters,.practice-filters{grid-template-columns:1fr}.schedule-program-field,.practice-filters .search-wrap,.query-action,.practice-filters .query-action{grid-column:auto}}

:root{
  --brand:#013220;
  --brand-2:#0b5b43;
  --brand-deep:#012719;
  --bg:#f5f3eb;
  --surface:#ffffff;
  --surface-2:#faf8f1;
  --text:#17201b;
  --muted:#68716c;
  --line:#dfe3dc;
  --accent:#e8ddbd;
  --accent-soft:#f7f1df;
  --shadow:0 12px 35px rgba(1,50,32,.09);
}
.site-header{background:#fff;color:var(--brand);border-bottom:4px solid var(--brand);box-shadow:0 3px 18px rgba(1,50,32,.10)}
.header-inner{min-height:92px}
.brand-logo{width:350px;max-width:43vw;max-height:78px;object-fit:contain;object-position:left center}
.brand-fallback{color:var(--brand)}
.nav a{color:#315044}.nav a:hover,.nav a.active{background:#edf3ef;color:var(--brand)}
.site-footer{background:var(--brand-deep);color:#e8f0eb}
.hero{background:linear-gradient(145deg,#fff 0%,#f8f5e9 100%)}
.hero::after{background:radial-gradient(circle,rgba(1,50,32,.09) 0%,rgba(1,50,32,0) 70%)}
.catalog-card-primary{border-color:#b7c9bf;background:linear-gradient(135deg,#fff 0%,#f3f7f4 100%)}
.primary-btn{background:var(--brand);box-shadow:0 5px 14px rgba(1,50,32,.18)}
.primary-btn:hover{background:var(--brand-2)}
.ev-pz,.ev-p{background:#e4d4b8;color:#4b3a1c}.ev-edki{background:#d5c7e0;color:#463653}.ev-kskv{background:#c9e2dc;color:#17483b}.ev-ap{background:#c9d8b5;color:#33451f}.ev-extra{background:#ece8de;color:#4d514e}
.period-card-direct{grid-template-columns:auto 1fr}.period-semester{margin-top:5px;color:var(--brand);font-weight:700;font-size:13px}.period-raw{margin-top:7px;color:var(--muted);font-size:12px}
@media(max-width:760px){.brand-logo{width:250px;max-width:62vw;max-height:68px}.header-inner{min-height:82px}}
@media(max-width:520px){.brand-logo{width:210px;max-width:66vw;max-height:62px}}

.brand-fallback[hidden]{display:none!important}
.header-clean{min-height:80px;gap:28px}
.brand-clean{flex:0 1 auto;min-width:0}
.header-clean .brand-logo{width:255px;max-width:42vw;max-height:64px}
.nav-switcher{margin-left:auto;gap:8px;padding:5px;background:#f0f4f1;border:1px solid #dbe5df;border-radius:14px}
.nav-switcher a{padding:10px 17px;border-radius:10px;color:#365448;font-weight:760;font-size:14px;white-space:nowrap}
.nav-switcher a:hover{background:#e5eee9;color:var(--brand)}
.nav-switcher a.active{background:var(--brand);color:#fff;box-shadow:0 4px 12px rgba(1,50,32,.16)}
.main-clean{padding-top:34px}
.page-head-clean{margin:0 0 22px;padding:0 2px}
.page-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:850;color:var(--brand);margin-bottom:7px}
.page-head-clean h1{font-size:clamp(30px,4vw,42px);margin:0 0 9px;letter-spacing:-.03em}
.page-head-clean p{font-size:15px;line-height:1.55;max-width:900px;color:var(--muted)}
.main-clean .filters{border-color:#d9e2dc;box-shadow:0 7px 24px rgba(1,50,32,.05)}
.main-clean .schedule-summary:empty{display:none}
.site-footer{margin-top:10px}
.footer-inner{min-height:70px}
@media(max-width:760px){
  .header-clean{min-height:auto;align-items:center;padding:12px 0;flex-direction:row;flex-wrap:wrap;gap:10px 16px}
  .header-clean .brand-logo{width:220px;max-width:68vw;max-height:58px}
  .nav-switcher{order:2;width:100%;margin-left:0;display:grid;grid-template-columns:1fr 1fr;overflow:visible}
  .nav-switcher a{text-align:center;padding:9px 10px}
  .main-clean{padding-top:24px}
}
@media(max-width:480px){
  .header-clean .brand-logo{width:205px;max-width:76vw}
  .page-head-clean h1{font-size:30px}
}


.page-head-centered{
  text-align:center;
  max-width:1040px;
  margin:0 auto 28px;
  padding:0 18px;
}
.page-head-centered .page-eyebrow{margin-bottom:9px}
.page-head-centered h1{max-width:none;margin:0 0 11px}
.page-head-centered p{max-width:940px;margin:0 auto;font-size:16px;line-height:1.62}

.main-clean .schedule-filters{
  position:static;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px 16px;
  padding:24px;
  border-radius:22px;
  align-items:end;
}
.schedule-year-field{grid-column:span 2}
.schedule-faculty-field{grid-column:span 6}
.schedule-form-field{grid-column:span 4}
.schedule-program-field{grid-column:span 7}
.schedule-course-field{grid-column:span 3}
.schedule-filters .query-action{grid-column:span 2}

.main-clean .field label{
  margin:0 0 8px 4px;
  font-size:11px;
  letter-spacing:.075em;
}
.main-clean .control{
  min-height:54px;
  border-radius:13px;
  padding:0 16px;
  font-size:15px;
  border-color:#d5ddd8;
  background:#fff;
}
.main-clean select.control{
  padding-right:38px;
  text-overflow:ellipsis;
}
.main-clean .control:hover{border-color:#b7c8be}
.main-clean .control:focus{
  border-color:var(--brand-2);
  box-shadow:0 0 0 4px rgba(1,50,32,.08);
}
.schedule-filters .primary-btn{
  min-height:54px;
  border-radius:13px;
  font-size:15px;
  padding:12px 20px;
}
.schedule-summary{
  grid-template-columns:1fr;
  margin-top:24px;
}
.schedule-summary-main{text-align:center}
.schedule-summary h2{font-size:26px}
.summary-meta{justify-content:center}

@media(max-width:1080px){
  .schedule-year-field{grid-column:span 3}
  .schedule-faculty-field{grid-column:span 6}
  .schedule-form-field{grid-column:span 3}
  .schedule-program-field{grid-column:span 7}
  .schedule-course-field{grid-column:span 3}
  .schedule-filters .query-action{grid-column:span 2}
}
@media(max-width:820px){
  .page-head-centered{padding:0 4px}
  .main-clean .schedule-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:14px}
  .schedule-year-field,.schedule-faculty-field,.schedule-form-field,.schedule-course-field{grid-column:span 1}
  .schedule-program-field,.schedule-filters .query-action{grid-column:1/-1}
}
@media(max-width:560px){
  .main-clean .schedule-filters{grid-template-columns:1fr;padding:15px}
  .schedule-year-field,.schedule-faculty-field,.schedule-form-field,.schedule-program-field,.schedule-course-field,.schedule-filters .query-action{grid-column:auto}
  .main-clean .control,.schedule-filters .primary-btn{min-height:52px}
  .page-head-centered p{font-size:15px}
}

.main-clean .practice-filters-spacious{
  position:static;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px 16px;
  padding:24px;
  border-radius:22px;
  align-items:end;
}
.practice-year-field{grid-column:span 3}
.practice-faculty-field{grid-column:span 6}
.practice-form-field{grid-column:span 3}
.practice-specialty-field{grid-column:span 6}
.practice-course-field{grid-column:span 2}
.practice-type-field{grid-column:span 4}
.practice-search-field{grid-column:span 9}
.practice-action-field{grid-column:span 3}
.practice-filters-spacious .search-wrap .control{padding-left:16px}
.practice-filters-spacious .primary-btn{min-height:54px;border-radius:13px;font-size:15px;padding:12px 20px}
.practice-toolbar{margin-top:20px}
.practice-results:empty{display:none}
.practice-status{
  margin:22px auto 0;
  max-width:760px;
  padding:16px 20px;
  border:1px solid #d9e2dc;
  border-radius:14px;
  background:#fff;
  color:var(--muted);
  text-align:center;
  box-shadow:0 5px 18px rgba(1,50,32,.035);
}
@media(max-width:1080px){
  .main-clean .practice-filters-spacious{grid-template-columns:repeat(6,minmax(0,1fr))}
  .practice-year-field{grid-column:span 2}
  .practice-faculty-field{grid-column:span 4}
  .practice-form-field{grid-column:span 2}
  .practice-specialty-field{grid-column:span 4}
  .practice-course-field{grid-column:span 2}
  .practice-type-field{grid-column:span 2}
  .practice-search-field{grid-column:span 4}
  .practice-action-field{grid-column:span 2}
}
@media(max-width:820px){
  .main-clean .practice-filters-spacious{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:14px}
  .practice-year-field,.practice-faculty-field,.practice-form-field,.practice-course-field,.practice-type-field{grid-column:span 1}
  .practice-specialty-field,.practice-search-field,.practice-action-field{grid-column:1/-1}
}
@media(max-width:560px){
  .main-clean .practice-filters-spacious{grid-template-columns:1fr;padding:15px}
  .practice-year-field,.practice-faculty-field,.practice-form-field,.practice-specialty-field,.practice-course-field,.practice-type-field,.practice-search-field,.practice-action-field{grid-column:auto}
  .practice-filters-spacious .primary-btn{min-height:52px}
}
