:root{font-family:'Albert Sans',sans-serif;color:#293343;background:#fff;font-synthesis:none;--blue:#2863c6;--muted:#748094;--line:#edf0f3}*{box-sizing:border-box}body{margin:0}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit;color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}button,select{cursor:pointer}.public-top{display:flex;align-items:center;gap:24px;padding:16px 4%;border-bottom:1px solid var(--line);min-height:80px}.public-brand img{width:156px;height:45px;object-fit:contain;display:block}.public-year{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.public-year select{border:0;background:#fff;color:#46556b;padding:6px;font-size:12px}.public-login{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;color:#60718a}#public-nav{display:flex;gap:26px;padding:0 4%;border-bottom:1px solid var(--line);overflow:auto;white-space:nowrap}#public-nav a{padding:16px 0 13px;font-size:13px;color:#64748b;border-bottom:2px solid transparent;text-decoration:none}#public-nav a[aria-current=page]{border-color:var(--blue);color:var(--blue);font-weight:500}#public-preview{padding:9px 4%;background:#edf3ff;color:#2863c6;font-size:12px;line-height:1.5}#public-main{padding:30px 4% 64px;min-height:calc(100dvh - 215px);outline:none}h1{font-size:27px;line-height:1.25;letter-spacing:-.025em;font-weight:600;margin:0 0 9px}h2{font-size:18px;font-weight:600;margin:0 0 12px}h3{font-size:15px;font-weight:500;margin:0 0 8px}p{font-size:14px;line-height:1.65}.public-intro{margin:0 0 28px;color:#748094;font-size:13px}.public-home{max-width:1100px;margin:18px auto}.public-home>h1{font-size:32px}.public-home .public-intro{font-size:15px;max-width:720px}.public-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:35px}.public-tile{display:flex;flex-direction:column;min-height:175px;padding:23px;border:1px solid #e6ebf1;border-radius:6px;background:#fff;color:#293343}.public-tile:hover{background:#fafcff;border-color:#bfd2f1;text-decoration:none}.public-tile>i{font-size:25px;color:var(--blue);margin-bottom:20px}.public-tile strong{font-size:16px;font-weight:500;margin-bottom:7px}.public-tile span{font-size:13px;line-height:1.6;color:#748094}.public-tile .tile-link{color:var(--blue);margin-top:18px;font-size:12px}.public-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px 0;margin:22px 0 18px}.public-filters label{display:flex;align-items:center;gap:8px;padding:0 14px;border-right:1px solid #e7ebf2;font-size:12px;color:#56677e;height:32px}.public-filters label:first-child{padding-left:0}.public-filters select{min-width:60px;max-width:220px;border:0;background:#fff;padding:5px;color:#748094;font-size:12px}.public-search{display:block;width:100%;max-width:520px;padding:10px 12px;font-size:13px;border:1px solid #e0e7ef;border-radius:4px;background:#fff}.public-result-count{font-size:11px;color:#8a96a5;margin:0 0 10px}.public-table-wrap{overflow:auto;max-width:100%;overscroll-behavior-x:contain}.public-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:760px}.public-table th{padding:11px 12px;font-size:11px;color:#748094;font-weight:400;text-align:left;background:#f8f9fb;border-block:1px solid var(--line)}.public-table th:first-child{width:28%}.public-table td{padding:13px 12px;border-bottom:1px solid var(--line);font-size:13px;line-height:1.5;vertical-align:middle}.public-table tr:hover td{background:#fafcff}.public-table .course-title{font-weight:500;color:#293343}.public-table .course-title:hover{color:var(--blue)}.public-table small{display:block;color:#8290a2;font-size:11px;margin-top:4px}.public-table th button{border:0;background:transparent;padding:0;font:inherit;color:inherit;display:flex;gap:8px;align-items:center;text-align:left}.public-table th button i{font-size:12px;color:#9aa6b5}.public-chip{display:inline-block;font-size:11px;padding:2px 8px;border-radius:12px;background:#e8f1ff;color:#45648f;white-space:nowrap}.public-label{display:inline-block;padding:2px 6px;background:#edf1f9;color:#53647d;border-radius:3px;font-size:12px}.public-back{display:inline-flex;align-items:center;gap:7px;font-size:12px;margin-bottom:24px}.public-detail{max-width:1000px}.public-detail-header{padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:24px}.public-detail-header>p{color:#748094;margin:8px 0 0}.public-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:24px 0 0}.public-facts>div{min-width:0}.public-facts dt{font-size:11px;color:#748094;margin-bottom:6px}.public-facts dd{margin:0;font-size:13px;line-height:1.6}.public-syllabus section{padding:12px 0 24px;border-bottom:1px solid var(--line);margin-bottom:18px}.public-syllabus p{white-space:pre-wrap;overflow-wrap:anywhere;max-width:78ch;font-size:14px;margin:0;line-height:1.8}.public-syllabus h2{font-size:18px}.public-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:24px}.public-person{padding:20px 0;border-bottom:1px solid var(--line);min-width:0}.public-person h2{font-size:15px;font-weight:500;margin:0 0 7px}.public-person h2 a{color:#293343}.public-person p{font-size:13px;color:#748094;margin:0 0 9px;line-height:1.6;overflow-wrap:anywhere}.public-person .public-contact{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:12px}.public-resource{padding:20px 0;border-bottom:1px solid var(--line)}.public-resource h2{font-size:15px;font-weight:500}.public-resource p{margin:7px 0 0;color:#748094;font-size:13px}.public-message{padding:24px 0;color:#748094}.public-message.error{color:#9a4a36}.public-footer{padding:20px 4%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;color:#8490a0;font-size:11px}.public-person-header{display:flex;gap:22px;flex-wrap:wrap;align-items:center;margin-bottom:28px}.public-person-header a{font-size:13px}.public-detail-courses{margin-top:32px}.public-detail-courses h2{margin-bottom:18px}
@media(max-width:850px){.public-tiles,.public-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.public-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.public-table{min-width:640px}}
@media(max-width:620px){.public-top{gap:8px;padding:12px 16px;flex-wrap:wrap;min-height:70px}.public-brand img{width:126px;height:36px}.public-year{font-size:0;margin-left:auto;gap:0}.public-year select{font-size:11px}.public-login{font-size:11px;flex-basis:100%;justify-content:flex-end}#public-nav{gap:20px;padding-inline:16px}#public-nav a{font-size:12px;padding-top:13px}#public-main{padding:25px 16px 40px}h1{font-size:25px}.public-home{margin:0}.public-home>h1{font-size:28px}.public-tiles,.public-directory{grid-template-columns:1fr;gap:0}.public-tile{min-height:0;padding:22px 0;border:0;border-bottom:1px solid var(--line);border-radius:0}.public-tile>i{margin-bottom:12px;font-size:23px}.public-tile .tile-link{margin-top:12px}.public-filters{gap:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.public-filters label{padding:0;border-right:0;border-bottom:1px solid var(--line);font-size:11px;min-width:0}.public-filters select{font-size:11px;min-width:0;max-width:100%;flex:1}.public-table{min-width:620px}.public-table td{padding:12px 9px;font-size:12px}.public-facts{gap:16px}.public-footer{flex-direction:column;padding:20px 16px}.public-intro{line-height:1.7}.public-person{padding-block:20px}.public-result-count{font-size:11px}}
@media(max-width:620px){#public-nav{flex-wrap:wrap;gap:0 18px;white-space:normal;overflow:visible}#public-nav a{padding:11px 0 9px}}
.public-syllabus-text{max-width:78ch;font-size:14px;line-height:1.8;overflow-wrap:anywhere}.public-syllabus-text p{margin:0 0 14px;white-space:normal}.public-syllabus-text :is(ul,ol){margin:0 0 18px;padding-left:22px}.public-syllabus-text li{padding-left:3px;margin:3px 0}.public-syllabus-text h3{font-size:15px;line-height:1.6;font-weight:600;margin:22px 0 9px}.public-syllabus-text h3:first-child{margin-top:0}
/* Public catalogue refresh: one centred 1100 px content column. */
.public-container{width:min(1100px,calc(100% - 40px));margin-left:auto;margin-right:auto}
.public-top{display:block;padding:16px 0}.public-top-inner{display:flex;align-items:center;gap:24px}
.public-year{display:block;white-space:nowrap;font-size:12px;color:#748094}.public-nav-shell{border-bottom:1px solid var(--line)}
#public-nav{padding:0;border-bottom:0}#public-main{padding:32px 0 64px}.public-detail{max-width:1100px}
#public-preview{padding:10px max(20px,calc((100% - 1100px)/2));line-height:1.6}
.public-footer{display:block;padding:22px 0;background:#fafbfd}.public-footer-inner{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:11px;line-height:1.8}.public-footer time{color:#7b8798}
/* A quiet, typographic home inspired by the school's Softr directory. */
.public-home{margin:0;padding-top:12px}.public-home>h1{text-align:center;font-size:36px;line-height:1.2;font-weight:600;letter-spacing:-.035em;color:#293343;margin:0 0 48px}
.public-home .public-tiles{margin:0;gap:30px 36px}.public-home .public-tile{min-height:235px;border:0;border-radius:0;padding:20px 12px 28px;background:transparent;align-items:center;text-align:center;color:#293343}
.public-home .public-tile>i{width:auto;height:auto;border-radius:0;background:transparent;color:#3c424c;font-size:46px;margin-bottom:26px}
.public-home .public-tile strong{font-size:24px;font-weight:600;letter-spacing:-.025em;margin-bottom:12px}.public-home .public-tile>span:not(.tile-link){font-size:14px;line-height:1.7;color:#68717e;max-width:31ch}
.public-home .public-tile .tile-link{font-size:13px;color:#404954;margin-top:auto;padding-top:20px}.public-home .public-tile:hover{background:#fafafa}.public-home .public-tile:hover strong{text-decoration:underline;text-underline-offset:5px}
.public-instructor-table .public-col-title{width:30%}.public-instructor-table .public-col-teachers{width:16%}.public-instructor-table .public-col-promotions,.public-instructor-table .public-col-campuses{width:28%}.public-instructor-table .public-col-semester{width:8%}.public-instructor-table .public-col-studentHours{width:12%}.public-instructor-table .public-col-ects{width:6%}
.public-instructor-table th:first-child{width:auto}.public-instructor-table :is(th,td):nth-last-child(-n+3){padding-inline:8px}
.public-directory-cards{gap:18px;margin-top:24px;align-items:stretch}.public-person-card{padding:0;border:1px solid #e1e7f0;border-radius:10px;overflow:hidden;background:#fff}
.public-person-link{display:flex;flex-direction:column;align-items:flex-start;min-height:235px;height:100%;padding:23px;color:#293343;text-decoration:none}
.public-person-link:hover{background:#f8faff;text-decoration:none}.public-person-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:#eaf1ff;border-radius:50%;font-size:14px;font-weight:500;color:#476ca7;margin-bottom:17px}
.public-person-card h2{font-size:16px;line-height:1.4;font-weight:500;margin:0 0 9px}.public-person-card p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 18px;font-size:13px;line-height:1.65;color:#748094}
.public-card-action{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#386bbb;margin-top:auto;padding-top:5px}
.public-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;margin-top:26px}
.public-resource-card{padding:0;border:1px solid #e2e8ef;border-radius:10px;background:#fff;overflow:hidden;min-width:0}
.public-resource-link{display:flex;flex-direction:column;align-items:flex-start;height:100%;min-height:230px;padding:24px;color:#293343;text-decoration:none}
.public-resource-link:hover{background:#f8faff;text-decoration:none}.public-resource-icon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:10px;background:#eef4ff;color:#5376ad;font-size:23px;margin-bottom:20px}
.public-resource-card:nth-child(3n+2) .public-resource-icon{background:#f3edfc;color:#876fa9}.public-resource-card:nth-child(3n) .public-resource-icon{background:#e8f5ee;color:#5b8b73}
.public-resource-card h2{font-size:16px;font-weight:500;line-height:1.4;margin:0 0 10px}.public-resource-card p{font-size:13px;line-height:1.7;color:#748094;margin:0 0 22px}.public-resource-card .public-card-action{padding-top:0}
@media(max-width:850px){.public-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-footer-inner{align-items:flex-start;flex-direction:column;gap:4px}.public-top-inner{gap:18px}}
@media(max-width:620px){
 .public-container{width:calc(100% - 32px)}.public-top{padding:13px 0}.public-top-inner{gap:10px;flex-wrap:wrap}.public-year{font-size:10px;margin-left:auto;white-space:normal;text-align:right}.public-brand img{width:126px;height:36px}.public-login{font-size:11px;flex-basis:100%;justify-content:flex-end;margin-left:auto}
 #public-nav{padding:0;gap:0 18px}#public-main{padding:24px 0 40px}.public-footer{padding:20px 0}.public-footer-inner{font-size:10px}.public-footer-inner>span:first-child{max-width:100%}.public-footer time{display:block}
 .public-home{padding-top:8px}.public-home>h1{font-size:30px;margin-bottom:22px}.public-home .public-tiles{gap:0}.public-home .public-tile{min-height:220px;padding:26px 16px;border-bottom:1px solid var(--line);border-radius:0}.public-home .public-tile>i{font-size:38px;margin-bottom:18px}.public-home .public-tile strong{font-size:23px}
 .public-directory-cards{gap:14px}.public-person-link{min-height:210px;padding:21px}.public-person-card{padding:0}.public-resource-grid{grid-template-columns:1fr;gap:14px;margin-top:22px}.public-resource-link{min-height:210px;padding:22px}.public-resource-card{padding:0}.public-resource-icon{margin-bottom:16px}
}

.public-team-card{display:flex;flex-direction:column;align-items:flex-start;padding:24px;min-height:250px}.public-team-card .public-person-avatar{background:#f2f4f7;color:#5b6572}.public-team-card p{display:block;overflow:visible;-webkit-line-clamp:unset;margin-bottom:22px}.public-team-card .public-contact{margin-top:auto;gap:10px;flex-direction:column;align-items:flex-start;overflow-wrap:anywhere;max-width:100%;line-height:1.6}
@media(max-width:620px){.public-team-card{padding:22px;min-height:235px}}

/* The home cards replace navigation; inner pages keep centred section links. */
.public-nav-shell #public-nav{justify-content:center}

/* Coco identity — the public catalogue keeps its sober, typographic layout. */
.public-brand.coco-public-brand{display:flex;align-items:center;gap:18px;min-width:0}
.public-brand.coco-public-brand .coco-wordmark{width:112px;height:40px;object-fit:contain}
.public-brand.coco-public-brand .coco-school-mark{width:125px;height:38px;object-fit:contain}
.coco-brand-separator{width:1px;height:30px;background:#e5eaf0;flex:none}
.coco-welcome{text-align:center;max-width:720px;margin:8px auto 30px}
.coco-eyebrow{font-size:10px;letter-spacing:.12em;font-weight:600;color:#657286;margin:0 0 17px}
.coco-welcome h1{font-size:42px;font-weight:600;letter-spacing:-.035em;line-height:1.15;margin:0 0 15px;color:#243247}
.coco-signature{font-size:24px;line-height:1.35;color:#243247;margin:0 0 14px}
.coco-intro{font-size:14px;line-height:1.75;color:#657286;max-width:60ch;margin:0 auto}
@media(max-width:760px){.public-brand.coco-public-brand{gap:10px}.public-brand.coco-public-brand .coco-wordmark{width:83px;height:32px}.public-brand.coco-public-brand .coco-school-mark{width:97px;height:30px}.coco-brand-separator{height:25px}.coco-welcome{margin:7px auto 16px}.coco-eyebrow{font-size:9px;margin-bottom:15px}.coco-welcome h1{font-size:31px}.coco-signature{font-size:21px}.coco-intro{font-size:13px;max-width:36ch}}

.public-login{min-height:44px;display:inline-flex;align-items:center;gap:8px}.public-top-inner>*{min-width:0}@media(max-width:620px){.public-login{justify-content:center;flex-basis:100%;font-size:13px;border:1px solid #dde5ef;border-radius:6px;padding:0 10px;box-sizing:border-box}.public-top-inner{row-gap:8px}.public-year{flex:1;min-width:60px}.public-brand.coco-public-brand{flex-shrink:1;max-width:100%}}

.public-brand.coco-public-brand .coco-public-logo{display:block;width:300px;max-width:100%}.public-brand.coco-public-brand .coco-public-logo img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}.public-brand.coco-public-brand{flex-shrink:1}@media(max-width:620px){.public-brand.coco-public-brand .coco-public-logo{width:104px}.public-brand.coco-public-brand .coco-public-logo img{width:100%;height:auto}}

/* Keep the allotted brand footprint; give this stronger mark breathing room. */
.public-brand.coco-public-brand .coco-public-logo{display:flex;align-items:center;justify-content:center;width:300px;aspect-ratio:406.99/51.91}
.public-brand.coco-public-brand .coco-public-logo img{width:80%;max-width:80%;height:auto}
@media(max-width:620px){.public-brand.coco-public-brand .coco-public-logo{width:104px;aspect-ratio:194.53/51.91}.public-brand.coco-public-brand .coco-public-logo img{width:80%;max-width:80%;height:auto}}

@media(min-width:621px){.public-brand.coco-public-brand .coco-public-logo{justify-content:flex-start}}

/* Mobile sign-in: discreet artwork, generous touch target. */
@media(max-width:620px){.public-top-inner{flex-wrap:nowrap;gap:8px}.public-login{flex:0 0 44px;width:44px;height:44px;min-height:44px;margin-left:0;justify-content:center;gap:0;font-size:18px;border:0;background:transparent}.public-login .public-login-label{display:none}.public-login>i{font-size:18px;line-height:1}.public-year{min-width:0;flex:1;text-align:right}.public-brand.coco-public-brand{min-width:0}}

/* Three desktop tiles per row; centre a final pair at the same card width. */
@media(min-width:851px){.public-home .public-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}.public-home .public-tiles>.public-tile{grid-column:span 2}.public-home .public-tiles>.public-tile:nth-last-child(2):nth-child(3n+1){grid-column:2/span 2}}
