/* Apple-style campus shell. The 3D scene and its event handlers remain unchanged. */
:root{
  color-scheme:light;
  --nav-ink:#1d1d1f;
  --nav-muted:#6e6e73;
  --nav-accent:#0071e3;
  --nav-border:rgba(29,29,31,.08);
  --text:#1d1d1f;
  --muted:#6e6e73;
  --line:rgba(29,29,31,.09);
  --panel:rgba(248,249,251,.9);
  --panel-raised:rgba(255,255,255,.94);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;
}

header{
  top:20px;
  left:24px;
  right:24px;
  height:66px;
  align-items:center;
  gap:24px;
  padding:12px 18px;
  border:1px solid rgba(255,255,255,.74);
  border-radius:22px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 30px rgba(29,41,55,.08),inset 0 1px 0 rgba(255,255,255,.7);
  -webkit-backdrop-filter:blur(24px) saturate(155%);
  backdrop-filter:blur(24px) saturate(155%);
  pointer-events:auto;
}
.brand{font-size:22px;letter-spacing:.08em;color:#1d1d1f}
.brand small{display:none}
.heading{position:static;transform:none;text-align:left;margin-right:auto;white-space:normal}
.heading h1{margin:0;font-size:17px;font-weight:650;letter-spacing:0;text-indent:0;color:#1d1d1f}
.heading p{margin-top:3px;font-size:11px;letter-spacing:.02em;color:#6e6e73}
.header-actions{align-items:center;flex-direction:row;gap:8px}
.header-actions .status{display:none!important}
.group-guide-open{
  display:flex;
  grid-template:none;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:116px;
  min-height:40px;
  padding:9px 17px;
  border:0;
  border-radius:999px;
  background:#0071e3;
  color:#fff;
  box-shadow:0 8px 20px rgba(0,113,227,.18);
  text-align:center;
}
.group-guide-open::after{display:none}
.group-guide-open-title{font-size:13px;font-weight:600;letter-spacing:0}
.group-guide-open-arrow{font-size:18px;font-weight:400;line-height:1}
.group-guide-open:hover{border:0;background:#0077ed;color:#fff;box-shadow:0 10px 24px rgba(0,113,227,.24)}
.header-actions .account-entry{
  min-height:40px!important;
  padding:9px 14px!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(29,29,31,.055)!important;
  color:#1d1d1f!important;
  font-size:12px!important;
}
.header-actions .account-orders-entry{display:none!important}

footer{left:20px;right:20px;bottom:max(24px,env(safe-area-inset-bottom));height:58px}
.toolbar{
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:max-content;
  height:58px;
  padding:6px;
  gap:4px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:22px;
  background:rgba(255,255,255,.82);
  box-shadow:0 10px 36px rgba(29,41,55,.13),inset 0 1px 0 rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(28px) saturate(160%);
  backdrop-filter:blur(28px) saturate(160%);
}
.toolbar>button,.toolbar>.popover>summary{
  min-height:44px;
  padding:10px 22px;
  border:0;
  border-radius:16px;
  background:transparent;
  color:#424245;
  font-size:13px;
}
.toolbar>button:hover,.toolbar>.popover>summary:hover,.toolbar>.popover[open]>summary{background:rgba(29,29,31,.06);color:#1d1d1f}
.toolbar button[aria-pressed=true]{background:rgba(0,113,227,.08);color:#0071e3;box-shadow:none}
.popover summary span{color:#86868b}
.helper{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);padding:6px 13px;border-radius:999px;background:rgba(255,255,255,.7);color:#424245;font-size:11px;white-space:nowrap;opacity:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.footnote{display:none}

.directory{position:absolute;right:0;bottom:0}
.directory>summary{display:none}
.directory-panel{
  position:fixed;
  left:50%;
  right:auto;
  bottom:96px;
  transform:translateX(-50%);
  width:min(700px,calc(100vw - 32px));
  max-height:70svh;
  padding:24px;
  border:1px solid #fff;
  border-radius:24px;
  background:rgba(255,255,255,.94);
  color:#1d1d1f;
  box-shadow:0 20px 70px rgba(29,41,55,.17);
  -webkit-backdrop-filter:blur(24px) saturate(150%);
  backdrop-filter:blur(24px) saturate(150%);
}
.campus-view-actions,.more-actions,.campus-mode-actions{
  position:absolute;
  right:auto;
  bottom:calc(100% + 14px);
  left:50%;
  transform:translateX(-50%);
  width:max-content;
  min-width:185px;
  max-width:calc(100vw - 24px);
  padding:7px;
  border:1px solid #fff;
  border-radius:17px;
  background:rgba(255,255,255,.94);
  color:#1d1d1f;
  box-shadow:0 10px 42px rgba(29,41,55,.16);
  -webkit-backdrop-filter:blur(24px) saturate(155%);
  backdrop-filter:blur(24px) saturate(155%);
}
.more-actions{right:0;left:auto;transform:none}
.campus-view-actions button,.more-actions button,.campus-mode-actions button{
  min-height:42px;
  padding:10px 14px;
  border:0;
  border-radius:10px;
  color:#424245;
  font-size:13px;
}
.mode-switch{display:flex;flex-direction:column;gap:3px;padding:0;background:transparent}
.campus-view-actions button:hover,.more-actions button:hover,.mode-switch button:hover{background:rgba(29,29,31,.05);color:#0071e3}
.more-actions small{color:#86868b}
.directory-search label,.directory-result{color:#6e6e73}
.directory-search input,.directory-search select{border:1px solid rgba(29,29,31,.08);border-radius:11px;background:#f5f5f7;color:#1d1d1f}
.directory-search input::placeholder{color:#86868b}
.spatial-index button,.directory-heading button,.directory-empty,.directory-empty p{color:#424245}
.spatial-index button span{color:#86868b}
.spatial-index button:hover,.spatial-index button.active{border-color:rgba(0,113,227,.16);background:rgba(0,113,227,.05);color:#0071e3}

.group-guide{
  width:min(960px,calc(100vw - 40px));
  max-height:88svh;
  border:1px solid #fff;
  border-radius:28px;
  background:#f5f5f7;
  box-shadow:0 30px 100px rgba(29,41,55,.25);
}
.group-guide::backdrop{background:rgba(29,41,55,.2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.group-guide-header{padding:30px 32px 24px;border-color:rgba(29,29,31,.05);background:rgba(255,255,255,.72)}
.group-guide-header h2{font-size:30px;letter-spacing:-.035em;color:#1d1d1f}
.nav-eyebrow{color:#86868b;letter-spacing:.13em}
.group-guide-subtitle{color:#6e6e73;letter-spacing:0}
.group-guide-close{width:34px;min-width:34px;height:34px;min-height:34px;border:0;border-radius:50%;background:rgba(29,29,31,.06);color:#6e6e73;font-size:24px}
.college-entry{padding:24px 32px 28px;border:0;background:transparent}
.college-entry-heading h3{font-size:17px;letter-spacing:0}
.college-entry-status{color:#6e6e73;font-size:12px}
.college-entry-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.college-entry-card{
  min-height:145px;
  padding:22px;
  border:1px solid rgba(29,29,31,.06);
  border-radius:20px;
  background:#fff;
  box-shadow:0 3px 10px rgba(29,29,31,.02);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.college-entry-card strong{font-size:21px;letter-spacing:-.02em}
.college-entry-card:not(:disabled):hover{transform:translateY(-3px);border-color:rgba(0,113,227,.2);background:#fff;box-shadow:0 9px 24px rgba(29,29,31,.07)}
.college-entry-card[data-college=communications]{border-color:rgba(0,113,227,.14);background:linear-gradient(150deg,#fff,#edf5ff)}
.college-card-status,.college-education-link{color:#0071e3}
.preview-disclosure{margin:0 32px 24px;overflow:hidden;border:1px solid rgba(29,29,31,.06);border-radius:18px;background:#fff}
.model-preview-heading{display:flex;justify-content:space-between;padding:19px 22px;border:0;background:transparent;list-style:none;cursor:pointer}
.model-preview-heading::-webkit-details-marker{display:none}
.model-preview-heading:after{content:'＋';color:#86868b;font-size:22px}
.preview-disclosure[open]>.model-preview-heading:after{content:'−'}
.model-preview-heading h3{font-size:15px;letter-spacing:0}
.model-preview-heading p{margin-left:auto;font-size:11px}
.group-guide-body{grid-template-columns:190px minmax(0,1fr);border-top:1px solid rgba(29,29,31,.06)}
.group-guide-tabs{padding:16px 10px;border-color:rgba(29,29,31,.06);background:#f5f5f7}
.group-guide-tabs button{grid-template-columns:1fr;padding:12px 10px;border-radius:12px}
.group-guide-tabs button[aria-selected=true]{border-color:transparent;background:#fff;box-shadow:0 2px 8px rgba(29,29,31,.05)}
.group-tab-number{display:none}.group-guide-tabs small{grid-column:1}.group-tab-name{font-size:14px}
.group-guide-content{padding:25px}.group-guide-content h3{font-size:28px;letter-spacing:-.03em}
.group-description{font-size:12px}.group-tagline{font-size:15px;color:#424245}
.group-members button{border:0;border-radius:11px;background:#f5f5f7;font-size:12px}
.group-guide-note{padding:14px 32px;border-color:rgba(29,29,31,.04);background:transparent;color:#86868b;font-size:10px}

.college-action{bottom:100px;border:1px solid #fff;border-radius:22px;background:rgba(255,255,255,.92);box-shadow:0 12px 40px rgba(29,41,55,.13)}
.college-action button{min-height:38px;border-radius:999px}
.college-action-enter{border-color:transparent;background:#0071e3;color:#fff!important}
.college-action-enter:hover{background:#0077ed}.college-action-back{border-color:transparent;background:rgba(29,29,31,.05)}

.details{
  top:106px;
  right:24px;
  bottom:108px;
  width:clamp(350px,29vw,490px);
  border:1px solid rgba(255,255,255,.79);
  border-radius:26px;
  background:rgba(251,251,253,.91);
  box-shadow:0 15px 55px rgba(29,41,55,.13);
  -webkit-backdrop-filter:blur(25px) saturate(155%);
  backdrop-filter:blur(25px) saturate(155%);
  color:#1d1d1f;
}
.details-heading{padding:22px 24px 0}.details-scroll{padding-inline:24px}
.details h2{font-size:25px;letter-spacing:-.02em}
.panel-top,.panel-top .return-campus-view,.scenario{color:#6e6e73}
.scenario{font-size:13px;line-height:1.65}
.levels{gap:3px;padding:4px;border:0;border-radius:12px;background:rgba(29,29,31,.05)}
.details .levels button{padding:9px 4px;border:0;border-radius:9px;color:#6e6e73;font-size:12px}
.details .levels button.active{background:#fff;color:#1d1d1f;box-shadow:0 2px 5px rgba(29,29,31,.06)}
.playback-title,.playback-readout,.playback-readout strong,.scrub-label,.condition-label,.model-disclosure summary,#detailContent h3,#detailContent p,.panel-pagination button{color:#424245}
.playback-title{font-size:16px}.playback-title button{border:0;border-radius:999px;background:rgba(0,113,227,.07);color:#0071e3;font-size:12px}
.playback-note,.model-note,.model-disclosure summary small,.playback-readout #modelValueUnit,.playback-access{color:#6e6e73!important}
.condition-label select{border:1px solid rgba(29,29,31,.1);border-radius:9px;background:#fff;color:#1d1d1f}
.scrub-label input{accent-color:#0071e3}.model-disclosure summary:before,.playback-access a{color:#0071e3}
.panel-pagination{padding:10px 24px 14px;border-color:rgba(29,29,31,.05);background:rgba(245,245,247,.5);color:#6e6e73;font-size:12px}
.panel-pagination button{font-size:12px}.formula{border-color:rgba(0,113,227,.25)!important;background:rgba(0,113,227,.035)!important;color:#424245!important}
.directory-empty button{color:#0071e3}
button:focus-visible,summary:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #0071e3;outline-offset:3px}
#toast{border-radius:18px;background:rgba(255,255,255,.94);color:#1d1d1f;box-shadow:0 8px 30px rgba(29,41,55,.1)}
#selectionLabel{border:1px solid #fff;border-radius:12px;background:rgba(255,255,255,.86);box-shadow:0 5px 16px rgba(29,41,55,.08)}
#selectionName{color:#1d1d1f;font-size:13px;letter-spacing:0}

@media(max-width:700px){
  header{top:12px;left:12px;right:12px;height:60px;padding:10px 12px;gap:12px;border-radius:19px}
  .brand{font-size:20px}.heading{top:auto;width:auto}.heading h1{margin:0;font-size:13px}.heading p{margin-top:3px;font-size:9px}
  .header-actions{align-items:center;flex-direction:row;gap:6px}.group-guide-open{min-width:0;min-height:36px;padding:8px 12px}.group-guide-open-title{font-size:12px}.group-guide-open-arrow{display:none}
  .header-actions .account-entry{min-height:36px!important;max-width:80px;padding:8px 10px!important;font-size:10px!important}
  footer{bottom:max(16px,env(safe-area-inset-bottom));height:56px}
  .toolbar{left:50%;width:max-content;height:56px;padding:5px;gap:1px;transform:translateX(-50%)}
  .toolbar>button,.toolbar>.popover>summary{padding:10px 19px;font-size:12px}.helper{display:none}.directory-panel{bottom:86px}
  .group-guide{width:calc(100vw - 24px);max-height:90svh;border-radius:24px}.group-guide-header{padding:24px 22px 20px}.group-guide-header h2{font-size:26px}
  .college-entry{padding:22px}.college-entry-grid{grid-template-columns:1fr;gap:9px}.college-entry-card{display:grid;grid-template-columns:1fr auto;min-height:94px;padding:17px 18px;gap:6px 10px}
  .college-entry-card strong{font-size:19px}.college-card-discipline{grid-column:1;font-size:11px}.college-card-status{grid-column:2;grid-row:1/3;align-self:center;padding:0;font-size:11px}
  .preview-disclosure{margin:0 22px 20px}.model-preview-heading{padding:16px}.model-preview-heading p{display:none}
  .group-guide-body{display:flex}.group-guide-tabs{padding:10px;gap:2px}.group-guide-tabs button{padding:9px 3px}.group-tab-name{font-size:11px}.group-guide-tabs small{font-size:9px}.group-guide-content{padding:20px}.group-guide-note{padding:12px 22px}
  .details{top:auto;right:12px;bottom:86px;left:12px;width:auto;height:55svh;border-radius:23px}.details-heading{padding:18px 20px 0}.details-scroll{padding-inline:20px}.details h2{font-size:22px}.scenario{font-size:12px}
  .college-action{bottom:86px}.college-action-buttons{flex-direction:column}.college-action-copy>p:last-child{font-size:11px}
}
@media(max-width:400px){header{gap:9px}.heading p{display:none}.heading h1{font-size:12px}.group-guide-open{padding-inline:10px}.header-actions .account-entry{max-width:63px;padding-inline:8px!important}.toolbar>button,.toolbar>.popover>summary{padding-inline:17px}}
@media(min-width:2400px){
  header{top:32px;left:40px;right:40px;height:96px;padding:18px 30px;border-radius:28px}.brand{font-size:32px}.heading h1{font-size:26px}.heading p{font-size:16px}
  .group-guide-open{min-height:56px;padding:14px 25px}.group-guide-open-title{font-size:20px}.header-actions .account-entry{min-height:56px!important;font-size:18px!important}
  .toolbar{height:80px;padding:8px;border-radius:28px}.toolbar>button,.toolbar>.popover>summary{min-height:60px;padding:16px 34px;font-size:20px}
  .details{top:154px;right:40px;bottom:150px;width:650px}.details h2{font-size:35px}.scenario{font-size:20px}.details .levels button{font-size:19px}.playback-title{font-size:25px}.details-scroll,.details-heading{padding-inline:32px}
  .helper{bottom:100px;font-size:17px}.group-guide{width:1300px}.college-entry-grid{gap:20px}.college-entry-card{min-height:180px}.college-entry-card strong{font-size:30px}.college-card-discipline,.college-card-status{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.college-entry-card{transition:none}.college-entry-card:hover{transform:none}}
