/* CECOMP — shared institutional design. One stylesheet, one token source.
   System fonts deliberately avoid external font services. */
:root {
  --blue:#007bb5; --blue-dark:#006a9c; --navy:#183e58; --ink:#172d40;
  --muted:#496477; --logo-blue:#0099d5; --surface-blue:#eaf6fd;
  --hero-surface:#e2f2fc; --light:#f1f8fc; --line:#cddfeb; --pale:#edf6fb;
  --white:#fff; --radius:4px; --radius-panel:8px; --max:1200px;
  --reference:#85602f; --reference-surface:#f8f4ec; --reference-line:#dfd2bd;
  --footer-bg:#122f43; --footer-text:#c6d7e2; --footer-line:#375367;
  --shadow-panel:0 2px 4px #183e5805,0 8px 22px #183e5806;
  --shadow-menu:0 4px 8px #183e5808,0 16px 36px #183e5814;
  --font-body:"Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  --font-editorial:Georgia,"Times New Roman",serif;
  --text-small:.875rem; --text-meta:.8125rem; --text-body:1rem;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:24px}
body {margin:0;background:var(--white);color:var(--ink);font:var(--text-body)/1.6 var(--font-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,p {margin-top:0}
h1,h2,h3 {color:var(--navy);line-height:1.2;letter-spacing:-.025em}
h1 {font-size:clamp(2rem,3.3vw,2.75rem);font-weight:650;margin-bottom:16px}
h2 {font-size:1.875rem;font-weight:650;margin-bottom:16px}
h3 {font-size:1.25rem;font-weight:650;margin-bottom:12px}
p {color:var(--muted);margin-bottom:20px}
a {color:var(--blue-dark);text-decoration:none;text-underline-offset:4px;text-decoration-thickness:1px}
a:hover {text-decoration:underline}
button,input,textarea,select {font:inherit}
button {cursor:pointer;color:inherit}
button:disabled {cursor:default;opacity:.6}
input,textarea,select {max-width:100%}
button,a,input,select,textarea {touch-action:manipulation}
:where(a,button,input,select,textarea,summary):focus-visible {outline:3px solid var(--blue-dark);outline-offset:4px}
main:focus {outline:none}
img {display:block;max-width:100%;height:auto}
svg {flex-shrink:0}
.icon {width:20px;height:20px;vertical-align:middle}
[hidden] {display:none!important}
::selection {background:#bfdfef;color:var(--ink)}
.container {width:min(var(--max),calc(100% - 80px));margin-inline:auto}
.sr-only {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link {position:fixed;top:-100px;left:16px;z-index:100;background:var(--navy);color:#fff;padding:12px 18px}
.skip-link:focus {top:12px}
.small {font-size:var(--text-small)}
.muted {color:var(--muted)}
.spaced {margin-top:28px}
.eyebrow {display:block;color:var(--blue-dark);font-size:.6875rem;font-weight:700;letter-spacing:.1em;line-height:1.6;margin-bottom:12px}
.edition {display:block;font-size:var(--text-meta);line-height:1.6;color:var(--muted);margin-top:16px}
.button,.text-link {display:inline-flex;align-items:center;justify-content:space-between;gap:16px;font-size:var(--text-small);font-weight:600;min-height:44px}
.button {padding:11px 17px;border:1px solid var(--blue-dark);border-radius:var(--radius);background:var(--blue-dark);color:#fff;line-height:1.45;text-align:left;transition:background .15s,border-color .15s}
.button:hover {background:var(--navy);border-color:var(--navy);color:#fff;text-decoration:none}
.button-outline {background:transparent;color:var(--blue-dark)}
.button-outline:hover {background:var(--light);color:var(--navy);border-color:var(--navy)}
.text-link .icon {width:17px;height:17px}
.button-row {display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px}
.prototype-strip {background:#eef2f5;color:var(--muted);font-size:.6875rem}
.prototype-strip .container {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:27px}
.prototype-strip .container>span {display:flex;align-items:center;gap:8px}
.prototype-strip a {color:var(--muted)}
.prototype-strip .icon {width:13px;height:13px}
.status-dot {width:5px;height:5px;background:var(--muted);border-radius:50%}
.institution-strip {background:#d6ecfa;font-size:.75rem;color:var(--navy)}
.institution-strip .container {display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:32px}
.institution-strip a {color:var(--navy)}
.institution-strip .icon {width:12px;height:12px;margin-left:5px}
.site-header {background:#fff;border-bottom:1px solid var(--line)}
.header-inner {display:grid;grid-template-columns:auto 1fr;align-items:center}
.brand {display:flex;align-items:center;gap:16px;color:var(--muted);min-height:110px}
.brand:hover {text-decoration:none}
.brand img {width:152px;height:auto}
.brand span {font-size:.8125rem;line-height:1.5;border-left:1px solid var(--line);padding-left:16px}
.institution-utilities {justify-self:end;width:370px;padding-block:12px}
.header-search {display:flex;align-items:center;min-height:44px;border:1px solid #9ebacc;border-radius:var(--radius);background:#fff}
.header-search input {width:100%;min-width:0;border:0;background:none;padding:10px 13px;color:var(--ink);font-size:var(--text-small)}
.header-search input:focus-visible {outline-offset:0}
.header-search button {display:grid;place-items:center;min-width:44px;align-self:stretch;border:0;background:var(--light);border-left:1px solid var(--line);color:var(--blue-dark)}
.header-search button:hover {background:var(--surface-blue)}
.utility-links {display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-top:5px;font-size:var(--text-meta)}
.utility-links a {padding-block:4px}
.header-tools {display:none}
.main-nav {grid-column:1/-1;display:flex;justify-content:space-between;align-items:stretch;gap:22px;min-height:57px;border-top:1px solid var(--line)}
.main-nav>a,.nav-course-row>a {display:flex;align-items:center;font-size:var(--text-small);line-height:1.35;font-weight:600;color:var(--ink);position:relative;padding-block:13px}
.main-nav>.nav-ppc {max-width:215px}
.main-nav>.nav-sistemas {max-width:145px}
.main-nav>a[aria-current],.nav-course-row>a[aria-current] {color:var(--blue-dark)}
.main-nav>a[aria-current]::after,.nav-course-row>a[aria-current]::after {content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--blue-dark)}
.main-nav>a:hover,.nav-course-row>a:hover {color:var(--blue-dark)}
.nav-group {position:relative;display:flex;align-items:stretch;flex-shrink:0}
.nav-course-row {display:flex;align-items:stretch;gap:4px}
.course-toggle {display:grid;place-items:center;width:30px;min-height:44px;background:transparent;border:0;color:var(--blue-dark);border-radius:var(--radius)}
.course-toggle .icon {width:15px;height:15px}
.course-toggle:hover,.course-toggle[aria-expanded=true] {background:var(--surface-blue)}
.course-toggle[aria-expanded=true] .icon {transform:rotate(180deg)}
.course-dropdown {position:absolute;top:100%;left:0;width:570px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-panel);display:grid;grid-template-columns:1fr 1.15fr;gap:0;z-index:20;box-shadow:var(--shadow-menu)}
.course-dropdown>section {padding:23px 24px 19px;min-width:0}
.course-dropdown>section+section {background:var(--light);border-left:1px solid var(--line);border-radius:0 var(--radius-panel) var(--radius-panel) 0}
.course-dropdown h2 {font-size:.6875rem;letter-spacing:.075em;text-transform:uppercase;margin:0 0 13px;color:var(--muted)}
.course-dropdown a {display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px;margin-inline:-10px;font-size:var(--text-small);color:var(--ink);line-height:1.45;border-radius:var(--radius);transition:background .15s,color .15s}
.course-dropdown a:hover,.course-dropdown a[aria-current] {background:#dfeef7;color:var(--blue-dark);text-decoration:none}
.course-dropdown a[aria-current] {font-weight:650;text-decoration:underline;text-underline-offset:4px}
.course-dropdown .menu-entry-lead {padding-bottom:13px;margin-bottom:5px;border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0}
.menu-entry-title {display:block;font-weight:650}
.menu-entry-description {display:block;margin-top:4px;color:var(--muted);font-size:var(--text-meta);font-weight:400}
.menu-entry-lead .icon {width:16px;height:16px;color:var(--blue-dark)}
.hero {background:var(--hero-surface);padding-block:32px}
.hero-heading {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:26px}
.hero-heading h1 {font:400 clamp(2.375rem,4.25vw,3.4rem)/1.08 var(--font-editorial);letter-spacing:-.045em;margin:0;max-width:900px}
.course-name-accent {color:var(--blue-dark)}
.hero-heading .eyebrow {margin-bottom:12px}
.hero-heading p {font-size:var(--text-small);margin:13px 0 0;color:#365970}
.hero-university-links {display:flex;flex-direction:column;align-items:stretch;gap:6px}
.calendar-prominent,.university-prominent {display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:var(--text-small);min-height:44px}
.calendar-prominent {background:#fff;border:1px solid #93b8cf;border-radius:var(--radius);padding:9px 13px;font-weight:600}
.calendar-prominent:hover {background:var(--light);text-decoration:none}
.university-prominent {padding:6px 2px}
.hero-university-links .icon {width:17px;height:17px}
.academic-overview {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.75fr);gap:0;background:var(--white);border:1px solid #b9d4e5;border-radius:var(--radius-panel);box-shadow:var(--shadow-panel)}
.curriculum-overview {padding:25px 28px;background:#f3f9fd;border-radius:var(--radius-panel) 0 0 var(--radius-panel);border-right:1px solid var(--line)}
.curriculum-overview h2 {font-size:1.8rem;line-height:1.17;margin-bottom:13px}
.curriculum-overview h2 a {color:var(--navy)}
.curriculum-overview p {font-size:.9375rem;line-height:1.6;margin-bottom:17px}
.curriculum-overview .eyebrow {margin-bottom:10px;color:var(--reference)}
.academic-access {padding:25px 28px 22px;min-width:0}
.academic-access h2 {font-size:var(--text-small);font-weight:650;letter-spacing:0;margin:0 0 7px}
.academic-access ul {list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;column-gap:28px}
.academic-access li {border-bottom:1px solid var(--line)}
.academic-access a {display:flex;align-items:center;justify-content:space-between;gap:12px;height:100%;padding:12px 7px;margin-inline:-7px;color:var(--ink);border-radius:var(--radius);transition:background .15s}
.academic-access a:hover {text-decoration:none;background:var(--light)}
.academic-access a:hover strong {color:var(--blue-dark);text-decoration:underline}
.academic-access strong {display:block;font-size:.9375rem;font-weight:650;line-height:1.4}
.academic-access .icon {width:17px;height:17px;color:var(--blue-dark);transition:transform .15s}
.academic-access a:hover .icon {transform:translateX(2px)}
.access-description {display:block;color:var(--muted);font-size:var(--text-meta);line-height:1.5;margin-top:3px}
.semester-label {font-size:var(--text-meta);font-weight:400;white-space:nowrap;margin-left:5px;color:var(--muted)}
.section {padding-block:40px}
.section-heading {display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}
.section-heading h2 {font-size:2rem;margin:0}
.section-heading .eyebrow {margin-bottom:5px}
.section-heading>p {margin:0;font-size:var(--text-small)}
.news-home {display:grid;grid-template-columns:minmax(0,2.3fr) minmax(275px,1fr);gap:36px;align-items:start}
.news-card {min-width:0}
.news-card h3 {font-size:1.35rem;line-height:1.25;margin:9px 0 12px}
.news-card h3 a {color:var(--navy)}
.news-card h3 a:hover {color:var(--blue-dark)}
.news-card p {font-size:.9375rem;line-height:1.6;margin:0}
.news-card.featured {display:grid;grid-template-columns:1.03fr 1fr;gap:24px;padding-bottom:25px;border-bottom:1px solid var(--line);align-items:start}
.news-card.featured h3 {font-size:1.65rem;line-height:1.17;margin:10px 0 14px}
.news-image {display:block;overflow:hidden;border-radius:2px}
.news-image img {width:100%;height:265px;object-fit:cover}
.meta {display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;color:var(--muted);font-size:var(--text-meta);line-height:1.5}
.meta>span:first-child {color:var(--blue-dark);font-weight:600}
.news-pair {display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-top:23px}
.news-aside {padding-top:0}
.guide-box {background:var(--reference-surface);padding:28px 26px;border:1px solid var(--reference-line);border-radius:var(--radius-panel)}
.guide-box h2 {font:400 2.125rem/1.1 var(--font-editorial);letter-spacing:-.03em;margin-bottom:16px}
.guide-box .eyebrow {margin-bottom:17px;color:var(--reference)}
.guide-box p {font-size:.9375rem;line-height:1.6;margin-bottom:22px}
.guide-box .button {width:100%}
.guide-box .edition {border-top:1px solid var(--reference-line);margin-top:20px;padding-top:13px;color:var(--reference)}
.subjects {display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:27px;padding-top:18px;border-top:1px solid var(--line)}
.subjects h3 {flex-basis:100%;font-size:var(--text-meta);font-weight:650;letter-spacing:0;margin:0;color:var(--muted)}
.subjects>.text-link {font-size:var(--text-meta);min-height:34px;margin-left:auto}
.tags {display:flex;flex-wrap:wrap;gap:8px}
.tags a {display:inline-flex;align-items:center;font-size:var(--text-meta);padding:6px 10px;border:1px solid var(--line);border-radius:3px;min-height:34px;line-height:1.5;background:#fff}
.tags a:hover {background:var(--light);border-color:#8faec4}
.about-home {display:grid;grid-template-columns:1.3fr 1fr;gap:80px;border-top:1px solid var(--line);padding-block:35px}
.about-home h2 {font-size:2rem;margin-bottom:14px}
.about-home p {max-width:58ch;margin-bottom:10px}
.link-list {display:flex;flex-direction:column}
.link-list>a {border-bottom:1px solid var(--line);padding-block:14px;font-size:1rem}
.onboarding {padding-block:30px;background:var(--light)}
.onboarding .section-heading {margin-bottom:15px}
.onboarding .section-heading h2 {font-size:1.75rem}
.onboarding .service-tile {border-bottom:0;padding-block:12px}
.page-help-end {display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:24px;margin-top:16px;border-top:1px solid var(--line)}
.page-help-end strong {font-size:var(--text-small);font-weight:650}
.page-help-end p {font-size:var(--text-small);margin:3px 0 0}
.page-help-end>div:last-child {display:flex;flex-wrap:wrap;gap:24px}
.page-help-end .text-link {font-size:var(--text-small)}
.page-main {padding-bottom:52px}
.breadcrumb {display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:var(--text-meta);color:var(--muted);margin:22px 0 28px;line-height:1.6}
.breadcrumb a {padding-block:5px}
.page-heading {padding:0 0 27px;border-bottom:1px solid var(--line);margin-bottom:28px}
.page-heading h1 {max-width:1000px;margin-bottom:13px}
.page-heading p {max-width:76ch;font-size:1.0625rem;margin:0;line-height:1.6}
.page-heading .eyebrow {margin-bottom:8px}
.subnav {display:flex;flex-wrap:wrap;gap:4px;margin:0 0 32px;padding:6px;background:var(--light);border:1px solid var(--line);border-radius:var(--radius-panel)}
.subnav a {display:inline-flex;align-items:center;font-size:var(--text-small);line-height:1.45;min-height:44px;padding:9px 12px;color:var(--muted);border:1px solid transparent;border-radius:var(--radius);transition:background .15s,color .15s}
.subnav a:hover {color:var(--blue-dark);background:var(--white);text-decoration:underline}
.subnav a[aria-current] {color:var(--navy);background:var(--white);border-color:#abc9dc;font-weight:650;box-shadow:0 1px 3px #183e5808}
.content-grid,.contact-layout {display:grid;grid-template-columns:minmax(0,1.9fr) minmax(280px,1fr);gap:44px;align-items:start}
.side-stack {display:flex;flex-direction:column;gap:24px;min-width:0}
.prose {max-width:72ch;min-width:0}
.prose p,.prose li {font-size:1rem;line-height:1.75}
.prose h2 {font-size:1.65rem;margin:30px 0 16px}
.prose>h2:first-child,.prose>section:first-child>h2 {margin-top:0}
.prose h3 {font-size:1.2rem}
.prose ul {padding-left:22px;color:var(--muted)}
.prose li {margin-bottom:10px}
.prose p a,.prose li a {text-decoration:underline}
.prose .lead-paragraph {font-size:1.1875rem;line-height:1.6;color:var(--ink)}
.panel {padding:26px;background:var(--light);border:1px solid var(--line);border-radius:var(--radius)}
.panel h2 {font-size:1.5rem}
.panel p {font-size:.9375rem}
.compact-panel {margin-top:28px}
.two-grid,.three-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.three-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
.service-tile {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;color:var(--ink);border-bottom:1px solid var(--line);min-width:0}
.service-tile:hover {text-decoration:none}
.service-tile strong {display:block;font-size:1rem;line-height:1.4;font-weight:600}
.service-tile:hover strong {text-decoration:underline;color:var(--blue-dark)}
.tile-description {display:block;font-size:var(--text-small);line-height:1.5;color:var(--muted);margin-top:5px}
.service-tile .icon {width:17px;height:17px;color:var(--blue-dark)}
.service-tile>.icon-box {display:none}
.directory-section {margin-top:30px}
.directory-section h2 {font-size:1.5rem;margin-bottom:8px}
.directory-row,.context-link,.resource-row {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:var(--text-small);line-height:1.5}
.directory-row strong,.resource-row strong {display:block;font-size:1rem;font-weight:600;line-height:1.4}
.directory-row .icon,.context-link .icon,.resource-row .icon {width:17px;height:17px;color:var(--blue-dark)}
.directory-description {display:block;font-size:var(--text-small);color:var(--muted);line-height:1.6;margin-top:5px}
.directory-row:hover,.context-link:hover,.resource-row:hover {color:var(--blue-dark);text-decoration:underline;background:var(--light)}
.sidebar-related {background:var(--light);padding:26px;border-radius:var(--radius);min-width:0}
.sidebar-related h2 {font-size:1.5rem;line-height:1.2;margin-bottom:16px}
.sidebar-related p {font-size:.9375rem}
.sidebar-related .directory-row:last-child {border-bottom:0;padding-bottom:0}
.calendar-feature,.document-lead {padding:26px;background:var(--light);border:1px solid var(--line);border-radius:var(--radius)}
.calendar-feature h2,.document-lead h2 {font-size:1.65rem}
.calendar-feature p,.document-lead p {font-size:1rem;max-width:65ch}
.course-layout {display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:80px;align-items:start}
.course-prose {max-width:76ch}
.course-context,.graduate-section,.course-documents {margin-top:40px}
.course-prose section {scroll-margin-top:24px}
.context-links {border-top:1px solid var(--line);margin-top:24px}
.context-link {font-size:.9375rem;padding-block:14px}
.course-aside {display:flex;flex-direction:column;gap:32px}
.page-index {border-left:2px solid var(--line);padding-left:22px}
.page-index h2 {font-size:var(--text-small);letter-spacing:0;margin-bottom:10px}
.page-index a {display:block;font-size:var(--text-small);min-height:40px;padding:7px 0}
.course-management {padding:25px;background:var(--light);border-radius:var(--radius)}
.course-management h2 {font-size:1.5rem}
.course-management p {font-size:.9375rem}
.related-links {margin-top:15px}
.related-links .directory-row {font-size:var(--text-small)}
.related-links .directory-row:last-child {border-bottom:0}
.graduate-section article {display:flex;gap:24px;padding:22px 0;border-top:1px solid var(--line)}
.graduate-section h3 {margin-bottom:10px}
.graduate-section p {margin:0}
.graduate-number {font-size:var(--text-small);font-weight:600;color:var(--blue-dark);padding-top:2px;font-variant-numeric:tabular-nums}
.resource-list {border-top:1px solid var(--line)}
.document-resource {border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0 0}
.document-meta {display:flex;flex-wrap:wrap;gap:8px 20px;font-size:var(--text-meta);color:var(--muted);margin-bottom:19px}
.document-meta>span:first-child {color:var(--reference);font-weight:600}
.document-resource h2 {font-size:1.8rem;margin-bottom:13px}
.document-resource p {max-width:58ch}
.document-detail {display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin-top:26px;padding-block:16px;border-top:1px solid var(--line);font-size:var(--text-small);color:var(--muted)}
.document-detail strong {font-weight:500;color:var(--ink)}
.archive-context {padding-top:30px}
.archive-context h2 {font-size:1.375rem}
.archive-context p {font-size:var(--text-small);max-width:66ch}
.semester-list {display:flex;flex-wrap:wrap;gap:12px 22px;list-style:none;padding:0;margin:20px 0 22px;font-size:.9375rem;font-variant-numeric:tabular-nums;color:var(--ink)}
.semester-list li {padding-bottom:6px;border-bottom:1px solid var(--line)}
.programs-reference {margin-block:24px}
.catalog-section {margin-top:30px}
.catalog-caption {display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}
.catalog-caption h2 {font-size:1.5rem;margin:0}
.catalog-caption>span {font-size:var(--text-small);color:var(--muted)}
.systems-catalog {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:24px;align-items:stretch}
.catalog-card {display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #b7cedc;border-radius:6px;padding:25px}
.catalog-card .eyebrow {font-size:var(--text-meta);letter-spacing:0;font-weight:500;margin-bottom:17px}
.catalog-card h2 {font-size:1.5rem;line-height:1.25;margin-bottom:15px;overflow-wrap:anywhere}
.catalog-card>p {font-size:.9375rem;line-height:1.65;margin-bottom:26px;overflow-wrap:anywhere}
.catalog-card-footer {margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.catalog-card-footer>span {font-size:var(--text-meta);color:var(--muted);font-weight:500}
.catalog-card-footer .button {font-size:var(--text-small)}
.catalog-related {display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.catalog-related h2 {font-size:1.5rem}
.catalog-related p {font-size:.9375rem;margin-bottom:10px}
.catalog-editor {display:grid;grid-template-columns:310px minmax(0,1fr);gap:32px;align-items:start}
.catalog-editor .systems-catalog {grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}
.catalog-editor .panel {padding:22px}
.model-notice {padding:16px 20px;background:var(--light);border-left:3px solid var(--blue-dark);font-size:var(--text-small);margin-bottom:28px}
.model-remove {min-height:44px;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;color:var(--blue-dark);font-size:var(--text-small);padding:8px 0}
.original-plugin-slot {padding:28px;margin-top:28px;border:1px solid var(--line);background:#fff;min-height:270px}
.original-plugin-slot h2 {font-size:1.75rem}
.original-plugin-slot p {max-width:80ch}
.plugin-preview-explanation {padding:22px;background:var(--light);font-size:var(--text-small)}
.plugin-preview-explanation p {font-size:var(--text-small);margin:10px 0 0}
.semester-bar {display:flex;align-items:center;gap:24px;padding:24px;background:var(--light);margin-bottom:18px;border-bottom:1px solid var(--line)}
.semester {font-size:2rem;font-weight:600;padding-right:24px;border-right:1px solid var(--line);color:var(--blue-dark)}
.semester-bar p {font-size:var(--text-small);margin:3px 0 0}
.semester-bar>.icon {margin-left:auto;width:26px;height:26px}
.year-list {border-top:1px solid var(--line)}
.year-list>a {display:flex;align-items:center;gap:28px;padding:21px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.year-list .year {font-size:1.65rem;color:var(--blue-dark);min-width:70px}
.year-list>a>.icon {margin-left:auto;width:18px;height:18px}
.year-list strong {font-size:1rem;font-weight:600}
.coordinator-banner {display:flex;align-items:center;gap:24px;background:var(--light);padding:28px;margin-bottom:32px;border-radius:var(--radius)}
.coordinator-banner h2 {font-size:1.65rem;margin:0 0 8px}
.coordinator-banner p {font-size:var(--text-small);margin:0}
.coordinator-banner .eyebrow {margin-bottom:7px}
.coordinator-banner>.text-link {margin-left:auto}
.coordinator-banner a {font-size:var(--text-small);overflow-wrap:anywhere}
.portrait {width:88px;height:88px;border-radius:50%;object-fit:cover;object-position:center 30%;background:var(--light);flex-shrink:0}
.portrait-large {width:116px;height:116px}
.faculty-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.faculty-card {padding:24px 0;border-bottom:1px solid var(--line);min-width:0}
.faculty-card h2 {font-size:1.3rem;line-height:1.3;margin:18px 0 12px}
.faculty-card .role-label {font-size:var(--text-small);color:var(--muted);display:block}
.profile-heading {display:flex;align-items:center;gap:26px;margin-block:26px 35px}
.profile-heading h1 {font-size:2.3rem;margin-bottom:12px;overflow-wrap:anywhere}
.profile-heading p {margin:0}
.profile-email {font-size:var(--text-small);overflow-wrap:anywhere;text-decoration:underline}
.support-section {border-top:1px solid var(--line);margin-top:40px;padding-top:32px}
.support-card {display:flex;gap:24px;background:var(--light);padding:28px;border-radius:var(--radius)}
.support-card>.icon-box {display:none}
.support-card h2 {font-size:1.65rem;margin-bottom:12px}
.support-card p {font-size:.9375rem}
.support-card a {overflow-wrap:anywhere}
.steps>div {display:flex;align-items:start;gap:22px;padding:23px 0;border-bottom:1px solid var(--line)}
.steps>div>span {color:var(--blue-dark);font-size:var(--text-small);font-weight:600;padding-top:5px}
.steps h3 {font-size:1.2rem;margin-bottom:10px}
.steps p {margin:0}
.notice {background:var(--light);border-left:3px solid var(--blue-dark);padding:20px 24px;margin-block:25px}
.notice p {margin:8px 0 0}
.check-list {list-style:disc;color:var(--muted);padding-left:20px}
.check-list li {margin-bottom:10px;padding-left:4px}
.empty-state {text-align:center;background:var(--light);padding:48px 24px;margin-top:25px;border-radius:var(--radius)}
.empty-state h2 {font-size:1.7rem}
.empty-state>.icon {width:34px;height:34px;margin-bottom:16px;color:var(--blue-dark)}
.empty-state p {max-width:65ch;margin-inline:auto}
.filter-form,.filter-bar {margin-bottom:25px}
.filter-bar {display:grid;grid-template-columns:1.5fr 1fr;gap:26px;align-items:end}
.filter-form label,.tag-selector label {display:block;font-size:var(--text-small);font-weight:600;margin-bottom:8px}
.filter-bar .filter-form {margin:0}
.input-group {display:flex;align-items:center;gap:12px;padding:4px 4px 4px 13px;border:1px solid #8faabd;border-radius:var(--radius);background:#fff}
.input-group input {flex:1;min-width:0;border:0;background:none;padding:9px 0;color:var(--ink);font-size:1rem}
.input-group>.icon {color:var(--muted)}
.input-group .button {min-height:42px}
.tag-selector select {width:100%;padding:12px;border:1px solid #8faabd;border-radius:var(--radius);color:var(--ink);background:#fff;min-height:52px}
.results-line {font-size:var(--text-small);color:var(--muted);margin-block:18px 24px}
.news-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.news-list .news-card {border-bottom:1px solid var(--line);padding-bottom:24px}
.news-list .news-copy {padding-top:18px}
.news-list .text-link {margin-top:12px}
.news-list .news-image img {height:220px}
.topics-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.topics-grid>a {display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.topics-grid>a>span:last-child {display:flex;align-items:center;gap:12px;font-size:var(--text-small)}
.contact-form {background:#fff;padding:28px;border:1px solid var(--line)}
.contact-form h2 {font-size:1.5rem}
.contact-form>label {display:block;font-weight:600;font-size:var(--text-small);margin:19px 0 7px}
.contact-form>label span {font-weight:400;color:var(--muted)}
.contact-form>input,.contact-form>select,.contact-form>textarea {display:block;width:100%;min-height:46px;padding:10px 12px;border:1px solid #8faabd;border-radius:var(--radius);background:#fff;color:var(--ink)}
.contact-form>textarea {resize:vertical;min-height:130px}
.contact-form>.small {margin-top:16px}
.demo-message {font-size:var(--text-small);background:var(--light);padding:12px 15px;color:var(--muted)}
.contact-email {display:inline-block;font-size:1.35rem;overflow-wrap:anywhere;text-decoration:underline}
.contact-info>.icon {margin-bottom:16px;color:var(--blue-dark)}
.contact-info>a {font-size:1.125rem;overflow-wrap:anywhere;text-decoration:underline}
.contact-info p {margin:20px 0 0}
#contact-status {padding:16px;background:var(--light);color:var(--ink);border-left:3px solid var(--blue-dark);font-size:var(--text-small);margin-top:24px}
.article-detail {max-width:900px;margin-inline:auto}
.article-detail h1 {font:400 clamp(2rem,4vw,3rem)/1.16 var(--font-editorial);margin:15px 0 22px}
.article-lead {font-size:1.2rem;line-height:1.7}
.article-detail figure {margin:30px 0}
.article-detail figure img {width:100%;height:auto;border-radius:2px}
.article-detail figcaption {font-size:var(--text-meta);color:var(--muted);padding-top:8px}
.article-tags {margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.article-tags h2 {font-size:1.15rem}
.back-link {margin-bottom:20px}
.search-result {display:block;padding:22px 0;border-bottom:1px solid var(--line)}
.search-result:hover {background:var(--light);text-decoration:none}
.search-result h2 {font-size:1.35rem;margin-bottom:8px}
.search-result:hover h2 {text-decoration:underline}
.search-result p {font-size:var(--text-small);margin:0}
.site-footer {background:var(--footer-bg);color:var(--footer-text);border-top:1px solid var(--footer-line);padding-top:38px;margin-top:0}
.footer-grid {display:grid;grid-template-columns:1.5fr 1fr 1.35fr .95fr;gap:38px}
.footer-name {display:block;font-size:1.35rem;font-weight:700;color:#fff;letter-spacing:.015em}
.footer-name>span {font-weight:400;color:var(--footer-text)}
.site-footer h2 {font-size:.9375rem;letter-spacing:0;margin-bottom:14px;color:#fff}
.site-footer p {font-size:var(--text-small);margin:12px 0;color:var(--footer-text)}
.site-footer a {display:block;font-size:var(--text-meta);line-height:1.55;padding-block:6px;color:#e5f1f9}
.site-footer a:hover {color:#fff;text-decoration:underline}
.site-footer :focus-visible {outline-color:#83d3f5}
.footer-address {font-size:var(--text-meta);font-style:normal;color:var(--footer-text);line-height:1.8;margin:18px 0 8px}
.footer-address strong {display:block;color:#fff;font-weight:600}
.footer-bottom {display:flex;justify-content:space-between;gap:24px;margin-top:28px;padding-block:20px;border-top:1px solid var(--footer-line);color:var(--footer-text);font-size:var(--text-meta)}
@media (max-width:1150px) {
  .container {width:calc(100% - 48px)}
  .main-nav {gap:18px}
  .main-nav>.nav-ppc {max-width:190px}
  .hero-heading h1 {font-size:2.75rem}
  .academic-overview {grid-template-columns:1fr 1.65fr}
  .curriculum-overview,.academic-access {padding-inline:24px}
  .academic-access ul {column-gap:22px}
  .news-home {gap:28px;grid-template-columns:minmax(0,2fr) minmax(265px,1fr)}
  .news-card.featured {grid-template-columns:1fr}
  .news-card.featured .news-image img {height:265px}
  .course-layout {gap:40px;grid-template-columns:minmax(0,1fr) 280px}
  .footer-grid {gap:26px}
}
@media (max-width:1050px) {
  .header-inner {display:flex;flex-wrap:wrap;justify-content:space-between}
  .brand {min-height:90px}
  .brand img {width:140px}
  .brand span {font-size:.75rem}
  .institution-utilities {display:none}
  .header-tools {display:flex;align-items:center;gap:15px}
  .search-toggle {display:grid;place-items:center;min-width:44px;min-height:44px}
  .menu-toggle {display:flex;align-items:center;gap:10px;min-height:44px;padding:9px 13px;font-size:var(--text-small);border:1px solid #9bb7c9;background:#fff;border-radius:var(--radius)}
  .menu-toggle .icon {width:20px;height:20px}
  .main-nav {display:none;flex-basis:100%;min-height:0;padding-block:10px 18px;gap:0}
  .main-nav.is-open {display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
  .main-nav>a,.nav-course-row>a {font-size:1rem;min-height:46px;padding:12px 5px}
  .main-nav>.nav-ppc,.main-nav>.nav-sistemas {max-width:none}
  .main-nav>a[aria-current]::after,.nav-course-row>a[aria-current]::after {display:none}
  .main-nav>a[aria-current],.nav-course-row>a[aria-current] {text-decoration:underline}
  .nav-group {display:block;grid-column:1/-1}
  .nav-course-row {align-items:center;justify-content:space-between}
  .course-toggle {width:44px}
  .course-dropdown {position:static;width:auto;box-shadow:none;margin-block:4px 14px}
  .course-dropdown a {min-height:44px}
}
@media (max-width:850px) {
  .hero-heading {grid-template-columns:1fr}
  .hero-heading h1 {font-size:2.875rem;max-width:700px}
  .hero-university-links {flex-direction:row;gap:18px;flex-wrap:wrap}
  .academic-overview {grid-template-columns:1fr 1.4fr}
  .academic-access ul {grid-template-columns:1fr}
  .academic-access a {padding-block:10px}
  .curriculum-overview h2 {font-size:1.65rem}
  .news-home {grid-template-columns:1fr}
  .news-card.featured {grid-template-columns:1fr 1fr}
  .guide-box {max-width:none;padding:26px}
  .content-grid,.contact-layout,.course-layout {grid-template-columns:1fr;gap:32px}
  .course-aside {display:contents}
  .page-index {grid-row:1}
  .course-prose {grid-row:2}
  .course-management {grid-row:3}
  .page-index {border-left:0;border-bottom:1px solid var(--line);padding:0 0 16px;display:flex;flex-wrap:wrap;gap:0 22px}
  .page-index h2 {flex-basis:100%}
  .three-grid {grid-template-columns:1fr}
  .onboarding .service-tile+.service-tile {border-top:1px solid var(--line)}
  .about-home {gap:35px}
  .catalog-editor {grid-template-columns:1fr}
  .catalog-editor .contact-form {max-width:600px}
  .faculty-grid {grid-template-columns:1fr 1fr}
  .news-list {grid-template-columns:1fr 1fr}
  .news-list .news-card:first-child {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:25px}
  .news-list .news-card:first-child .news-copy {padding-top:0}
  .topics-grid {grid-template-columns:1fr 1fr}
  .coordinator-banner {flex-wrap:wrap}
  .coordinator-banner>.text-link {margin-left:0}
  .footer-grid {grid-template-columns:1.25fr 1fr;gap:30px}
}
@media (max-width:600px) {
  .container {width:calc(100% - 36px)}
  .prototype-strip .container {min-height:26px}
  .prototype-strip a {font-size:0}
  .prototype-strip a .icon {width:14px;height:14px}
  .institution-strip {font-size:.6875rem}
  .institution-strip .container {gap:14px;min-height:42px}
  .institution-strip a:first-child {max-width:235px;line-height:1.4}
  .institution-strip .icon {display:none}
  .brand {min-height:78px;gap:0}
  .brand img {width:clamp(112px,34vw,132px)}
  .brand span {display:none}
  .header-tools {gap:6px}
  .main-nav.is-open {grid-template-columns:1fr}
  .course-dropdown {grid-template-columns:1fr}
  .course-dropdown>section {padding:20px 22px 16px}
  .course-dropdown>section+section {border-left:0;border-top:1px solid var(--line);border-radius:0 0 var(--radius-panel) var(--radius-panel)}
  .hero {padding-block:25px 28px}
  .hero-heading {gap:18px;margin-bottom:22px}
  .hero-heading h1 {font-size:2.375rem;max-width:390px;line-height:1.08}
  .hero-heading p {font-size:var(--text-meta);max-width:32ch;margin-top:12px}
  .hero-heading .eyebrow {font-size:.6875rem;margin-bottom:10px}
  .hero-university-links {flex-direction:column;align-items:flex-start;gap:1px}
  .calendar-prominent,.university-prominent {font-size:var(--text-small)}
  .university-prominent {gap:24px}
  .academic-overview {grid-template-columns:1fr}
  .curriculum-overview {padding:22px;border-right:0;border-bottom:1px solid var(--line);border-radius:var(--radius-panel) var(--radius-panel) 0 0}
  .curriculum-overview h2 {font-size:1.75rem}
  .curriculum-overview p {font-size:.9375rem;margin-bottom:14px}
  .academic-access {padding:22px}
  .academic-access h2 {margin-bottom:4px}
  .academic-access a {padding-block:11px}
  .academic-access strong {font-size:.9375rem}
  .access-description {font-size:var(--text-meta)}
  .section {padding-block:29px}
  .section-heading {gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:center}
  .section-heading h2 {font-size:1.75rem}
  .section-heading .text-link {font-size:var(--text-small)}
  .section-heading .eyebrow {margin-bottom:5px}
  .news-card.featured {grid-template-columns:1fr;gap:18px;padding-bottom:22px}
  .news-card.featured .news-image img {height:auto;aspect-ratio:1.5;object-fit:cover}
  .news-card.featured h3 {font-size:1.65rem}
  .news-pair {grid-template-columns:1fr;gap:22px;padding-top:21px}
  .news-pair .news-card+.news-card {border-top:1px solid var(--line);padding-top:21px}
  .news-pair .news-card h3 {font-size:1.3rem}
  .news-card p {font-size:.9375rem}
  .subjects {gap:8px 12px;margin-top:23px}
  .subjects>.text-link {margin-left:0}
  .tags a {min-height:40px}
  .guide-box {padding:25px 23px}
  .guide-box h2 {font-size:2.15rem}
  .about-home {grid-template-columns:1fr;gap:18px}
  .about-home h2 {font-size:1.75rem}
  .about-home p {font-size:.9375rem}
  .onboarding {padding-block:26px}
  .onboarding .service-tile {padding-block:16px}
  .page-help-end {display:block;padding-block:22px}
  .page-help-end>div:last-child {margin-top:12px}
  .breadcrumb {font-size:var(--text-meta);gap:8px;margin:18px 0 23px}
  .page-heading {padding-bottom:22px;margin-bottom:24px}
  .page-heading h1 {font-size:2rem;line-height:1.14;overflow-wrap:anywhere}
  .page-heading p {font-size:1rem}
  .subnav {gap:4px;margin-bottom:26px}
  .subnav a {font-size:var(--text-small);padding-inline:10px}
  .prose h2 {font-size:1.5rem}
  .prose .lead-paragraph {font-size:1.125rem}
  .course-context,.graduate-section,.course-documents {margin-top:32px}
  .graduate-section article {gap:17px}
  .graduate-section h3 {font-size:1.1875rem}
  .two-grid {grid-template-columns:1fr}
  .panel,.sidebar-related,.calendar-feature,.document-lead {padding:23px 21px}
  .document-resource {padding-top:22px}
  .document-resource h2 {font-size:1.65rem}
  .document-meta {font-size:var(--text-meta);gap:6px 14px}
  .document-detail {display:block}
  .document-detail strong {display:block;margin-top:3px}
  .catalog-caption {gap:16px;align-items:baseline}
  .catalog-caption h2 {font-size:1.4rem}
  .catalog-caption>span {font-size:var(--text-meta);white-space:nowrap}
  .systems-catalog {grid-template-columns:1fr;gap:20px}
  .catalog-card {padding:24px 22px}
  .catalog-card h2 {font-size:1.5rem}
  .catalog-related {grid-template-columns:1fr;gap:24px;margin-top:30px;padding-top:25px}
  .catalog-related>div+div {border-top:1px solid var(--line);padding-top:24px}
  .original-plugin-slot {padding:22px 18px}
  .original-plugin-slot h2 {font-size:1.6rem}
  .plugin-preview-explanation {padding:18px}
  .semester-bar {gap:17px;padding:20px}
  .semester {font-size:1.65rem;padding-right:17px}
  .semester-bar>.icon {display:none}
  .year-list>a {gap:18px}
  .year-list .year {min-width:60px;font-size:1.5rem}
  .year-list strong {font-size:.9375rem}
  .faculty-grid {grid-template-columns:1fr}
  .faculty-card {display:grid;grid-template-columns:70px minmax(0,1fr);gap:0 20px;padding:21px 0}
  .faculty-card>.portrait {width:70px;height:70px;grid-row:1/4}
  .faculty-card h2 {font-size:1.25rem;margin:0 0 10px}
  .faculty-card>.role-label,.faculty-card>.text-link {grid-column:2}
  .profile-heading {align-items:flex-start;gap:18px}
  .profile-heading h1 {font-size:1.8rem}
  .profile-heading p {font-size:var(--text-small)}
  .portrait-large {width:76px;height:76px}
  .coordinator-banner {padding:23px 20px;gap:16px}
  .coordinator-banner>.portrait {width:64px;height:64px}
  .coordinator-banner>div {flex:1;min-width:0}
  .coordinator-banner h2 {font-size:1.35rem}
  .coordinator-banner>.text-link {flex-basis:100%;justify-content:flex-start}
  .support-card {padding:23px 21px}
  .support-card h2 {font-size:1.5rem}
  .filter-bar {grid-template-columns:1fr;gap:20px}
  .input-group {gap:7px;padding-left:10px}
  .input-group .button {padding-inline:12px}
  .input-group input {font-size:1rem}
  .news-list {grid-template-columns:1fr}
  .news-list .news-card:first-child {display:block}
  .news-list .news-card:first-child .news-copy {padding-top:18px}
  .topics-grid {grid-template-columns:1fr}
  .contact-form {padding:23px 20px}
  .contact-form .button {width:100%}
  .contact-email {font-size:1.15rem}
  .article-detail h1 {font-size:2rem}
  .article-lead {font-size:1.125rem}
  .footer-grid {grid-template-columns:1fr 1fr;gap:30px 22px}
  .footer-grid>div:first-child {grid-column:1/-1}
  .footer-grid>div:nth-child(3) {grid-column:1/-1;grid-row:3}
  .footer-grid>div:last-child {grid-column:2;grid-row:2}
  .footer-bottom {display:block;margin-top:22px;font-size:var(--text-meta)}
  .footer-bottom>span {display:block;margin-bottom:4px}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after {transition:none!important}
}
@media print {
  .prototype-strip,.main-nav,.header-tools,.institution-utilities,.site-footer,.page-index {display:none}
  .container {width:100%}
  .hero,.guide-box,.panel {background:white;color:black}
  .news-home,.content-grid,.course-layout {display:block}
  a {color:black}
  body {font-size:12pt}
}
