:root{color-scheme:light;--navy:#09263f;--ink:#18364d;--gold:#dca23a;--line:#d9e4ec;--muted:#526b7e;--bg:#f2f6f9}body{font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}a,button{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #d39728;outline-offset:3px}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.favorite{background:#fff;color:#0b3b5a;border:1px solid #a8c0cf;border-radius:7px;padding:8px 12px;display:block;margin:10px 0}.favorite[aria-pressed=true]{background:#fff5d9;border-color:#a67418}.campus-tools{max-width:1240px;margin:20px auto;padding:0 28px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.campus-tools a{background:#0b3b5a;color:white;padding:12px 18px;border-radius:8px;text-decoration:none;font-weight:700}.route-panel{max-width:1184px;margin:20px auto;padding:22px;background:white;border:1px solid #d8e4ec;border-radius:12px}.route-panel summary{cursor:pointer;font-weight:700}.route-panel a{display:inline-block;margin:8px 12px 8px 0;color:#0b3b5a}.muted,.task-status,.meta,.eyebrow{font-size:14px}.card,.panel,.paper{overflow-wrap:anywhere}.side-list button{min-height:48px}
.campus-page{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}.campus-page *{box-sizing:border-box}.campus-header{background:var(--navy);color:white;display:flex;align-items:center;flex-wrap:wrap;gap:24px;padding:16px max(22px,calc((100vw - 1280px)/2))}.campus-header a{color:white;text-decoration:none}.campus-brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.02em}.campus-brand img{height:44px;width:44px;object-fit:contain;background:white;border-radius:50%;padding:3px}.campus-header nav{display:flex;gap:22px;margin-left:auto;font-size:15px}.campus-layout{max-width:1280px;margin:auto;display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;padding:30px 22px 70px}.campus-rail{align-self:start;position:sticky;top:20px;background:white;border:1px solid var(--line);border-radius:12px;padding:16px}.campus-rail a{display:block;text-decoration:none;color:var(--ink);padding:12px;border-radius:7px;margin:4px 0;font-weight:600}.campus-rail a:hover,.campus-rail a.active{background:#eaf1f6;color:#084b76}.campus-rail small{display:block;padding:8px 12px;color:var(--muted);font-size:14px}.campus-content{min-width:0}.campus-content h1{font-size:clamp(28px,4vw,40px);line-height:1.18;margin:0 0 12px;letter-spacing:-.025em}.campus-content h2{font-size:24px;line-height:1.3;margin:32px 0 18px}.campus-content h3{font-size:19px;line-height:1.4;margin:0 0 10px}.campus-content p{line-height:1.6;color:var(--muted)}.campus-panel,.campus-card{background:white;border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0}.campus-panel{margin:18px 0}.campus-card{overflow-wrap:anywhere}.campus-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px}.campus-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:22px 0}.campus-stat{border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);padding:18px;text-align:left;text-decoration:none}.campus-stat strong{display:block;font-size:28px;margin-bottom:6px}.campus-stat span{font-size:14px;color:var(--muted)}.campus-stat.active{border-color:#9d6b19;background:#fff7e5}.campus-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid #0b3b5a;background:#0b3b5a;color:white!important;border-radius:8px;padding:10px 16px;text-decoration:none;font-weight:650;gap:8px}.campus-btn.secondary{background:white;color:#0b3b5a!important;border-color:#abc1cf}.campus-btn.danger{background:#a73730;border-color:#a73730}.campus-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.campus-badge{display:inline-block;font-size:14px;font-weight:650;padding:5px 9px;background:#e9f2f7;color:#164460;border-radius:5px}.campus-badge.success{background:#e9f5ee;color:#226044}.campus-badge.warning{background:#fff4db;color:#785314}.campus-badge.danger{background:#fbecea;color:#a3332a}.campus-bar{height:8px;border-radius:8px;background:#e2ebf1;overflow:hidden;margin-top:16px}.campus-bar i{display:block;height:100%;background:#cb922e}.campus-cover{width:calc(100% + 44px);max-width:none;aspect-ratio:16/9;object-fit:cover;display:block;margin:-22px -22px 20px;border-radius:12px 12px 0 0}.campus-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid white;box-shadow:0 0 0 1px var(--line);background:#e7eff4}.campus-greeting{display:flex;align-items:center;gap:20px;border-left:5px solid var(--gold)}.campus-greeting p{margin:5px 0}.campus-form label{display:block;margin:14px 0 6px;font-weight:600}.campus-form input:not([type=checkbox]),.campus-form select,.campus-form textarea{width:100%;min-height:46px;border:1px solid #aabfcd;border-radius:7px;padding:10px 12px;background:white;color:var(--ink)}.campus-form input[type=checkbox]{width:18px;height:18px;vertical-align:middle}.campus-form textarea{min-height:100px}.campus-form .inline{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.campus-form .inline>*{flex:1;min-width:170px}.campus-form .inline button{flex:0;min-width:100px}.campus-row{padding:16px 0;border-bottom:1px solid var(--line)}.campus-row:last-child{border:0}.campus-row p{margin:6px 0}.campus-content details{margin:14px 0}.campus-content summary{font-weight:650;cursor:pointer}.campus-content pre{white-space:pre-wrap;font:inherit;line-height:1.6;padding:16px;background:var(--bg);border-radius:8px;overflow-wrap:anywhere}.campus-status{min-height:24px;margin:14px 0;color:#71511f}.campus-note{border-left:4px solid var(--gold);padding:14px 18px;background:#fff8e8;border-radius:6px}.campus-empty{padding:22px;border:1px dashed #b8ccd9;border-radius:10px;background:white;color:var(--muted)}.campus-links{display:flex;gap:12px;flex-wrap:wrap}.campus-links a{color:#084f7a}.campus-level{border-left:3px solid var(--gold);padding-left:20px;margin:20px 0}.campus-content [hidden]{display:none!important}.campus-metadata{font-size:14px}.campus-footer{border-top:1px solid var(--line);padding:24px;text-align:center;color:var(--muted);font-size:14px}.campus-table-wrap{overflow:auto}.campus-table{border-collapse:collapse;width:100%;font-size:14px}.campus-table th,.campus-table td{text-align:left;border-bottom:1px solid var(--line);padding:12px;vertical-align:top}
@media(max-width:800px){.campus-layout{display:block;padding:20px 16px 55px}.campus-rail{position:static;display:flex;flex-wrap:wrap;gap:4px;padding:10px;margin-bottom:22px}.campus-rail a{margin:0;padding:10px;font-size:14px}.campus-rail small{width:100%}.campus-header{padding:14px 18px;gap:14px}.campus-header nav{margin-left:0;flex-wrap:wrap;gap:16px}.campus-greeting{align-items:flex-start}.campus-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.campus-panel{padding:18px}.campus-greeting .campus-avatar{width:56px;height:56px}.campus-form .inline>*{min-width:min(100%,180px)}}
@media(max-width:600px){.nav{flex-wrap:wrap}.layout{padding:0 14px}.paper{padding:22px}.card .meta{flex-wrap:wrap}.campus-tools{padding:0 18px}.route-panel{margin:18px}.sidebar h2{font-size:20px}}

.campus-skip{position:absolute;left:16px;top:-100px;z-index:100;background:white;color:var(--navy);padding:12px 18px;border-radius:8px}.campus-skip:focus{top:12px}.campus-content:focus{outline:none}.campus-content [data-campus-view]>h2:first-child{margin-top:20px}.campus-rail a[aria-current=page]{box-shadow:inset 3px 0 0 var(--gold)}.campus-page [hidden]{display:none!important}.campus-header nav a{min-height:44px;display:inline-flex;align-items:center}.campus-empty h3{color:var(--ink)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:800px){.campus-rail a{min-height:44px;display:flex;align-items:center}.campus-rail a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--gold)}.campus-header nav{gap:4px 16px}}

.campus-badge.course-status.success{background:#bbf7d0;color:#14532d;border:1px solid #22c55e}.campus-badge.course-status.warning{background:#fef08a;color:#713f12;border:1px solid #eab308}
