:root {
  --paper: #f5f3f0;
  --ink: #121922;
  --line: rgba(18, 25, 34, 0.12);
  --muted: #556070;
  --panel: rgba(255, 255, 255, 0.82);
  --soft: #eef1f4;
  --maroon: #7a263a;
  --maroon-deep: #5d1f2f;
  --gold: #cbb37f;
  --panel-strong: #1a222d;
  --panel-alt: #0f1720;
  --shadow: 0 18px 40px rgba(13, 20, 27, 0.12);
  --shadow-soft: 0 10px 26px rgba(13, 20, 27, 0.08);
  --font-body: "DM Sans", "Segoe UI", sans-serif;
  --font-display: "DM Serif Display", Georgia, serif;
}
:root[data-theme="dark"] {
  --paper:#0d1520;
  --ink:#edf3f8;
  --line: rgba(214, 222, 231, 0.12);
  --muted:#b7c2d0;
  --panel: rgba(20, 28, 36, 0.85);
  --soft:#1a2631;
  --maroon:#9d4361;
  --maroon-deep:#7a2d46;
  --gold:#ddcda6;
  --panel-strong:#121b23;
  --panel-alt:#0c141b;
  --shadow: 0 22px 54px rgba(0,0,0,0.32);
  --shadow-soft: 0 12px 26px rgba(0,0,0,0.24);
}
* { box-sizing:border-box; }
body::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:12;
  pointer-events:none;
  margin:0;
  padding:2px;
  background:conic-gradient(from 0deg,#ff3b30 0%,#ffcc00 17%,#34c759 34%,#00c7ff 52%,#5856d6 72%,#ff2d55 100%,#ff3b30 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  box-shadow:0 0 18px rgba(0, 199, 255, 0.35);
  opacity:0.92;
  animation:rgb-border 7s linear infinite;
}
.is-hidden { display:none !important; }
@keyframes viewFadeIn {
  from { opacity:0; transform:translateY(10px) scale(0.985); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes modalFadeIn {
  from { opacity:0; transform:translateY(18px) scale(0.97); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
@keyframes modalBackdropIn {
  from { opacity:0; }
  to { opacity:1; }
}
.page-loader { position:fixed; z-index:1200; inset:0; display:grid; place-items:center; align-content:center; gap:0; background:rgba(11, 17, 22, 0.65); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); opacity:1; transition:opacity .36s ease,visibility .36s ease; }
.page-loader.is-ready { visibility:hidden; opacity:0; pointer-events:none; }
html.has-session #auth-view { display:none !important; }
html.session-loading #page-loader { visibility:visible; opacity:1; pointer-events:auto; }
.loader-orbit { position:relative; width:min(220px,62vw); aspect-ratio:2 / 3; animation:loader-float 2s ease-in-out infinite; }
.loader-logo { display:block; width:100%; height:100%; object-fit:contain; }
.loader-orbit::before,.loader-orbit::after { display:none; }
.loader-node { position:absolute; z-index:2; display:grid; place-items:center; width:38px; height:38px; border:3px solid currentColor; border-radius:11px; background:var(--panel); box-shadow:0 5px 14px rgba(24,24,27,.12); font-size:18px; font-weight:700; transform:rotate(45deg); }
.loader-node::first-letter { transform:rotate(-45deg); }
.loader-node.node-blue { top:0; left:73px; color:#203b92; }
.loader-node.node-gold { top:29px; right:5px; color:#f2a21b; }
.loader-node.node-red { top:91px; right:3px; color:#ef3340; }
.loader-node.node-orange { bottom:0; left:73px; color:#f06432; }
.loader-node.node-green { top:91px; left:3px; color:#2caa58; }
.loader-node.node-purple { top:29px; left:5px; color:#71359b; }
.loader-seal { position:absolute; z-index:3; inset:55px; display:grid; place-items:center; align-content:center; border:2px solid #203b92; border-radius:50%; background:var(--panel); color:#203b92; box-shadow:0 5px 15px rgba(24,24,27,.12); text-align:center; }
.loader-seal span { font:700 23px/1 var(--font-body); }
.loader-seal small { margin-top:5px; font:700 6px/1.15 var(--font-body); letter-spacing:.12em; }
.loader-title { margin-top:24px; color:#edf3f8; font:400 28px/1 var(--font-display); }
.loader-caption { margin-top:9px; color:rgba(237,243,248,.82); font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
html { background:var(--paper); scrollbar-gutter:stable both-edges; }
html, body {
  scrollbar-color: rgba(156, 163, 175, 0.75) rgba(15, 23, 32, 0.12);
}
body {
  position:relative;
  margin:0;
  overflow-x:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.1), transparent 20%),
    radial-gradient(circle at top, rgba(122, 38, 58, 0.14), transparent 32%),
    var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body { min-width:320px; }
*::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}
*::-webkit-scrollbar-track {
  background: linear-gradient(180deg, rgba(15, 23, 32, 0.06), rgba(15, 23, 32, 0.12));
  border-radius: 999px;
}
*::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(122, 38, 58, 0.95), rgba(64, 74, 133, 0.9));
  background-clip: padding-box;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.15);
}
*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, rgba(155, 58, 82, 1), rgba(84, 96, 164, 1));
}
*::-webkit-scrollbar-corner {
  background: transparent;
}
button,input,select { font:inherit; }
button { cursor:pointer; color:var(--ink); }
button:focus-visible,input:focus-visible,select:focus-visible { outline:2px solid var(--maroon); outline-offset:3px; }
a { color:inherit; }
.app-shell { min-height:100vh; position:relative; z-index:1; }
.auth { min-height:100vh; display:grid; grid-template-columns:.9fr 1.1fr; }
.auth-rail { padding:42px; display:flex; flex-direction:column; justify-content:space-between; color:#fff; background:linear-gradient(145deg,var(--maroon),var(--maroon-deep)); }
.brand { display:flex; align-items:center; gap:12px; font-weight:700; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; border:1px solid currentColor; font:700 16px var(--font-body); }
.mobile-nav-toggle {
  display:none;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,0.14);
  border-radius:12px;
  background:rgba(255,255,255,0.04);
  padding:0;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
}
.mobile-nav-toggle span {
  display:block;
  width:18px;
  height:2px;
  border-radius:99px;
  background:#fff;
}
.auth-copy { max-width:430px; margin-top:90px; }
.eyebrow,.label { color:var(--maroon); font:700 10px/1.4 var(--font-body); letter-spacing:.16em; text-transform:uppercase; }
.auth-rail .eyebrow { color:#f1dbe1; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--font-display); font-weight:400; letter-spacing:0; }
.auth-copy h1 { margin-top:20px; font-size:60px; line-height:1.04; }
.auth-copy h1 span { color:#e9c8d1; }
.auth-copy p { margin-top:28px; max-width:350px; color:rgba(255,255,255,.73); font:15px/1.7 var(--font-body); }
.auth-overview { display:grid; gap:0; max-width:430px; margin-top:40px; border-top:1px solid rgba(255,255,255,.22); }
.auth-overview > div { display:grid; grid-template-columns:28px 1fr; gap:13px; align-items:start; border-bottom:1px solid rgba(255,255,255,.16); padding:14px 0; }
.auth-overview > div > span { color:#e9c8d1; font-size:11px; font-weight:700; letter-spacing:.08em; }
.auth-overview strong { display:block; color:#fff; font-size:13px; font-weight:700; }
.auth-overview small { display:block; margin-top:3px; color:rgba(255,255,255,.68); font-size:12px; line-height:1.5; }
.auth-form-wrap { display:grid; place-items:center; padding:48px 7%; }
.form-card { width:min(100%,470px); }
.form-card h2 { margin-top:12px; font-size:38px; }
.form-card .intro { margin-top:10px; color:var(--muted); font-size:15px; line-height:1.7; }
.form { margin-top:34px; display:grid; gap:17px; }
.field { display:grid; gap:8px; }
.field-pair { display:grid; grid-template-columns:1.2fr .8fr; gap:12px; }
.field span { font:700 12px var(--font-body); }
input,select,textarea {
  width:100%;
  border:1px solid var(--line);
  border-radius:0;
  padding:13px 12px;
  background:var(--panel);
  color:var(--ink);
  caret-color:var(--ink);
  font:15px var(--font-body);
}
input::placeholder,textarea::placeholder { color:var(--muted); opacity:1; }
input:focus,select:focus,textarea:focus { border-color:var(--maroon); box-shadow:0 5px 16px rgba(122,38,58,.1); outline:none; }
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
textarea:-webkit-autofill:active,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus,
select:-webkit-autofill:active {
  -webkit-text-fill-color:var(--ink) !important;
  -webkit-box-shadow:0 0 0 1000px var(--panel) inset !important;
  transition:background-color 5000s ease-in-out 0s;
}
.primary { border:0; padding:14px 18px; background:var(--maroon); color:#fff; font-weight:700; }
.primary:hover { background:var(--maroon-deep); }
.text-button { border:0; padding:0; background:transparent; color:var(--maroon); font-weight:700; }
.form-footer { margin-top:28px; color:var(--muted); text-align:center; font-size:14px; }
.topbar {
  position:sticky;
  top:0;
  z-index:5;
  border-bottom:1px solid var(--line);
  background:rgba(15, 22, 29, 0.75);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.topbar-inner,.content { width:min(1380px,100%); margin:auto; padding-left:clamp(20px,4vw,52px); padding-right:clamp(20px,4vw,52px); }
.topbar-inner { height:72px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.topbar .brand-mark { background:linear-gradient(135deg, #a04d69, var(--maroon)); color:#fff; border-color:transparent; }
.brand-meta small { display:block; margin-top:3px; color:rgba(255,255,255,.7); font-size:10px; letter-spacing:.18em; text-transform:uppercase; }
.nav { display:flex; align-items:center; gap:5px; }
.nav button,.icon-button { border:0; padding:10px 12px; background:transparent; color:rgba(255,255,255,.7); font-size:13px; font-weight:700; }
.nav button.active,.nav button:hover,.icon-button:hover { color:#fff; }
.toolbar { display:flex; align-items:center; gap:7px; }
.icon-button { border:1px solid rgba(255,255,255,.12); padding:9px 11px; background:rgba(255,255,255,0.02); }
.theme-toggle { display:flex; align-items:center; gap:8px; }
.theme-icon { color:#fff; font-size:16px; line-height:1; }
.theme-label { font-size:12px; }
.university-button { position:fixed; z-index:4; top:83px; right:20px; border:1px solid var(--maroon); padding:9px 13px; background:var(--maroon); color:#fff; font-size:12px; font-weight:700; box-shadow:var(--shadow); }
.profile {
  border-bottom:1px solid var(--line);
  background:rgba(17, 24, 31, 0.72);
  color:#edf3f8;
}
.profile-inner { display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; padding-top:12px; padding-bottom:12px; color:rgba(237,243,248,.78); font:12px var(--font-body); }
.profile strong { color:#fff; }
.profile-name-control { display:flex; align-items:center; gap:9px; min-width:190px; border:1px solid transparent; padding:6px 9px 6px 5px; background:transparent; color:var(--ink); text-align:left; }
.profile-name-control:hover { border-color:var(--line); background:var(--soft); }
.profile-name-control:focus-visible { border-color:var(--maroon); outline:2px solid var(--maroon); outline-offset:2px; }
.profile-mini-avatar { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg, #c77992, var(--maroon)); color:#fff; font:700 13px/1 var(--font-body); }
.profile-trigger-copy { display:grid; gap:1px; }
.profile-trigger-copy strong { font-size:12px; color:#fff; }
.profile-trigger-copy small { color:rgba(255,255,255,.8); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.profile-chevron { margin-left:auto; color:#fff; font-size:16px; }
.profile-trigger { display:flex; align-items:center; gap:8px; border:0; padding:0; background:transparent; text-align:left; }
.profile-trigger strong { color:var(--ink); }
.profile-trigger span { color:var(--maroon); font-size:10px; font-weight:700; opacity:0; transition:opacity .2s ease; }
.profile-trigger:hover span,.profile-trigger:focus-visible span { opacity:1; }
#profile-name { cursor:pointer; }
#profile-name:focus-visible { outline:2px solid var(--maroon); outline-offset:4px; }
#dashboard-view,
#detail-view,
#university-view,
#workspace-view,
#auth-view,
#app-view {
  animation:viewFadeIn .32s cubic-bezier(.2,.8,.2,1);
}
.dashboard { padding-top:58px; padding-bottom:70px; }
.dashboard-intro {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
  border-bottom:1px solid var(--line);
  padding-bottom:40px;
}
.dashboard h1,.hero h1 { margin-top:14px; font-size:clamp(2.8rem, 5vw, 5rem); line-height:0.98; letter-spacing:-0.05em; }
.dashboard-copy { max-width:560px; color:var(--muted); font-size:15px; line-height:1.7; }
.catalog-search {
  position:relative;
  width:min(100%,390px);
  background:rgba(255,255,255,0.78);
  border:1px solid rgba(122,38,58,0.15);
  border-radius:20px;
  padding:18px 18px 12px;
  box-shadow:var(--shadow-soft);
}
.catalog-search label { display:flex; align-items:center; gap:8px; color:#111827; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.search-icon { color:var(--maroon); font-size:20px; line-height:1; }
.search-row { display:flex; align-items:center; gap:8px; margin-top:9px; }
.search-box { position:relative; flex:1; }
.search {
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px 42px 13px 14px;
  background:rgba(255,255,255,0.9);
  color:#111827;
  box-shadow:0 5px 18px rgba(24,24,27,.04);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.search:focus { border-color:var(--maroon); box-shadow:0 10px 22px rgba(122,38,58,.12); transform:translateY(-1px); }
.search::-webkit-search-cancel-button { display:none; }
.search-clear { position:absolute; top:50%; right:8px; display:grid; place-items:center; width:28px; height:28px; border:0; transform:translateY(-50%); background:transparent; color:var(--muted); font-size:20px; line-height:1; }
.search-clear:hover { color:var(--maroon); }
.filter-toggle {
  flex:0 0 auto;
  border:1px solid rgba(122,38,58,0.18);
  background:rgba(255,255,255,0.94);
  color:#111827;
  border-radius:12px;
  padding:12px 12px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.filter-toggle:hover { border-color:var(--maroon); color:var(--maroon); }
.filter-toggle[aria-expanded="true"] { border-color:var(--maroon); background:rgba(122,38,58,.08); color:var(--maroon); }
:root[data-theme="dark"] .catalog-search {
  background:rgba(14, 19, 25, 0.9);
  border-color:rgba(214, 222, 231, 0.18);
}
:root[data-theme="dark"] .catalog-search label,
:root[data-theme="dark"] .filter-toggle,
:root[data-theme="dark"] .filter-toggle[aria-expanded="true"],
:root[data-theme="dark"] .search {
  color:#edf3f8;
}
:root[data-theme="dark"] .search {
  background:rgba(10, 15, 20, 0.96);
  border-color:rgba(214, 222, 231, 0.18);
}
:root[data-theme="dark"] .filter-toggle {
  background:rgba(17, 24, 31, 0.9);
  border-color:rgba(214, 222, 231, 0.18);
}
:root[data-theme="dark"] .filter-toggle[aria-expanded="true"] {
  background:rgba(122,38,58,.18);
  color:#fff;
}
.search-status { margin-top:10px; color:var(--muted); font-size:11px; }
.catalog-filters {
  position:absolute;
  top:calc(100% + 12px);
  right:0;
  left:0;
  z-index:10;
  display:grid;
  gap:10px;
  padding:12px 12px 10px;
  border:1px solid rgba(122,38,58,.15);
  border-radius:18px;
  background:rgba(23, 31, 38, 0.96);
  box-shadow:0 18px 40px rgba(0,0,0,0.28);
}
.catalog-filters.is-hidden { display:none; }
.catalog-filter-block { display:grid; gap:6px; }
.filter-list { display:flex; flex-wrap:wrap; gap:6px; }
.filter-chip {
  border:1px solid rgba(255,255,255,0.12);
  border-radius:999px;
  padding:7px 10px;
  background:rgba(255,255,255,0.08);
  color:rgba(255,255,255,0.9);
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.filter-chip:hover { border-color:rgba(255,255,255,0.3); color:#fff; transform:translateY(-1px); }
.filter-chip.active { border-color:rgba(255,255,255,0.4); background:rgba(122,38,58,.28); color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.05); }
.catalog-groups { display:grid; gap:54px; margin-top:42px; }
.catalog-group { border-top:1px solid var(--line); padding-top:24px; }
.catalog-group-heading { display:grid; grid-template-columns:1fr auto; gap:8px 20px; align-items:end; }
.catalog-group-heading .eyebrow { grid-column:1 / -1; }
.catalog-group-heading h2 { font-size:28px; line-height:1.15; }
.catalog-group-heading > span { color:var(--muted); font-size:11px; }
.program-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:24px; }
.program-card[hidden] { display:none !important; }
.program-card.is-search-hidden { display:none !important; }
.search-empty { display:grid; place-items:center; gap:5px; min-height:210px; margin-top:42px; border:1px dashed var(--line); background:var(--soft); text-align:center; }
.search-empty strong { font:400 25px/1 var(--font-display); }
.search-empty span { color:var(--muted); font-size:13px; }
.program-card {
  position:relative;
  isolation:isolate;
  min-height:265px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid rgba(18,25,34,0.08);
  border-radius:24px;
  padding:25px;
  text-align:left;
  color:var(--ink);
  background:linear-gradient(145deg, rgba(255,255,255,0.78), rgba(255,255,255,0.5));
  box-shadow:var(--shadow-soft);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.program-card::before { content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(135deg, rgba(122,38,58,0.08), transparent 35%, rgba(145,147,175,0.06)); opacity:0; transition:opacity .22s ease; }
.program-card > *,.student-brief-modal > * { position:relative; z-index:1; }
.program-card:hover {
  transform:translateY(-5px);
  border-color:rgba(122,38,58,0.35);
  box-shadow:var(--shadow);
}
.program-card:hover::before { opacity:1; }
.program-card:nth-child(3n+1) { background:linear-gradient(145deg, rgba(245, 234, 238, 0.9), rgba(255,255,255,0.72)); }
.program-card:nth-child(3n+2) { background:linear-gradient(145deg, rgba(233, 243, 247, 0.9), rgba(255,255,255,0.72)); }
.program-card:nth-child(3n) { background:linear-gradient(145deg, rgba(247, 241, 232, 0.95), rgba(255,255,255,0.72)); }
:root[data-theme="dark"] .program-card { background:linear-gradient(145deg, rgba(21,28,36,0.9), rgba(17,21,27,0.85)); }
:root[data-theme="dark"] .program-card:nth-child(3n+1),
:root[data-theme="dark"] .program-card:nth-child(3n+2),
:root[data-theme="dark"] .program-card:nth-child(3n) { background:linear-gradient(145deg, rgba(26,34,45,0.9), rgba(17,21,27,0.8)); }
.program-code { display:flex; justify-content:space-between; font-family:var(--font-display); font-size:42px; font-weight:400; }
.program-card h3 { margin-top:16px; font-size:20px; } .program-card p { margin-top:7px; color:#5f6066; font-size:13px; line-height:1.6; } :root[data-theme="dark"] .program-card p { color:var(--muted); }
.card-bottom { margin-top:22px; display:flex; justify-content:space-between; border-top:1px solid rgba(122,38,58,.2); padding-top:15px; color:var(--maroon); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.guide-header { border-bottom:1px solid var(--line); padding-top:45px; padding-bottom:45px; }
.hero { padding-top:50px; padding-bottom:54px; display:grid; grid-template-columns:1fr 320px; gap:40px; border-bottom:1px solid var(--line); }
.hero-control { border-left:2px solid var(--maroon); padding-left:18px; }
.hero p { max-width:700px; margin-top:20px; color:var(--muted); font-size:16px; line-height:1.8; }
.hero-control > p { margin-top:0; }
.brief-button { width:100%; margin-top:24px; border:1px solid var(--maroon); padding:12px 14px; background:var(--maroon); color:#fff; text-align:left; font-size:12px; font-weight:700; }
.brief-button span { float:right; font-size:16px; line-height:12px; }
.brief-button:hover { background:var(--maroon-deep); }
.selector { padding:35px 0; border-bottom:1px solid var(--line); background:var(--soft); }
.selector-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-top:24px; }
.track { border:1px solid var(--line); padding:20px; background:var(--panel); color:var(--ink); text-align:left; box-shadow:0 8px 20px rgba(24,24,27,.04); } .track strong { display:block; color:var(--ink); font-size:16px; } .track.active,.track:hover { border-color:var(--maroon); box-shadow:0 12px 26px rgba(122,38,58,.12); } .track p { margin-top:10px; color:var(--muted); font-size:13px; line-height:1.7; }
.columns { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:58px 0; }
.section-heading { margin-bottom:24px; } .section-heading h2 { margin-top:10px; font-size:30px; }
.body-copy { color:var(--muted); font-size:15px; line-height:2; }
.metrics { display:grid; grid-template-columns:repeat(3,1fr); margin-top:35px; border-block:1px solid var(--line); padding:20px 0; } .metric { border-left:1px solid var(--line); padding-left:15px; } .metric:first-child { border:0; padding-left:0; } .metric strong { display:block; margin-top:7px; color:var(--ink); font-size:13px; }
.readiness { display:grid; gap:13px; } .readiness-item { display:grid; grid-template-columns:30px 1fr; gap:12px; border:1px solid var(--line); padding:17px; background:var(--panel); color:var(--ink); text-align:left; } .check { display:grid; place-items:center; width:25px; height:25px; border:1px solid var(--maroon); color:var(--maroon); font-size:14px; } .readiness-item.done .check { background:var(--maroon); color:#fff; } .readiness-item p { margin-top:5px; color:var(--muted); font-size:12px; line-height:1.6; }
.full-section { border-top:1px solid var(--line); padding:52px 0; } .full-section h2 { font-size:30px; }
.knowledge-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:28px; } .knowledge-item { border-top:2px solid var(--line); padding-top:16px; } .knowledge-item b { color:var(--maroon); font-size:11px; } .knowledge-item h3 { margin-top:10px; font-size:16px; } .knowledge-item p { margin-top:9px; color:var(--muted); font-size:12px; line-height:1.7; }
.curriculum { width:100%; margin-top:25px; border-collapse:collapse; background:var(--panel); font-size:13px; } .curriculum th,.curriculum td { border-bottom:1px solid var(--line); padding:14px 12px; text-align:left; } .curriculum th { color:var(--maroon); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.career-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:25px; } .career { border:1px solid var(--line); padding:18px; background:var(--panel); color:var(--ink); text-align:left; } .career:hover { border-color:var(--maroon); transform:translateY(-2px); } .career strong { display:block; color:var(--ink); font-size:14px; } .career span { display:block; margin-top:8px; color:var(--muted); font-size:11px; line-height:1.5; }
.links-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-top:25px; } .resource { border:1px solid var(--line); padding:17px; background:var(--panel); text-decoration:none; } .resource:hover { border-color:var(--maroon); } .resource span { display:block; margin-top:7px; color:var(--muted); font-size:12px; line-height:1.6; }
.study-grid { display:grid; grid-template-columns:1fr 1fr 1.1fr; gap:28px; margin-top:30px; } .study-grid > div { border-top:1px solid var(--line); padding-top:15px; } .study-grid ul { display:grid; gap:12px; margin:15px 0 0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.65; }
.student-announcements { margin-top:28px; border:1px solid var(--line); border-left:3px solid var(--maroon); padding:22px; background:var(--panel); }
.student-announcements h2 { margin-top:7px; font-size:24px; }
.announcement-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }
.announcement-strip article { border-top:1px solid var(--line); padding-top:13px; }
.announcement-strip strong,.announcement-item strong { display:block; font-size:13px; }
.announcement-strip span,.announcement-item span { display:block; margin-top:4px; color:var(--maroon); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.announcement-strip p,.announcement-item p { margin-top:8px; color:var(--muted); font-size:12px; line-height:1.6; }
.role-workspace { padding-top:52px; padding-bottom:70px; }
.workspace-head { display:flex; justify-content:space-between; align-items:end; gap:30px; border-bottom:1px solid var(--line); padding-bottom:34px; }
.workspace-head h1 { max-width:700px; margin-top:12px; font-size:52px; line-height:1.05; }
.workspace-intro { max-width:650px; margin-top:14px; color:var(--muted); line-height:1.7; }
.workspace-primary { flex:0 0 auto; border:0; padding:13px 16px; background:var(--maroon); color:#fff; font-size:12px; font-weight:700; }
.workspace-primary:hover { background:var(--maroon-deep); }
.workspace-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:26px 0; }
.workspace-stats > div { border-top:2px solid var(--maroon); padding:14px 0; }
.workspace-stats strong { display:block; margin-top:8px; font:400 30px/1 var(--font-display); }
.workspace-columns { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:22px; }
.top-workspace { grid-template-columns:1fr; }
.lower-workspace { grid-template-columns:1fr; }
.workspace-panel { min-width:0; border-top:1px solid var(--line); padding-top:18px; }
.panel-heading { display:flex; justify-content:space-between; align-items:start; gap:18px; }
.panel-heading h2 { margin-top:7px; font-size:25px; }
.program-admin-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
  gap:10px;
  margin-top:18px;
}
.program-admin-card {
  display:grid;
  gap:6px;
  min-height:150px;
  border:1px solid var(--line);
  border-radius:14px;
  padding:10px 10px 12px;
  background:linear-gradient(145deg, rgba(255,255,255,0.72), rgba(255,255,255,0.5));
  box-shadow:var(--shadow-soft);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.program-admin-card:hover {
  transform:translateY(-2px);
  border-color:rgba(122,38,58,.28);
  box-shadow:var(--shadow);
}
.program-admin-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
.program-admin-code {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  padding:6px 7px;
  border-radius:10px;
  background:rgba(122,38,58,.08);
  color:var(--maroon);
  font-family:var(--font-display);
  font-size:16px;
  line-height:1;
}
.program-admin-card h3 {
  margin:0;
  font-size:15px;
  line-height:1.28;
}
.program-admin-meta {
  display:flex;
  flex-wrap:wrap;
  gap:5px 8px;
  margin-top:auto;
  padding-top:8px;
  border-top:1px solid rgba(122,38,58,.12);
}
.program-admin-meta span {
  display:inline-flex;
  align-items:center;
  gap:3px;
  color:var(--muted);
  font-size:9px;
  line-height:1.3;
}
.program-admin-meta strong {
  color:var(--ink);
  font-size:7px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.table-wrap { overflow:auto; margin-top:18px; border:1px solid var(--line); background:var(--panel); }
.workspace-table { width:100%; border-collapse:collapse; font-size:12px; }
.workspace-table th,.workspace-table td { border-bottom:1px solid var(--line); padding:13px 12px; text-align:left; vertical-align:top; white-space:nowrap; }
.workspace-table th { color:var(--maroon); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.workspace-table tr:last-child td { border-bottom:0; }
.workspace-table td strong,.workspace-table td span { display:block; }
.workspace-table td span { margin-top:4px; color:var(--muted); font-size:11px; }
.table-action { border:1px solid var(--line); padding:7px 9px; background:transparent; color:var(--maroon); font-size:11px; font-weight:700; border-radius:10px; }
.table-action:hover { border-color:var(--maroon); background:var(--soft); }
.status-badge { display:inline-block !important; border:1px solid var(--line); padding:5px 7px; color:var(--muted) !important; font-size:10px !important; font-weight:700; letter-spacing:.08em; text-transform:uppercase; border-radius:999px; }
.status-active { border-color:#70b887; color:#247541 !important; }
.empty-cell,.workspace-empty { color:var(--muted); line-height:1.6; }
.workspace-empty { padding:18px 0; font-size:13px; }
.workspace-editor-shell {
  display:grid;
  grid-template-columns:minmax(220px, 320px) minmax(0, 1fr);
  gap:18px;
  min-height:420px;
  margin-top:18px;
}
.workspace-editor-sidebar,
.workspace-editor-panel {
  border:1px solid var(--line);
  border-radius:20px;
  background:linear-gradient(145deg, rgba(255,255,255,0.78), rgba(255,255,255,0.56));
  box-shadow:var(--shadow-soft);
}
:root[data-theme="dark"] .workspace-editor-shell,
:root[data-theme="dark"] .workspace-editor-sidebar,
:root[data-theme="dark"] .workspace-editor-panel,
:root[data-theme="dark"] .workspace-editor-sidebar .panel-heading,
:root[data-theme="dark"] .workspace-editor-panel .panel-heading,
:root[data-theme="dark"] .workspace-form,
:root[data-theme="dark"] .workspace-form label,
:root[data-theme="dark"] .workspace-form .field {
  background:linear-gradient(145deg, rgba(18,25,33,0.9), rgba(10,15,20,0.92));
  color:var(--ink);
}
:root[data-theme="dark"] .workspace-editor-panel h2,
:root[data-theme="dark"] .workspace-editor-sidebar h2,
:root[data-theme="dark"] .workspace-editor-panel .eyebrow,
:root[data-theme="dark"] .workspace-editor-sidebar .eyebrow,
:root[data-theme="dark"] .workspace-editor-panel .label,
:root[data-theme="dark"] .workspace-editor-sidebar .label {
  color:var(--ink);
}
.workspace-editor-sidebar {
  display:grid;
  grid-template-rows:auto 1fr;
  overflow:hidden;
}
.workspace-editor-sidebar .panel-heading {
  padding:18px 18px 12px;
  border-bottom:1px solid var(--line);
}
.editor-course-grid {
  display:grid;
  gap:10px;
  padding:14px;
  overflow:auto;
  max-height:420px;
}
.editor-course-card {
  width:100%;
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px 12px 10px;
  background:rgba(255,255,255,0.4);
  text-align:left;
  color:var(--ink);
  transition:border-color .18s ease, background .18s ease, transform .18s ease;
}
:root[data-theme="dark"] .editor-course-card {
  background:rgba(255,255,255,0.03);
  color:var(--ink);
}
:root[data-theme="dark"] .editor-course-card strong,
:root[data-theme="dark"] .editor-course-card span {
  color:var(--ink);
}
.editor-course-card:hover {
  border-color:rgba(122,38,58,.28);
  transform:translateY(-1px);
}
.editor-course-card.active {
  border-color:var(--maroon);
  background:rgba(122,38,58,.08);
}
.editor-course-card strong {
  display:block;
  color:var(--ink);
  font-size:13px;
}
.editor-course-card span {
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.workspace-editor-panel {
  display:flex;
  flex-direction:column;
  padding:20px;
}
.workspace-editor-panel .panel-heading {
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.workspace-form {
  display:grid;
  gap:16px;
  margin-top:18px;
}
.workspace-form textarea,
.workspace-form input {
  width:100%;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 13px;
  background:var(--panel);
  color:var(--ink);
  font:14px/1.6 var(--font-body);
}
:root[data-theme="dark"] .workspace-form textarea,
:root[data-theme="dark"] .workspace-form input {
  background:rgba(10, 15, 20, 0.96);
  color:var(--ink);
  border-color:rgba(214, 222, 231, 0.18);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.02);
}
:root[data-theme="dark"] .workspace-form textarea::placeholder,
:root[data-theme="dark"] .workspace-form input::placeholder {
  color:var(--muted);
}
.workspace-form textarea { resize:vertical; min-height:110px; }
.workspace-form textarea:focus,
.workspace-form input:focus { border-color:var(--maroon); outline:none; box-shadow:0 5px 16px rgba(122,38,58,.1); }
.form-actions { display:flex; justify-content:flex-end; gap:10px; }
.form-feedback { color:#247541; font-size:12px; }
.announcement-list { display:grid; gap:12px; margin-top:18px; }
.announcement-item { border:1px solid var(--line); padding:14px; background:var(--panel); }
.assignment-modal { width:min(100%,820px); }
.assignment-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:24px; max-height:48vh; overflow:auto; padding:2px; }
.assignment-option { display:flex; align-items:center; gap:10px; min-height:64px; border:1px solid var(--line); padding:12px; background:var(--soft); cursor:pointer; }
.assignment-option:hover { border-color:var(--maroon); }
.assignment-option:has(input:checked) { border-color:var(--maroon); background:color-mix(in srgb,var(--maroon) 9%,var(--panel)); }
.assignment-option input { width:16px; height:16px; accent-color:var(--maroon); }
.assignment-option strong,.assignment-option small { display:block; }
.assignment-option strong { color:var(--ink); font-size:12px; }
.assignment-option small { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.35; }
.assignment-option + .assignment-option { margin:0; }
.assignment-action { margin-left:5px; }
.university-hero {
  position:relative;
  overflow:hidden;
  margin-inline:calc(clamp(20px,4vw,52px) * -1);
  padding:72px clamp(20px,4vw,52px) 60px;
  border:1px solid rgba(255,255,255,0.08);
  border-radius:24px 24px 0 0;
  background:linear-gradient(135deg, rgba(122,38,58,.98), rgba(93,31,47,.96) 45%, rgba(52,14,27,.95));
  box-shadow:0 20px 50px rgba(96,24,39,.18);
  color:#fff;
}
.university-hero::before {
  content:"";
  position:absolute;
  inset:-30% auto auto -12%;
  width:360px;
  height:360px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.18), transparent 62%);
  pointer-events:none;
}
.university-hero::after {
  content:"";
  position:absolute;
  inset:18% -8% auto auto;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,204,0,.12), transparent 60%);
  pointer-events:none;
}
.university-hero .eyebrow {
  position:relative;
  z-index:1;
  color:#f7dce1;
  letter-spacing:.2em;
}
.university-hero h1 {
  position:relative;
  z-index:1;
  max-width:820px;
  margin-top:18px;
  font-size:clamp(2.5rem, 4vw, 4.5rem);
  line-height:0.96;
  letter-spacing:-0.05em;
}
.university-hero p {
  position:relative;
  z-index:1;
  max-width:720px;
  margin-top:20px;
  color:rgba(255,255,255,.8);
  font-size:1.08rem;
}
.university-story-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:26px;
  margin-top:28px;
}
.story-card {
  position:relative;
  min-height:320px;
  border:1px solid rgba(18,25,34,.08);
  border-radius:22px;
  background:rgba(255,255,255,.7);
  padding:28px 30px 26px;
  box-shadow:0 18px 40px rgba(13,20,27,.04);
  overflow:hidden;
}
.story-card::before {
  content:"";
  position:absolute;
  right:-42px;
  top:-42px;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(122,38,58,.08), transparent 62%);
  pointer-events:none;
}
.story-kicker {
  position:relative;
  z-index:1;
  margin:0 0 18px;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.story-copy {
  position:relative;
  z-index:1;
  margin:0;
  color:var(--ink);
  font-size:clamp(1.2rem, 2.1vw, 2.2rem);
  line-height:1.18;
  letter-spacing:-0.04em;
}
.story-copy.big {
  font-size:clamp(1.5rem, 2.5vw, 3rem);
  line-height:1.1;
}
.vision-card h3 {
  position:relative;
  z-index:1;
  margin-top:24px;
  font-size:clamp(1.9rem, 3vw, 3.3rem);
  line-height:1.05;
  letter-spacing:-0.05em;
}
.core-values {
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin:22px 0 0;
  padding:0;
  list-style:none;
  color:var(--ink);
  font-size:clamp(1.05rem, 1.8vw, 1.5rem);
  line-height:1.6;
}
.core-values li::before {
  content:"•";
  margin-right:8px;
  color:var(--maroon);
}
:root[data-theme="dark"] .story-card {
  border-color: rgba(214, 222, 231, 0.12);
  background: linear-gradient(180deg, rgba(16, 23, 31, 0.9), rgba(13, 18, 24, 0.96));
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.18);
}
:root[data-theme="dark"] .story-card::before {
  background: radial-gradient(circle, rgba(255,255,255,0.08), transparent 58%);
}
:root[data-theme="dark"] .story-kicker,
:root[data-theme="dark"] .history-header .eyebrow {
  color: #f7c2d2;
}
:root[data-theme="dark"] .story-copy,
:root[data-theme="dark"] .story-copy.big,
:root[data-theme="dark"] .vision-card h3,
:root[data-theme="dark"] .core-values,
:root[data-theme="dark"] .history-header h2 {
  color: #edf3f8;
}
:root[data-theme="dark"] .core-values li::before {
  color: #ff9db5;
}
:root[data-theme="dark"] .history-shell {
  border-top-color: rgba(214, 222, 231, 0.12);
}
:root[data-theme="dark"] .history-step {
  border-color: rgba(214, 222, 231, 0.12);
  background: linear-gradient(180deg, rgba(18, 27, 35, 0.9), rgba(12, 19, 25, 0.96));
  box-shadow: 0 16px 30px rgba(0,0,0,0.14);
}
:root[data-theme="dark"] .history-step::before {
  background: linear-gradient(180deg, rgba(255, 157, 181, 0.9), rgba(122, 38, 58, 0.24));
}
:root[data-theme="dark"] .history-year {
  border-color: rgba(255, 157, 181, 0.35);
  background: rgba(255, 157, 181, 0.08);
  color: #ffc8d7;
}
:root[data-theme="dark"] .history-step p {
  color: #d9e3ee;
}
.history-shell {
  margin-top:42px;
  border-top:1px solid var(--line);
  padding-top:30px;
}
.history-header {
  margin-bottom:20px;
}
.history-header .eyebrow {
  margin:0;
  color:var(--maroon);
  letter-spacing:.18em;
  font-size:10px;
  font-weight:800;
}
.history-header h2 {
  margin-top:10px;
  font-size:clamp(2.1rem, 3vw, 3.3rem);
  line-height:1.1;
  letter-spacing:-0.05em;
}
.history-timeline {
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}
.history-step {
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:16px;
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px 18px 17px;
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 22px rgba(13,20,27,.025);
}
.history-step::before {
  content:"";
  position:absolute;
  left:18px;
  top:20px;
  bottom:20px;
  width:2px;
  background:linear-gradient(180deg, var(--maroon), rgba(122,38,58,.2));
  border-radius:999px;
}
.history-year {
  position:relative;
  z-index:1;
  display:inline-flex;
  min-width:72px;
  justify-content:center;
  border:1px solid rgba(122,38,58,.18);
  border-radius:999px;
  background:rgba(122,38,58,.04);
  padding:8px 10px;
  color:var(--maroon);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.history-step p {
  position:relative;
  z-index:1;
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}
.modal-backdrop {
  position:fixed;
  inset:0;
  z-index:30;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(0,0,0,.58);
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transition:opacity .22s ease, visibility .22s ease;
  animation:modalBackdropIn .2s ease;
}
.modal-backdrop.is-hidden {
  display:grid !important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.modal {
  width:min(100%,680px);
  max-height:90vh;
  overflow:auto;
  overflow-x:hidden;
  border:1px solid var(--line);
  padding:30px;
  background:var(--panel);
  box-shadow:0 25px 65px rgba(0,0,0,.3);
  animation:modalFadeIn .26s cubic-bezier(.2,.8,.2,1);
}
.modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; } .modal h2 { margin-top:8px; font-size:30px; line-height:1.15; } .close { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; border:1px solid var(--line); background:transparent; color:var(--muted); padding:0; font:500 20px/1 var(--font-body); } .close:hover { border-color:var(--maroon); background:var(--soft); color:var(--maroon); } .modal p { margin-top:10px; color:var(--muted); font-size:14px; line-height:1.8; } .modal-section { margin-top:24px; border-top:1px solid var(--line); padding-top:18px; }
.student-brief-modal { position:relative; isolation:isolate; width:min(100%,980px); }
.student-brief-modal::before { opacity:.7; }
.student-brief-modal .modal-head { align-items:start; }
.student-brief-modal .modal-head > div { max-width:760px; }
.student-brief-modal .modal-head p { margin-top:10px; }
.brief-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:26px; border-block:1px solid var(--line); padding:18px 0; }
.brief-summary > div { border-left:1px solid var(--line); padding-left:15px; }
.brief-summary > div:first-child { border-left:0; padding-left:0; }
.brief-summary strong { display:block; margin-top:7px; color:var(--ink); font-size:14px; }
.brief-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:24px; }
.brief-panel { border-top:2px solid var(--line); padding-top:14px; }
.brief-panel ul { display:grid; gap:9px; margin:12px 0 0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.6; }
.brief-panel p:not(.label) { margin-top:12px; }
.brief-section { margin-top:28px; border-top:1px solid var(--line); padding-top:18px; }
.brief-section > p:not(.label) { max-width:850px; }
.brief-careers,.brief-resources { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:16px; }
.brief-careers article,.brief-resources a { border:1px solid var(--line); padding:14px; background:var(--soft); text-decoration:none; }
.brief-careers strong,.brief-resources strong { display:block; color:var(--ink); font-size:13px; }
.brief-careers span,.brief-resources span { display:block; margin-top:7px; color:var(--muted); font-size:11px; line-height:1.55; }
.brief-resources a:hover { border-color:var(--maroon); }
.career-profile-modal { width:min(100%,760px); }
.career-profile-intro { border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:22px; padding:18px 0; }
.career-profile-intro p { margin:0; font-size:16px; }
.career-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:26px; }
.career-profile-grid section { border-top:2px solid var(--line); padding-top:14px; }
.career-profile-grid ul { display:grid; gap:10px; margin:12px 0 0; padding-left:18px; color:var(--muted); font-size:13px; line-height:1.65; }
.career-profile-resources { margin-top:28px; border-top:1px solid var(--line); padding-top:18px; }
.modal-resource-list { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }
.modal-resource-list a { border:1px solid var(--line); padding:14px; background:var(--soft); text-decoration:none; }
.modal-resource-list a:hover { border-color:var(--maroon); }
.modal-resource-list strong { display:block; color:var(--ink); font-size:12px; }
.modal-resource-list span { display:block; margin-top:7px; color:var(--muted); font-size:11px; line-height:1.55; }
.confirm-modal { width:min(100%,600px); border-top:3px solid var(--maroon); padding:34px; }
.confirm-modal .modal-head { padding-bottom:4px; }
.confirm-modal .modal-head h2 { font-size:34px; }
.confirm-modal .modal-section { margin-top:26px; padding-top:22px; }
.confirm-modal .modal-section > p { max-width:480px; font-size:15px; }
.confirm-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:25px; }
.secondary-button,.primary-button { border:1px solid var(--line); padding:11px 16px; font-size:12px; font-weight:700; }
.secondary-button { background:transparent; color:var(--muted); }
.secondary-button:hover { border-color:var(--maroon); color:var(--maroon); }
.primary-button { border-color:var(--maroon); background:var(--maroon); color:#fff; }
.primary-button:hover { background:var(--maroon-deep); }
.profile-modal { width:min(100%,700px); }
.profile-summary { display:flex; align-items:center; gap:14px; margin-top:25px; border-block:1px solid var(--line); padding:18px 0; }
.profile-avatar { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--maroon); color:#fff; font:400 23px/1 var(--font-display); }
.profile-summary strong,.profile-summary span { display:block; }
.profile-summary strong { font-size:17px; }
.profile-summary span { margin-top:4px; color:var(--muted); font-size:12px; }
.profile-progress { margin-top:24px; border:1px solid var(--line); padding:17px; background:var(--soft); }
.profile-progress > div:first-child { display:flex; justify-content:space-between; align-items:center; }
.profile-progress strong { color:var(--maroon); font-size:18px; }
.progress-track { height:7px; margin-top:13px; background:var(--line); }
.progress-track span { display:block; width:0; height:100%; background:var(--maroon); transition:width .3s ease; }
.profile-progress p { margin-top:9px; color:var(--muted); font-size:12px; }
.profile-form { display:grid; gap:16px; margin-top:25px; }
.track-detail-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px; } .track-detail-grid ul { display:grid; gap:9px; margin:12px 0 0; padding-left:17px; color:var(--muted); font-size:12px; line-height:1.6; } .track-detail-grid > div { border-top:1px solid var(--line); padding-top:13px; } .track-detail-grid > div > p:last-child { color:var(--muted); font-size:12px; }
.site-footer {
  margin-top:48px;
  border-top:1px solid var(--line);
  background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
}
.site-footer-inner {
  display:grid;
  grid-template-columns:1.2fr 1.8fr;
  gap:32px;
  max-width:1200px;
  margin:0 auto;
  padding:34px clamp(18px, 3vw, 42px) 18px;
}
.footer-brand-block {
  display:grid;
  gap:18px;
}
.footer-brand-block p {
  max-width:420px;
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
}
.footer-links {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}
.footer-label {
  margin:0 0 14px;
  color:var(--maroon);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.footer-links ul {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
  color:var(--ink);
  font-size:13px;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:16px;
  max-width:1200px;
  margin:0 auto;
  padding:0 clamp(18px, 3vw, 42px) 26px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
}
:root[data-theme="dark"] .site-footer {
  border-top-color: rgba(214, 222, 231, 0.12);
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
}
:root[data-theme="dark"] .footer-links ul,
:root[data-theme="dark"] .footer-brand-block p,
:root[data-theme="dark"] .footer-bottom {
  color: #dfeaf6;
}
:root[data-theme="dark"] .footer-label {
  color: #f4c6d5;
}
@media (max-width:850px) {
  .auth { display:block; }
  .auth-rail { min-height:330px; padding:28px 22px; }
  .auth-copy { margin-top:30px; }
  .auth-copy h1 { font-size:44px; }
  .auth-overview { margin-top:32px; }
  .auth-form-wrap { padding:42px 22px; }
  .topbar-inner {
    position:relative;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:12px;
    min-height:72px;
    padding-top:10px;
    padding-bottom:10px;
  }
  .brand {
    grid-column:1;
    min-width:0;
  }
  .brand-meta {
    min-width:0;
  }
  .brand-meta small {
    letter-spacing:.08em;
  }
  .mobile-nav-toggle {
    display:flex;
    grid-column:2;
    justify-self:end;
  }
  .toolbar {
    grid-column:3;
    margin-left:0;
    gap:6px;
  }
  .nav {
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    gap:6px;
    padding:12px;
    border:1px solid rgba(255,255,255,0.12);
    border-radius:18px;
    background:rgba(16, 22, 29, 0.97);
    box-shadow:0 20px 42px rgba(0,0,0,0.24);
    z-index:20;
  }
  .nav.is-open {
    display:flex;
  }
  .nav button {
    width:100%;
    padding:12px 14px;
    border-radius:12px;
    background:rgba(255,255,255,0.03);
    border:1px solid transparent;
    text-align:left;
    color:rgba(255,255,255,0.82);
  }
  .nav button.active {
    background:rgba(255,255,255,0.08);
    border-color:rgba(255,255,255,0.12);
    color:#fff;
  }
  .icon-button {
    padding:8px 10px;
    border-radius:10px;
    font-size:11px;
  }
  .theme-label {
    font-size:11px;
  }
  .profile {
    margin:10px 12px 0;
    border-radius:18px;
    border:1px solid rgba(255,255,255,0.08);
    background:linear-gradient(180deg, rgba(21,28,36,0.94), rgba(18,24,31,0.9));
    box-shadow:0 14px 28px rgba(8, 12, 16, 0.2);
    overflow:hidden;
  }
  .profile-inner {
    display:grid;
    gap:10px;
    padding:14px 14px 12px;
  }
  .profile-inner > * {
    width:100%;
  }
  .profile-name-control {
    display:flex;
    width:calc(100% - 24px);
    margin:12px 12px 0;
    border-radius:14px;
    border:1px solid rgba(255,255,255,0.08);
    background:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.07);
    padding:8px 10px;
    min-height:54px;
  }
  .profile-mini-avatar {
    width:28px;
    height:28px;
    font-size:11px;
    border:1px solid rgba(255,255,255,0.08);
  }
  .profile-trigger-copy {
    gap:2px;
    min-width:0;
  }
  .profile-trigger-copy strong {
    color:#fff;
    font-size:13px;
    letter-spacing:-0.02em;
  }
  .profile-trigger-copy small {
    color:rgba(255,255,255,0.72);
    letter-spacing:.08em;
    font-size:8px;
  }
  .profile-chevron {
    font-size:14px;
    opacity:.8;
  }
  .profile label {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:7px;
    color:rgba(237,243,248,.72);
    font-size:11px;
    letter-spacing:.02em;
  }
  .profile label select {
    width:100%;
    max-width:none;
    border-radius:11px;
    border:1px solid rgba(255,255,255,0.12);
    background:rgba(255,255,255,0.03);
    color:#edf3f8;
    padding:11px 12px;
  }
  .profile strong,
  .profile span,
  .profile select {
    font-size:12px;
  }
  .profile strong {
    font-size:13px;
  }
  .dashboard-intro,.hero { display:block; }
  .hero-control { margin-top:34px; }
  .search { margin-top:28px; width:100%; }
  .program-grid,.career-grid { grid-template-columns:repeat(2,1fr); }
  .columns,.university-grid,.study-guide,.study-grid { grid-template-columns:1fr; gap:40px; }
  .knowledge-grid { grid-template-columns:repeat(2,1fr); }
  .selector-grid,.links-grid { grid-template-columns:1fr; }
  .brief-careers,.brief-resources,.modal-resource-list { grid-template-columns:repeat(2,1fr); }
  .career-profile-grid { grid-template-columns:1fr; gap:22px; }
  .workspace-head,.workspace-columns { display:grid; grid-template-columns:1fr; }
  .workspace-head h1 { font-size:43px; }
  .workspace-primary { justify-self:start; }
  .workspace-stats { grid-template-columns:repeat(2,1fr); }
  .announcement-strip { grid-template-columns:1fr; }
  .university-hero {
    margin-inline:0;
    padding:38px 18px 28px;
    border-radius:18px 18px 0 0;
  }
  .university-story-grid,
  .history-timeline {
    grid-template-columns:1fr;
  }
  .story-card {
    min-height:180px;
    padding:18px 18px 20px;
    border-radius:18px;
  }
  .story-copy {
    font-size:1.05rem;
    line-height:1.32;
  }
  .story-copy.big {
    font-size:1.28rem;
  }
  .vision-card h3 {
    margin-top:18px;
    font-size:1.6rem;
  }
  .core-values {
    gap:6px 12px;
    font-size:0.95rem;
  }
  .history-step {
    gap:12px;
    padding:12px 12px 11px;
  }
  .history-year {
    min-width:58px;
    padding:6px 8px;
    font-size:11px;
  }
  .site-footer-inner,.footer-links { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; }
}
@media (max-width:850px) {
  .auth { display:block; }
  .auth-rail { min-height:330px; padding:28px 22px; }
  .auth-copy { margin-top:55px; }
  .auth-copy h1 { font-size:44px; }
  .auth-form-wrap { padding:42px 22px; }
  .dashboard-intro,.hero { display:block; }
  .search { margin-top:28px; width:100%; }
  .program-grid,.career-grid { grid-template-columns:repeat(2,1fr); }
  .columns,.university-grid,.study-grid,.track-detail-grid { grid-template-columns:1fr; gap:40px; }
  .knowledge-grid { grid-template-columns:repeat(2,1fr); }
  .selector-grid,.links-grid { grid-template-columns:1fr; }
  .university-hero { margin-inline:-20px; }
}
@media (max-width:560px) {
  .program-grid,.career-grid,.knowledge-grid,.timeline { grid-template-columns:1fr; }
  .topbar-inner {
    min-height:72px;
    padding-top:10px;
    padding-bottom:10px;
    gap:8px;
  }
  .brand {
    gap:8px;
  }
  .brand-mark {
    width:30px;
    height:30px;
    font-size:14px;
  }
  .brand-meta {
    font-size:13px;
  }
  .brand-meta small {
    letter-spacing:.06em;
  }
  .nav {
    gap:4px;
    padding:4px;
  }
  .nav button {
    padding:8px 10px;
    font-size:10px;
  }
  .toolbar {
    width:100%;
    justify-content:space-between;
    gap:6px;
  }
  .icon-button {
    flex:1 1 auto;
    justify-content:center;
    min-width:0;
  }
  .theme-label {
    display:inline;
    font-size:10px;
  }
  .profile-inner {
    gap:8px 15px;
    padding:10px 12px;
  }
  .profile strong,
  .profile span,
  .profile select {
    font-size:11px;
  }
  .dashboard {
    padding-top:22px;
    padding-bottom:42px;
  }
  .dashboard-intro {
    padding-bottom:22px;
  }
  .hero h1,.dashboard h1 { font-size:43px; }
  .metrics { gap:8px; }
  .metric { padding-left:8px; }
  .metric strong { font-size:11px; }
  .content {
    padding-left:16px;
    padding-right:16px;
  }
  .program-card {
    min-height:185px;
    padding:16px 14px;
    border-radius:18px;
  }
  .program-card h3 {
    font-size:1.05rem;
    margin-top:12px;
  }
  .program-card p {
    margin-top:6px;
    font-size:12px;
    line-height:1.5;
  }
  .program-code {
    font-size:22px;
  }
  .card-bottom {
    margin-top:14px;
    padding-top:12px;
    gap:10px;
    font-size:9px;
    letter-spacing:.08em;
  }
  .university-hero {
    border-radius:20px 20px 0 0;
  }
  .story-card {
    border-radius:18px;
    min-height:auto;
  }
  .history-step {
    border-radius:14px;
  }
  .field-pair { grid-template-columns:1fr; gap:17px; }
  .brief-summary,.brief-grid,.brief-careers,.brief-resources,.modal-resource-list { grid-template-columns:1fr; }
  .brief-summary > div,.brief-summary > div:first-child { border-left:0; border-top:1px solid var(--line); padding:10px 0 0; }
  .brief-summary > div:first-child { border-top:0; padding-top:0; }
  .confirm-actions { flex-direction:column-reverse; }
  .secondary-button,.primary-button { width:100%; }
  .workspace-head h1 { font-size:38px; }
  .workspace-stats { grid-template-columns:1fr 1fr; gap:10px; }
  .workspace-stats strong { font-size:25px; }
  .form-actions { flex-direction:column-reverse; }
  .form-actions button { width:100%; }
}
@media (min-width:1200px) { .program-grid { grid-template-columns:repeat(4,1fr); } }
:root[data-theme="dark"] .program-card h3,
:root[data-theme="dark"] .track strong,
:root[data-theme="dark"] .metric strong,
:root[data-theme="dark"] .career strong,
:root[data-theme="dark"] .full-section h2,
:root[data-theme="dark"] .section-heading h2,
:root[data-theme="dark"] .selector h2,
:root[data-theme="dark"] .university-grid h2,
:root[data-theme="dark"] .modal h2 { color:var(--ink); }
:root[data-theme="dark"] .track,
:root[data-theme="dark"] .career,
:root[data-theme="dark"] .readiness-item,
:root[data-theme="dark"] .resource,
:root[data-theme="dark"] .timeline-card { background:var(--panel); color:var(--ink); }
:root[data-theme="dark"] .program-card p,
:root[data-theme="dark"] .track p,
:root[data-theme="dark"] .career span,
:root[data-theme="dark"] .readiness-item p,
:root[data-theme="dark"] .timeline-card p { color:var(--muted); }
.dashboard h1,.hero h1,.full-section h2,.section-heading h2,.selector h2,.university-grid h2,.program-card h3 { color:var(--ink); }
.university-hero h1 { color:#fff; }
body,button,input,select { transition:background-color .42s ease,color .42s ease,border-color .42s ease,box-shadow .42s ease; }
.auth-rail { animation:auth-panel-in .7s cubic-bezier(.22,1,.36,1) both; }
.auth-form-wrap { animation:auth-form-in .65s .12s cubic-bezier(.22,1,.36,1) both; }
.form > * { animation:field-in .48s both; }
.form > *:nth-child(2) { animation-delay:.05s; } .form > *:nth-child(3) { animation-delay:.1s; } .form > *:nth-child(4) { animation-delay:.15s; } .form > *:nth-child(5) { animation-delay:.2s; }
.topbar { animation:header-in .5s ease-out both; }
.dashboard,.guide-header,.hero,.full-section,.columns,.university-grid { animation:view-in .46s cubic-bezier(.22,1,.36,1) both; }
.program-card { animation:card-in .52s both; }
.program-card:nth-child(2) { animation-delay:.07s; } .program-card:nth-child(3) { animation-delay:.14s; } .program-card:nth-child(4) { animation-delay:.21s; } .program-card:nth-child(5) { animation-delay:.28s; } .program-card:nth-child(6) { animation-delay:.35s; }
.modal-backdrop { animation:modal-backdrop-in .18s ease-out both; }
.modal { animation:modal-in .26s cubic-bezier(.22,1,.36,1) both; }
@keyframes auth-panel-in { from { opacity:0; transform:translateX(-22px); } to { opacity:1; transform:translateX(0); } }
@keyframes auth-form-in { from { opacity:0; transform:translateX(22px); } to { opacity:1; transform:translateX(0); } }
@keyframes field-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes header-in { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
@keyframes view-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes card-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes modal-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes modal-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@property --rgb-angle { syntax:"<angle>"; initial-value:0deg; inherits:false; }
@keyframes rgb-border { to { --rgb-angle:360deg; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:1ms !important; animation-iteration-count:1 !important; transition-duration:1ms !important; } }
