/* Scoped campus presentation; both shells supply the existing CSE tokens. */
.cuc-dialog { box-sizing: border-box; width: min(88rem, calc(100% - 3rem)); max-width: none; max-height: calc(100dvh - 3rem); padding: 0; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--surface-card); color: var(--ink); font: 400 var(--t-body)/1.5 Inter, sans-serif; box-shadow: 0 1rem 3rem color-mix(in srgb, var(--navy-dark) 24%, transparent); overflow: hidden; }
.cuc-dialog[open] { display: flex; flex-direction: column; }
.cuc-dialog::backdrop { background: color-mix(in srgb, var(--navy-dark) 48%, transparent); }
.cuc-dialog *, .cuc-dialog *::before, .cuc-dialog *::after { box-sizing: border-box; }
.cuc-dialog h2, .cuc-dialog h3, .cuc-dialog p { margin: 0; }
.cuc-dialog button, .cuc-dialog select, .cuc-dialog input { font: inherit; }
.cuc-dialog button { cursor: pointer; }
.cuc-dialog button:disabled { cursor: default; opacity: .6; }
.cuc-dialog :focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.cuc-header { display: flex; justify-content: space-between; align-items: center; gap: var(--s-4); padding: var(--s-4) var(--s-5) var(--s-2); flex: none; }
.cuc-header h2 { font: 600 var(--t-title)/1.2 "Cormorant Garamond", Georgia, serif; color: var(--text-heading); }
.cuc-eyebrow { font-size: var(--t-sub); color: var(--navy); }
.cuc-close { flex: none; display: grid; place-items: center; min-width: var(--control-height-touch); min-height: var(--control-height-touch); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy); font-size: var(--t-title) !important; }
.cuc-nav { display: flex; gap: var(--s-5); padding: 0 var(--s-5); border-bottom: 1px solid var(--line); flex: none; }
.cuc-nav button { min-height: var(--control-height-touch); padding: var(--s-2) 0; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--muted); font-weight: 600; }
.cuc-nav button[aria-pressed="true"] { color: var(--navy-dark); border-bottom-color: var(--gold); }
.cuc-scroll { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: var(--s-4) var(--s-5) var(--s-5); }
.cuc-world { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 20rem); gap: var(--s-5); align-items: start; }
.cuc-art-panel { min-width: 0; border: 1px solid var(--line); border-radius: var(--r-m); overflow: hidden; background: var(--bg); }
.cuc-scene { position: relative; aspect-ratio: 3/2; isolation: isolate; overflow: hidden; }
.cuc-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.cuc-pin { position: absolute; left: var(--cuc-x); top: var(--cuc-y); transform: translate(-50%, -50%); z-index: 4; display: flex; align-items: center; gap: var(--s-2); min-height: var(--control-height-touch); max-width: 48%; padding: var(--s-2) var(--s-3); border: 1px solid var(--navy); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy-dark); font-size: var(--t-sub) !important; font-weight: 600 !important; box-shadow: 0 .25rem .8rem color-mix(in srgb, var(--navy-dark) 12%, transparent); }
.cuc-pin.is-selected { outline: 2px solid var(--navy); outline-offset: 1px; }
.cuc-pin:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.cuc-number { display: none; }
.cuc-avatar { position: absolute; left: var(--cuc-x); top: var(--cuc-y); transform: translate(-50%, -100%); z-index: 3; display: grid; justify-items: center; pointer-events: none; transition: left .32s ease, top .32s ease; }
.cuc-avatar i { display: block; width: 1.2rem; height: 1.5rem; border: 2px solid var(--surface-card); border-radius: var(--r-s); background: var(--navy); position: relative; }
.cuc-avatar i::before { content: ""; position: absolute; width: .7rem; height: .7rem; left: .1rem; top: -.65rem; border: 1px solid var(--surface-card); border-radius: 50%; background: var(--gold-dark); }
.cuc-avatar span { margin-top: var(--s-1); padding: 0 var(--s-1); background: var(--surface-card); border-radius: var(--r-s); color: var(--navy-dark); font-size: var(--t-sub); }
.cuc-travel { padding: var(--s-2) var(--s-3); background: var(--surface-card); border-top: 1px solid var(--line); }
.cuc-travel label { display: flex; align-items: center; gap: var(--s-3); font-size: var(--t-sub); color: var(--navy); }
.cuc-travel select { min-width: 0; flex: 1; min-height: var(--control-height-touch); padding: var(--s-2); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy); }
.cuc-travel p { margin-top: var(--s-1); font-size: var(--t-sub); color: var(--muted); }
.cuc-context { min-width: 0; }
.cuc-context h3 { margin: var(--s-2) 0 var(--s-3); color: var(--text-heading); font-size: var(--t-section); }
.cuc-context > p:not(.cuc-eyebrow) { margin-bottom: var(--s-4); color: var(--muted); }
.cuc-button { display: inline-flex; justify-content: center; align-items: center; min-height: var(--control-height-touch); padding: var(--s-2) var(--s-4); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy); text-align: center; }
.cuc-button:hover { border-color: var(--navy); }
.cuc-primary { border-color: var(--navy); background: var(--navy); color: var(--surface-card); }
.cuc-primary:hover { background: var(--navy-dark); }
.cuc-context > .cuc-button { width: 100%; }
.cuc-stations { padding: 0; margin: var(--s-4) 0; list-style: none; }
.cuc-stations button { display: flex; align-items: center; gap: var(--s-3); width: 100%; min-height: var(--control-height-touch); padding: var(--s-2) 0; border: 0; border-bottom: 1px solid var(--line); background: none; color: var(--navy); text-align: left; }
.cuc-stations button[aria-pressed="true"] { font-weight: 600; }
.cuc-stations span { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; flex: none; border: 1px solid var(--line); border-radius: 50%; font-size: var(--t-sub); }
.cuc-learning { max-width: 62rem; margin: 0 auto; }
.cuc-learning > h3 { color: var(--text-heading); font-size: var(--t-section); margin-bottom: var(--s-2); }
.cuc-muted { color: var(--muted); }
.cuc-courses { list-style: none; padding: 0; margin: var(--s-4) 0; }
.cuc-course { display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); padding: var(--s-4) 0; border-bottom: 1px solid var(--line); }
.cuc-course > div { min-width: 0; }
.cuc-course h3 { font-size: var(--t-body); color: var(--text-heading); overflow-wrap: anywhere; }
.cuc-course p { margin-top: var(--s-1); font-size: var(--t-sub); color: var(--muted); font-variant-numeric: tabular-nums; }
.cuc-course .cuc-button { flex: none; }
.cuc-error, .cuc-notice { padding: var(--s-3) var(--s-4); margin-bottom: var(--s-4) !important; border-left: 3px solid var(--info-fg); background: var(--info-bg); border-radius: var(--r-s); }
.cuc-error { border-color: var(--bad-fg); color: var(--bad-fg); background: var(--bad-bg); }
.cuc-notice { margin-top: var(--s-4) !important; }
.cuc-footer { padding-top: var(--s-4); margin-top: var(--s-5); border-top: 1px solid var(--line); color: var(--muted); font-size: var(--t-sub); }
.cuc-options { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-3) var(--s-5); margin-top: var(--s-2); }
.cuc-options label { display: flex; align-items: center; gap: var(--s-2); min-height: var(--control-height-touch); cursor: pointer; }
.cuc-options input { accent-color: var(--navy); }
.cuc-directions { display: flex; gap: var(--s-1); }
.cuc-directions button { min-width: var(--control-height-touch); min-height: var(--control-height-touch); padding: var(--s-2); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy); }
.cuc-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cuc-reduced .cuc-avatar { transition: none; }
@media (prefers-reduced-motion: reduce) { .cuc-avatar { transition: none; } }
@media (max-width: 1050px) {
  .cuc-world { grid-template-columns: minmax(0, 1fr) 15rem; gap: var(--s-4); }
  .cuc-pin-label { display: none; }
  .cuc-number { display: block; }
  .cuc-pin { width: var(--control-height-touch); padding: 0; justify-content: center; border-radius: 50%; }
}
@media (max-width: 700px) {
  .cuc-dialog { width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  .cuc-header { padding: var(--s-3) var(--s-4) var(--s-2); }
  .cuc-nav { padding: 0 var(--s-4); }
  .cuc-scroll { padding: var(--s-3) var(--s-4) var(--s-4); }
  .cuc-world { grid-template-columns: minmax(0, 1fr); }
  .cuc-context h3 { margin-top: var(--s-1); }
  .cuc-context > p:not(.cuc-eyebrow) { margin-bottom: var(--s-3); }
  .cuc-travel label { display: block; }
  .cuc-travel select { display: block; width: 100%; margin-top: var(--s-1); }
  .cuc-course { align-items: start; gap: var(--s-3); }
  .cuc-course .cuc-button { padding-inline: var(--s-3); }
  .cuc-footer { margin-top: var(--s-4); }
}


/* The shared entrances stay touch-sized in both host shells. */
#uniCampusLaunch, #saCampusLaunch { min-height: var(--control-height-touch); min-width: var(--control-height-touch); }
[data-unicampus], .wiki-art[role="button"], .wiki-hit[role="button"] { min-height: var(--control-height-touch); }
.wiki-card[role="button"]:focus-visible, .wiki-art[role="button"]:focus-visible, .wiki-hit[role="button"]:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }

@media (max-width: 700px) { .cuc-dialog select { font-size: max(1rem, var(--t-body)); } }

/* Optional local draft activity; production host adapters do not enable it. */
.cuc-draft { max-width: 48rem; overflow-wrap: anywhere; }
.cuc-draft > h3 { margin: var(--s-1) 0 var(--s-3); }
.cuc-draft h4 { margin: var(--s-3) 0 var(--s-2); font-size: var(--t-body); }
.cuc-draft p + p { margin-top: var(--s-2); }
.cuc-draft-refs { margin-block: var(--s-3); border-block: 1px solid var(--line); }
.cuc-draft-refs summary { display: list-item; min-height: var(--control-height-touch); padding: var(--s-2); cursor: pointer; color: var(--navy); }
.cuc-draft-refs details + details { border-top: 1px solid var(--line); }
.cuc-draft-refs p { padding: var(--s-2); white-space: pre-wrap; }
.cuc-draft-choices { padding: 0; margin: var(--s-3) 0; min-width: 0; border: 0; }
.cuc-draft-choices legend { padding: 0; margin-bottom: var(--s-2); font-weight: 600; }
.cuc-draft-choices label { display: flex; gap: var(--s-3); align-items: start; min-height: var(--control-height-touch); padding: var(--s-3) 0; cursor: pointer; }
.cuc-draft-choices input { flex: none; margin-top: var(--s-1); accent-color: var(--navy); }
.cuc-draft-actions { display: flex; gap: var(--s-3); flex-wrap: wrap; margin-top: var(--s-3); }
.cuc-draft-back { margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid var(--line); }
.cuc-draft-message { margin-top: var(--s-2) !important; color: var(--muted); }
.cuc-draft-message[role="alert"] { color: var(--bad-fg); }
.cuc-learning > [data-cuc-action="draft"] { display: flex; margin-top: var(--s-3); }

/* Room designs keep one scene and one scroll region; the reference door remains distinct. */
.cuc-room-note { margin-top: var(--s-4) !important; font-size: var(--t-sub); }
.cuc-context > .cuc-button + .cuc-button { margin-top: var(--s-2); }
.cuc-library-reader p { margin-bottom: var(--s-4); color: var(--muted); }
.cuc-library-reader .cuc-button { width: 100%; }

/* Optional 3D foundation: illustrated routes stay available without a renderer. */
.cuc-scene-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--s-2) var(--s-3); padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--line); background: var(--surface-card); }
.cuc-scene-tools label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--s-2); min-width: 0; color: var(--navy); font-size: var(--t-sub); }
.cuc-scene-tools select { min-width: 0; width: 100%; min-height: var(--control-height-touch); padding: var(--s-2); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy); }
.cuc-scene-note { padding: var(--s-3); border-bottom: 1px solid var(--line); color: var(--muted); background: var(--surface-card); font-size: var(--t-sub); }
.cuc-scene-note .cuc-button { margin-top: var(--s-2); }
.cuc-world-slot { position: absolute; inset: 0; }
.cuc-world-slot canvas { display: block; width: 100%; height: 100%; touch-action: pan-y; }
.cuc-world-door { position: absolute; transform: translate(-50%, -50%); z-index: 2; min-height: var(--control-height-touch); min-width: var(--control-height-touch); max-width: calc(100% - var(--s-4)); padding: var(--s-2) var(--s-3); border: 1px solid var(--navy); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy-dark); font-size: var(--t-sub) !important; font-weight: 600 !important; }
.cuc-world-you { position: absolute; transform: translate(-50%, -100%); padding: var(--s-1) var(--s-2); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy-dark); font-size: var(--t-sub); pointer-events: none; }
.cuc-world-loading { position: absolute; inset: auto var(--s-3) var(--s-3); padding: var(--s-2) var(--s-3); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy); pointer-events: none; }
.cuc-world-loading[hidden] { display: none; }
@media (max-width: 700px) {
  .cuc-scene-3d { aspect-ratio: 1; }
  .cuc-scene-tools { grid-template-columns: minmax(0, 1fr); }
}

/* fetch-1372: edge-to-edge page scene; selectors apply only while this landing is rendered. */
body.has-rail:has(.wiki-campus-page) { padding-bottom: 0; }
body:has(.wiki-campus-page) .crystal-page-guide { display: none; }
.wrap:has(.wiki-campus-page) { width: 100%; max-width: none; padding: 0; }
.headwrap:has(.wiki-campus-page) { padding: 0; }
.wrap:has(.wiki-campus-page) .brandbar { margin-inline: 0; }
#app:has(.wiki-campus-page) > .toolbar, .wrap:has(.wiki-campus-page) > .footer { display: none; }
.wiki-campus-page { --campus-height: calc(100dvh - var(--desktop-nav-height, var(--phone-nav-height, 55px))); position: relative; width: 100%; height: var(--campus-height); min-width: 0; }
.wiki-campus-viewport { width: 100%; height: 100%; overflow: auto; overscroll-behavior: contain; scrollbar-width: none; }
.wiki-campus-viewport::-webkit-scrollbar { display: none; }
.wiki-campus-scene { position: relative; width: 100%; height: 100%; }
.wiki-campus-art { display: block; width: 100%; max-width: none; height: 100%; }
.wiki-campus-glint { position: absolute; left: 51.7%; top: 37%; z-index: 1; width: 4.6%; aspect-ratio: 1; border-radius: 50%; pointer-events: none; opacity: 0; transform: translate(-50%, -50%) scale(.4); background: radial-gradient(circle, var(--surface-card) 0%, color-mix(in srgb, var(--brand-gold-light) 85%, transparent) 20%, transparent 68%); filter: drop-shadow(0 0 .25rem var(--gold-dark)) drop-shadow(0 0 .7rem var(--brand-gold-light)); animation: wiki-campus-glint 7s ease-in-out infinite; }
.wiki-campus-glint::before, .wiki-campus-glint::after { content: ''; position: absolute; left: 50%; top: 50%; border-radius: 50%; background: linear-gradient(90deg, transparent, var(--surface-card) 50%, transparent); }
.wiki-campus-glint::before { width: 100%; height: 9%; transform: translate(-50%, -50%); }
.wiki-campus-glint::after { width: 9%; height: 100%; transform: translate(-50%, -50%); background: linear-gradient(180deg, transparent, var(--surface-card) 50%, transparent); }
@keyframes wiki-campus-glint {
  0%, 100% { opacity: 0; transform: translate(-50%, -50%) scale(.4) rotate(-10deg); }
  8%, 16% { opacity: .9; transform: translate(-50%, -50%) scale(1) rotate(12deg); }
  26% { opacity: 0; transform: translate(-50%, -50%) scale(1.25) rotate(20deg); }
}
.wiki-campus-controls { position: absolute; top: var(--s-4); left: var(--s-4); right: var(--s-4); z-index: 2; display: flex; justify-content: space-between; gap: var(--s-3); pointer-events: none; }
.wiki-campus-controls > button { min-height: var(--control-height-touch); pointer-events: auto; }
.wiki-campus-building { position: absolute; min-width: var(--control-height-touch); min-height: var(--control-height-touch); padding: 0; border: 3px solid transparent; border-radius: var(--r-l); background: transparent; cursor: pointer; }
.wiki-campus-building::after { content: ''; position: absolute; left: 5%; right: 5%; bottom: -5%; height: 55%; border-radius: 50%; background: radial-gradient(ellipse at center, color-mix(in srgb, var(--brand-gold-light) 75%, transparent), color-mix(in srgb, var(--brand-gold-light) 26%, transparent) 45%, transparent 75%); opacity: 0; transform: scale(.7); transition: opacity .22s ease, transform .22s ease; pointer-events: none; }
.wiki-campus-building:hover, .wiki-campus-building:focus-visible, .wiki-campus-building:active, .wiki-campus-building[aria-pressed="true"] { border-color: var(--gold-dark); background: color-mix(in srgb, var(--brand-gold-light) 14%, transparent); }
.wiki-campus-building:is(:hover, :focus-visible, :active)::after { opacity: 1; transform: scale(1); }
.wiki-campus-building:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.wiki-campus-building--sales { left: 2%; top: 45%; width: 21%; height: 30%; }
.wiki-campus-building--operations { left: 3%; top: 15%; width: 23%; height: 28%; }
.wiki-campus-building--hr { left: 28%; top: 12%; width: 13%; height: 20%; }
.wiki-campus-building--culinary { left: 71%; top: 11%; width: 27%; height: 27%; }
.wiki-campus-building--leadership { left: 76%; top: 40%; width: 24%; height: 33%; }
.wiki-campus-building--hall { left: 38%; top: 22%; width: 28%; height: 38%; }
.wiki-campus-hint { display: none; }
@media (prefers-reduced-motion: reduce) {
 .wiki-campus-glint { animation: none; opacity: .55; transform: translate(-50%, -50%) scale(.55); }
 .wiki-campus-building::after { transition: none; }
}
@media (max-width: 900px) {
 .wiki-campus-page { --campus-height: calc(100dvh - var(--phone-nav-height, 55px) - var(--control-height-touch) - var(--s-3) - 1px - env(safe-area-inset-bottom, 0px)); }
 .wiki-campus-scene { width: max(100%, calc(var(--campus-height) * 1672 / 941)); }
 .wiki-campus-controls { top: var(--s-3); left: var(--s-3); right: var(--s-3); }
 .wiki-campus-hint { display: block; position: absolute; bottom: var(--s-3); left: 50%; transform: translateX(-50%); margin: 0; padding: var(--s-2) var(--s-3); border-radius: var(--r-s); background: var(--surface-card); color: var(--navy-dark); font-size: var(--t-sub); white-space: nowrap; pointer-events: none; }
}
/* fetch-1376: isolated executive workbench; curriculum loads only after an authorized RPC. */
.wiki-campus-controls { flex-wrap: wrap; }
.wiki-campus-controls > .btn { max-width: 100%; }
.uni-service-dialog { width: min(96vw, 1200px); max-width: 96vw; height: 94vh; padding: var(--s-3); border: 1px solid var(--line); border-radius: var(--r-m); background: var(--surface-card); color: var(--ink); }
.uni-service-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); }
.uni-service-status { margin: var(--s-2) 0; font-size: var(--t-sub); }
.uni-service-frame { display: block; width: 100%; height: calc(100% - 90px); border: 0; background: var(--wash); }
/* Executive work stays in the existing Operations stations. */
.uni-ops-dialog { width: min(96vw, 90rem); max-width: 96vw; height: 94dvh; max-height: 94dvh; margin: auto; padding: var(--s-4); color: var(--ink); background: var(--surface-card); border: 1px solid var(--line); border-radius: var(--r-m); overflow: auto; font-family: Inter, sans-serif; }
.uni-ops-dialog::backdrop { background: var(--navy-dark); opacity: .55; }
.uo-header { display: flex; align-items: start; justify-content: space-between; gap: var(--s-3); }
.uo-header h2 { margin: 0; font-size: var(--t-title); }
.uo-header p { margin: var(--s-1) 0; }
.uo-actions, .uo-tabs { display: flex; flex-wrap: wrap; gap: var(--s-2); align-items: center; }
.uo-tabs { margin-bottom: var(--s-3); }
.uo-view { display: none; }
.uo-compose { margin-block: var(--s-3); }
.uo-compose summary { min-height: var(--control-height-touch); cursor: pointer; }
.uo-tabs [aria-pressed=true] { border-bottom: 2px solid var(--gold); }
.uo-body { margin: 0; padding: 0; border: 0; min-width: 0; }
.uo-body > .field { margin-bottom: var(--s-3); }
.uo-body input, .uo-body select, .uo-body textarea { max-width: 100%; box-sizing: border-box; font: inherit; }
.uo-body .field > input, .uo-body .field > select, .uo-body .field > textarea { width: 100%; }
.uo-item { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--s-3); padding: var(--s-3) 0; margin: var(--s-3) 0; border: 0; border-top: 1px solid var(--line); min-width: 0; }
.uo-item legend { font-weight: 600; max-width: 100%; overflow-wrap: anywhere; }
.uo-item > p { grid-column: 1/-1; }
.uo-item input[type=checkbox] { width: var(--s-4); height: var(--s-4); }
.uo-reference article, .uo-teaching article { padding-block: var(--s-3); border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.uo-teaching { max-width: 70rem; }
.uo-teaching p { line-height: 1.6; }
.uo-teaching .field { display: block; margin-bottom: var(--s-3); }
.uo-context { font-size: var(--t-sub); color: var(--muted); }
.uni-ops-dialog button, .uni-ops-dialog input, .uni-ops-dialog select { min-height: var(--control-height-touch); }
.uni-ops-dialog .tlw-notebook { max-width: 100%; padding: var(--s-3); }
.uni-ops-dialog [data-uo-status] { overflow-wrap: anywhere; }
.uni-room-place { position: absolute; left: var(--uni-x); top: var(--uni-y); transform: translate(-50%,-50%); width: 15%; height: 15%; min-width: var(--control-height-touch); min-height: var(--control-height-touch); padding: 0; border: 3px solid transparent; border-radius: var(--r-l); background: transparent; cursor: pointer; }
.uni-room-place:hover { border-color: var(--gold-dark); background: color-mix(in srgb, var(--brand-gold-light) 14%, transparent); }
.uni-room-place:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.uni-station-page { display: flex; flex-direction: column; background: var(--surface-card); }
.uni-page-header { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2); padding: var(--s-3); border-bottom: 1px solid var(--line); }
.uni-page-header h1 { font-size: var(--t-title); margin: 0; }
.uni-page-content { flex: 1; min-height: 0; overflow: auto; padding: var(--s-3); }
.uni-page-choices { display: flex; flex-wrap: wrap; gap: var(--s-3); }
.uni-page-choices .btn { min-height: var(--control-height-touch); }
.uni-ops-dialog.uni-workspace, .uni-service-dialog.uni-workspace { box-sizing: border-box; width: 100%; max-width: none; height: var(--campus-height); max-height: none; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.uni-service-dialog.uni-workspace { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.uni-workspace .uni-service-toolbar { padding: var(--s-2) var(--s-3); flex: none; }
.uni-workspace .uni-service-status { padding-inline: var(--s-3); flex: none; }
.uni-workspace .uni-service-frame { flex: 1; height: 0; min-height: 0; }
.uni-workspace .uo-header { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; }
.uni-workspace .uo-header > .btn { flex: none; }
.uni-workspace .uo-header > div:first-of-type { flex: 1; }
.uni-workspace .uo-header .muted { display: none; }
.uni-workspace [data-uo-status] { font-size: var(--t-sub); margin: var(--s-2) 0; }
.uni-workspace .esp-heading > h2 { display: none; }
.uni-workspace .tlw-notebook { margin: 0; padding: var(--s-2) 0; }
@media(max-width:640px) {
 .uni-workspace .uo-header { grid-template-columns: auto minmax(0,1fr); }
 .uni-workspace .uo-header .uo-actions { grid-column: 1/-1; margin: 0; }
 .uni-workspace .uo-header h2 { font-size: var(--t-section); }
 .uni-workspace .uo-view { display: flex; align-items: center; gap: var(--s-2); }
 .uni-workspace .uo-view select { flex: 1; min-width: 0; }
 .uni-ops-dialog { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; padding: var(--s-3); border-radius: 0; }
 .uo-header { display: block; }
 .uo-header .uo-actions { margin-block: var(--s-2); }
 .uo-item { grid-template-columns: minmax(0,1fr); }
 .uo-tabs { display: none; }
 .uo-view { display: block; }
 .uo-timeline .tlw-editrow { display: flex; flex-wrap: wrap; }
 .uo-timeline .tlw-editrow input[data-opstl-field=task] { flex-basis: 100%; min-width: 0; }
}

/* fetch-1396: University review workspace A. */
/* Approved workspace A: one item at a time, reference beside the work. */
.uo-practice-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(16rem,22%); gap: var(--s-4); align-items: start; }
.uo-practice-main, .uo-side-reference { min-width: 0; }
.uo-side-reference { padding-left: var(--s-4); border-left: 1px solid var(--line); font-size: var(--t-sub); }
.uo-reference h3 { font-size: var(--t-body); margin: 0 0 var(--s-2); }
.uo-reference > .field { display: block; margin-block: var(--s-3); }
.uo-reference article p { margin-bottom: 0; white-space: pre-wrap; }
.uo-reference article { padding-block: var(--s-2); }
.uo-next svg { transform: rotate(180deg); }
.uo-item-picker { display: flex; flex-wrap: wrap; align-items: end; gap: var(--s-2); margin-block: var(--s-3); }
.uo-item-picker > .field { flex: 1; min-width: 10rem; }
.uo-item-nav { display: flex; align-items: center; gap: var(--s-2); font-variant-numeric: tabular-nums; }
.uo-item-nav span { font-size: var(--t-sub); white-space: nowrap; }
.uo-item-included { display: flex; align-items: center; gap: var(--s-2); min-height: var(--control-height-touch); grid-column: 1/-1; }
.uo-item .field > span { display: block; margin-bottom: var(--s-1); }
.uni-learning-sections { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,20rem),1fr)); gap: var(--s-4); margin-bottom: var(--s-4); }
.uni-learning-section { padding: var(--s-4); border: 1px solid var(--line); border-radius: var(--r-m); }
.uni-learning-section h2 { margin: 0; font-size: var(--t-section); }
.uni-learning-section p { color: var(--muted); margin-block: var(--s-3); }
@media (max-width: 1050px) {
 .uo-practice-layout { grid-template-columns: minmax(0,1fr); }
 .uo-side-reference { display: none; }
}
@media (max-width: 640px) {
 .uo-item-picker { display: block; }
 .uo-item-picker .uo-item-nav { justify-content: space-between; margin-top: var(--s-2); }
 .uni-workspace .uo-item { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .uni-workspace .uo-item .field:has([data-part=supply]), .uni-workspace .uo-item .field:has([data-part=reason]), .uni-workspace .uo-item .field:has([data-part=alternatives]), .uni-workspace .uo-item .field:has(select) { grid-column: 1/-1; }
 .uni-workspace .uo-item legend { font-size: var(--t-body); }
}

/* fetch-1396: reuse Crystal's timeline stationery inside the University page. */
.uon-workspace { min-width: 0; width: 100%; }
.uni-workspace .uon-book.tlw-notebook { padding: 0 0 var(--s-2); margin: 0; }
.uon-book .tlw-bookhead { padding: var(--s-2) var(--s-3) 0 var(--s-4); }
.uon-book .tlw-stationery { margin-bottom: 0; padding-bottom: var(--s-1); gap: var(--s-1); }
.uon-book .tlw-brandgroup { gap: var(--s-2); }
.uon-book .tlw-brand { width: 7rem; height: 2.5rem; }
.uon-book .tlw-booktitle { font-size: var(--t-title); }
.uon-book .tlw-bookmodes { margin: 0; }
.uon-book .tlw-bookmodes button { padding-block: 0; }
.uon-book .uon-navigation { flex-wrap: nowrap; gap: var(--s-2); align-items: center; margin: var(--s-1) 0; }
.uon-picker { flex: 1; min-width: 0; margin: 0; }
.uon-picker .sel { min-width: 0; width: 100%; min-height: var(--control-height-touch); background: var(--tlw-paper); }
.uon-book .tlw-header-pager { flex: none; margin: 0; }
.uon-book .tlw-header-pager .tnum { min-width: 3rem; text-align: center; font-size: var(--t-sub); white-space: nowrap; }
.uon-book .tlw-editor, .uon-book .tlw-reference { min-height: 0; margin-inline: var(--s-4) var(--s-3); }
.uon-book .tlw-editor-head { min-height: var(--control-height-touch); margin: 0; }
.uon-step-pager { display: flex; gap: var(--s-1); margin-left: auto; }
.uon-next svg { transform: rotate(180deg); }
.uon-compose [data-uo-compose] { display: block; width: 100%; height: 15rem; min-height: 8rem; padding: .375rem var(--s-3) .375rem var(--s-4); border: 0; border-radius: 0; background-color: transparent; background-image: linear-gradient(to right, transparent .75rem, var(--tlw-margin) .75rem, var(--tlw-margin) calc(.75rem + 1px), transparent calc(.75rem + 1px)), repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--tlw-rule-height) - 1px), var(--tlw-rule) calc(var(--tlw-rule-height) - 1px), var(--tlw-rule) var(--tlw-rule-height)); background-attachment: local; color: var(--navy-dark); caret-color: var(--navy); font: 400 var(--t-body)/var(--tlw-rule-height) Inter, Arial, sans-serif; font-variant-numeric: tabular-nums; resize: vertical; box-shadow: none; }
.uon-compose [data-uo-compose]:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -2px; }
.uon-book .tlw-compose-actions { margin: var(--s-2) var(--s-3) var(--s-2) var(--s-4); }
.uon-book .tlw-compose-actions .tlw-hint { flex: 1 1 10rem; font-size: var(--t-sub); }
.uon-book .uo-timeline .tlw-editrow { display: grid; grid-template-columns: 8rem minmax(0,1fr) var(--control-height-touch); }
.uon-book .tlw-step { padding-block: var(--s-1); }
.uon-book .tlw-detail-preview { overflow-wrap: anywhere; font-size: var(--t-sub); }
.uon-notes { margin: var(--s-2) var(--s-3) 0 var(--s-4); border-top: 1px solid var(--line); }
.uon-notes > .btn { padding-inline: 0; background: transparent; border-color: transparent; text-align: left; white-space: normal; }
.uon-source-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-2); }
.uon-source-actions .tlw-hint { margin: 0; }
.uon-parsed h3 { margin-block: var(--s-2); font-size: var(--t-body); }
@media (max-width: 640px) {
 .uon-book .tlw-brandgroup { display: flex; flex-wrap: wrap; flex: 1; width: auto; gap: var(--s-1) var(--s-2); }
 .uon-book .tlw-brandgroup .tlw-bookmodes { flex-basis: 100%; width: fit-content; max-width: fit-content; margin: 0; }
 .uon-book .tlw-bookmodes button { flex-direction: row; padding-inline: var(--s-2); }
 .uon-book .tlw-bookactions { align-self: start; margin-left: auto; }
 .uon-book .tlw-stationery { align-items: start; }
 .uon-book .tlw-bookhead { padding-inline: var(--s-3) var(--s-2); }
 .uon-book .tlw-editor, .uon-book .tlw-reference, .uon-notes { margin-inline: var(--s-3) var(--s-2); }
 .uon-book .tlw-header-pager { gap: 0; }
 .uon-book .tlw-header-pager .tnum { min-width: 2.5rem; }
 .uon-book .tlw-compose-actions { margin-inline: var(--s-3) var(--s-2); }
 .uon-compose [data-uo-compose] { height: 12rem; font-size: max(1rem,var(--t-body)); }
 .uon-book .uo-timeline .tlw-editrow { grid-template-columns: minmax(0,1fr) var(--control-height-touch); }
 .uon-book .uo-timeline .tlw-editrow input[data-opstl-field="task"] { grid-row: 2; grid-column: 1/-1; }
 .uon-book .uo-timeline .tlw-editrow .tlw-more { grid-row: 1; grid-column: 2; }
}

/* fetch-1396: full-page learning with one unit in view and references beside it. */
.ul-shell { min-width: 0; font-size: var(--t-body); }
.ul-shell :is(h3,h4,p) { margin: 0; }
.ul-shell h3 { color: var(--navy-dark); font-size: var(--t-section); line-height: 1.4; }
.ul-shell h4 { color: var(--navy-dark); font-size: var(--t-body); }
.ul-shell :is(button,input,select) { min-height: var(--control-height-touch); }
.ul-shell :is(input,select,textarea) { font: inherit; border: 1px solid var(--line); border-radius: var(--r-s); background: var(--paper); color: var(--ink); padding: var(--s-2); }
.ul-shell :is(select,input,textarea) { width: 100%; min-width: 0; }
.ul-shell textarea { resize: vertical; }
.ul-shell .field { display: grid; gap: var(--s-1); min-width: 0; margin: 0; }
.ul-shell .field > span { color: var(--muted); font-size: var(--t-sub); }
.ul-controls { display: grid; grid-template-columns: minmax(12rem,1fr) minmax(10rem,15rem) auto; gap: var(--s-3); align-items: end; padding-block: var(--s-2) var(--s-3); border-bottom: 1px solid var(--line); }
.ul-author-actions { display: flex; gap: var(--s-1); align-items: center; }
.ul-meta { color: var(--muted); font-size: var(--t-sub); line-height: 1.5; }
.ul-prose { font-size: var(--t-body); line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.ul-landing { display: grid; grid-template-columns: minmax(0,1fr) minmax(16rem,22rem); gap: var(--s-6); padding-block: var(--s-4); }
.ul-landing > section { display: grid; align-content: start; gap: var(--s-3); }
.ul-landing > section > .btn { justify-self: start; }
.ul-course-parts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--s-3); }
.ul-course-parts > button { display: grid; gap: var(--s-2); padding: var(--s-4); border: 1px solid var(--line); border-radius: var(--r-s); background: var(--paper); text-align: left; color: var(--navy-dark); font: inherit; cursor: pointer; }
.ul-course-parts > button > strong { color: var(--muted); font-size: var(--t-sub); font-weight: 400; }
.ul-workspace { display: grid; grid-template-columns: 13rem minmax(0,1fr) minmax(13rem,19rem); gap: var(--s-5); padding-block: var(--s-4); }
.ul-outline { border-right: 1px solid var(--line); padding-right: var(--s-3); }
.ul-outline > p { font-weight: 600; font-size: var(--t-sub); margin-bottom: var(--s-2); }
.ul-outline > button { display: grid; grid-template-columns: 1.4rem minmax(0,1fr); gap: var(--s-2); width: 100%; text-align: left; padding: var(--s-2); border: 0; border-left: 3px solid transparent; background: transparent; color: var(--navy-dark); font: inherit; cursor: pointer; }
.ul-outline > button[aria-current] { border-left-color: var(--gold-dark); background: var(--wash); font-weight: 600; }
.ul-outline small { display: block; font-size: var(--t-sub); color: var(--muted); margin-top: var(--s-1); font-weight: 400; }
.ul-number { color: var(--muted); font-variant-numeric: tabular-nums; }
.ul-main { min-width: 0; }
.ul-unit-head { display: flex; justify-content: space-between; gap: var(--s-3); align-items: start; margin-bottom: var(--s-4); }
.ul-unit-head .ul-meta { margin-bottom: var(--s-1); }
.ul-learning-content { display: grid; gap: var(--s-3); }
.ul-learning-content > .btn { justify-self: start; }
.ul-reference { display: grid; align-content: start; gap: var(--s-3); padding: var(--s-4); background: var(--wash); border: 1px solid var(--line); border-radius: var(--r-s); overflow-wrap: anywhere; }
.ul-reference .ul-prose { font-size: var(--t-sub); }
.ul-reference dl { margin: 0; }
.ul-reference dt { color: var(--muted); font-size: var(--t-sub); margin-block: var(--s-2) var(--s-1); }
.ul-reference dd { margin: 0; }
.ul-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--s-2); margin-top: var(--s-4); padding-block: var(--s-3); border-top: 1px solid var(--line); }
.ul-footer > .ul-meta { flex: 1; }
.ul-mobile-nav,.ul-mobile-reference { display: none; }
.ul-editor,.ul-new,.ul-review { display: grid; gap: var(--s-3); padding-block: var(--s-4); max-width: 72rem; }
.ul-edit-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--s-3); }
.ul-new { max-width: 40rem; }
.ul-options { display: grid; gap: var(--s-2); margin: 0; padding: 0; border: 0; min-width: 0; }
.ul-options legend { padding: 0; margin-bottom: var(--s-2); font-size: var(--t-sub); color: var(--muted); }
.ul-options label { display: flex; align-items: center; gap: var(--s-3); border: 1px solid var(--line); border-radius: var(--r-s); padding: var(--s-3); min-height: var(--control-height-touch); cursor: pointer; }
.ul-options label:has(input:checked) { background: var(--wash); border-color: var(--navy); }
.ul-options input { width: 1.1rem; height: 1.1rem; min-height: 0; margin: 0; flex: none; accent-color: var(--navy); }
.ul-feedback { display: grid; gap: var(--s-2); border-left: 3px solid var(--gold); background: var(--wash); padding: var(--s-3); }
.ul-notice { margin-block: var(--s-2) !important; padding: var(--s-2) var(--s-3); border-left: 3px solid var(--warn-fg); background: var(--wash); font-size: var(--t-sub); line-height: 1.5; }
.ul-review-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--s-3); text-align: left; border: 0; border-bottom: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit; padding: var(--s-3); cursor: pointer; }
.ul-review-row strong { font-weight: 500; }
@media (max-width:1100px) {
 .ul-workspace { grid-template-columns: 11rem minmax(0,1fr); gap: var(--s-4); }
 .ul-desktop-reference { display: none; }
 .ul-mobile-nav { display: flex; align-items: end; gap: var(--s-2); margin-bottom: var(--s-3); }
 .ul-mobile-nav .field { display: none; }
 .ul-mobile-reference { display: block; }
}
@media (max-width:700px) {
 .ul-controls { grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; gap: var(--s-2); }
 .ul-controls :is(input,select) { font-size: 1rem; }
 .ul-author-actions { flex-direction: column; }
 .ul-workspace { display: block; padding-block: var(--s-3); }
 .ul-outline { display: none; }
 .ul-mobile-nav .field { display: grid; flex: 1; }
 .ul-unit-head { margin-bottom: var(--s-2); }
 .ul-landing { grid-template-columns: minmax(0,1fr); gap: var(--s-3); }
 .ul-landing > .ul-reference { background: transparent; border: 0; padding: 0; }
 .ul-landing > .ul-reference :is(h3,dl) { display: none; }
 .ul-course-parts { gap: var(--s-2); }
 .ul-course-parts > button { padding: var(--s-3); }
 .ul-edit-grid { grid-template-columns: minmax(0,1fr); }
 .ul-shell textarea { font-size: 1rem; }
 .ul-review-row { grid-template-columns: minmax(0,1fr); gap: var(--s-1); }
 .ul-footer { margin-top: var(--s-3); }
}

/* fetch-1401: approved room artwork continues behind the course entrance. */
.uni-station-page { isolation: isolate; box-sizing: border-box; display: flex; flex-direction: row; align-items: center; justify-content: flex-end; height: auto; min-height: var(--campus-height); padding: var(--s-6); background: var(--bg); }
.uni-station-art { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 36% 58%; }
.uni-station-page[data-uni-station="floor"] .uni-station-art { object-position: 61% 53%; }
.uni-station-page::after { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent 45%, color-mix(in srgb, var(--navy-dark) 12%, transparent)); }
.uni-station-panel { box-sizing: border-box; width: min(100%, 28rem); min-width: 0; padding: var(--s-6); color: var(--navy-dark); background: color-mix(in srgb, var(--wash) 97%, transparent); border: 1px solid var(--line); border-radius: var(--r-l); box-shadow: 0 1rem 4rem color-mix(in srgb, var(--navy-dark) 18%, transparent); }
.uni-station-panel .uni-page-header { display: grid; grid-template-columns: var(--control-height-touch) minmax(0, 1fr); align-items: start; gap: var(--s-3); padding: 0 0 var(--s-4); }
.uni-station-panel .uni-page-header .icon-btn { min-width: var(--control-height-touch); min-height: var(--control-height-touch); }
.uni-station-panel .uni-page-header h1 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: var(--t-display); font-weight: 600; line-height: 1.15; }
.uni-station-location { margin: 0 0 var(--s-1); color: var(--navy); font-size: var(--t-sub); }
.uni-station-panel .uni-page-content { padding: 0; overflow: visible; }
.uni-station-panel .uo-context { margin: var(--s-3) 0 0; font-size: var(--t-sub); line-height: 1.5; }
.uni-station-panel .uni-learning-sections { display: block; margin: 0; }
.uni-station-panel .uni-learning-section { padding: var(--s-4) 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.uni-station-panel .uni-learning-section:last-child { padding-bottom: 0; border-bottom: 0; }
.uni-station-panel .uni-learning-section p { margin: var(--s-1) 0 var(--s-3); font-size: var(--t-sub); line-height: 1.5; }
.uni-station-panel .uni-page-choices { gap: var(--s-2); }
.uni-station-panel .uni-page-choices .btn { max-width: 100%; font-size: var(--t-sub); white-space: normal; }
.uni-station-page[data-uni-station="floor"] [data-uni-learning] { width: 100%; background: var(--navy-dark); border-color: var(--navy-dark); color: var(--surface-card); }
.uni-station-page[data-uni-station="floor"] [data-uni-learning]:hover { background: var(--navy); border-color: var(--navy); }
@media(max-width:740px) {
 .uni-station-page { display: block; padding: 12.5rem var(--s-3) var(--s-4); }
 .uni-station-art { height: 27rem; object-position: 22% 59%; }
 .uni-station-page[data-uni-station="floor"] .uni-station-art { object-position: 56% 53%; }
 .uni-station-page::after { height: 28rem; background: linear-gradient(0deg, var(--bg), transparent 34%); }
 .uni-station-panel { width: 100%; padding: var(--s-4); background: var(--wash); box-shadow: 0 .5rem 2rem color-mix(in srgb, var(--navy-dark) 12%, transparent); }
 .uni-station-panel .uni-page-header { padding-bottom: var(--s-3); }
 .uni-station-panel .uni-learning-section { padding-block: var(--s-3); }
 .uni-station-panel .uni-learning-section p { margin-bottom: var(--s-2); }
}
@media(max-width:350px) {
 .uni-station-page { padding-top: 10rem; }
 .uni-station-panel { padding: var(--s-3); }
 .uni-station-panel .uni-page-header { gap: var(--s-2); }
}

@media(max-width:900px) {
 .uni-station-page { padding-bottom: calc(var(--s-4) + var(--control-height-touch) + var(--s-3) + 1px + env(safe-area-inset-bottom, 0px)); }
}

/* fetch-1432: native culinary reading, with one page scroll and source-sized tables. */
.uni-culinary-page { box-sizing: border-box; height: auto; min-height: var(--campus-height); padding: var(--s-4) var(--s-6); color: var(--navy-dark); background: var(--wash); }
.uni-culinary-page > .uni-page-header { position: sticky; top: var(--app-sticky-top, var(--phone-nav-height,55px)); z-index: 5; background: var(--wash); display: grid; grid-template-columns: var(--control-height-touch) minmax(0,1fr); gap: var(--s-3); max-width: 62rem; margin: auto; padding: 0 0 var(--s-4); }
.uni-culinary-page .icon-btn { min-width: var(--control-height-touch); min-height: var(--control-height-touch); }
.uni-culinary-page h1 { margin: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-size: var(--t-display); line-height: 1.15; }
.uni-culinary-content { max-width: 62rem; margin: auto; overflow-wrap: anywhere; line-height: 1.6; }
.uni-culinary-tabs { display: flex; flex-wrap: wrap; gap: var(--s-3); border-bottom: 1px solid var(--line); }
.uni-culinary-tabs button { min-height: var(--control-height-touch); padding: var(--s-2); border: 0; border-bottom: 2px solid transparent; color: var(--navy); background: transparent; font: inherit; cursor: pointer; }
.uni-culinary-tabs button[aria-current="page"] { border-bottom-color: var(--gold); color: var(--navy-dark); font-weight: 600; }
.uni-culinary-list { border-top: 1px solid var(--line); }
.uni-culinary-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--s-3); align-items: center; width: 100%; min-height: var(--control-height-touch); padding: var(--s-3) 0; border: 0; border-bottom: 1px solid var(--line); text-align: left; color: var(--navy-dark); background: transparent; font: inherit; cursor: pointer; }
.uni-culinary-row small { max-width: 22rem; color: var(--navy); font-size: var(--t-sub); }
.uni-culinary-page :is(button,input,summary):focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.uni-culinary-disclosure { border-bottom: 1px solid var(--line); margin-top: var(--s-3); }
.uni-culinary-disclosure summary { min-height: var(--control-height-touch); padding: var(--s-2) 0; box-sizing: border-box; cursor: pointer; font-weight: 600; }
.uni-culinary-content :is(h2,h3) { margin: var(--s-5) 0 var(--s-2); }
.uni-culinary-content p { margin: var(--s-2) 0; }
.uni-culinary-content li { margin-block: var(--s-2); }
.uni-culinary-search { display: block; margin-top: var(--s-3); font-size: var(--t-sub); }
.uni-culinary-search input { display: block; box-sizing: border-box; width: 100%; min-height: var(--control-height-touch); margin-top: var(--s-1); padding: var(--s-2) var(--s-3); border: 1px solid var(--line); border-radius: var(--r-m); color: var(--navy-dark); background: var(--surface-card); font: inherit; font-size: 1rem; }
.uni-culinary-table { width: 100%; table-layout: fixed; border-collapse: collapse; margin-block: var(--s-3); }
.uni-culinary-table :is(th,td) { padding: var(--s-2); border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.uni-culinary-chef-status { margin-block: var(--s-4); }
/* fetch-1433: station purpose is visible before opening the illustrated hotspot. */
.uni-culinary-place-label { display: block; width: max-content; max-width: 14rem; margin: auto; padding: var(--s-2) var(--s-3); border: 1px solid var(--line); border-radius: var(--r-m); background: var(--wash); color: var(--navy-dark); text-align: center; box-shadow: 0 .25rem 1rem color-mix(in srgb, var(--navy-dark) 12%, transparent); }
.uni-culinary-place-label strong, .uni-culinary-place-label small { display: block; }
.uni-culinary-place-label strong { font-size: var(--t-body); }
.uni-culinary-place-label small { margin-top: var(--s-1); font-size: var(--t-sub); color: var(--navy); }
.uni-culinary-place { display: grid; place-items: center; }
.uni-culinary-page > .uni-page-header { grid-template-columns: var(--control-height-touch) minmax(0,1fr) auto; align-items: center; }
.uni-culinary-browse { min-height: var(--control-height-touch); }
/* fetch-1434: keep the illustrated kitchen clear; named touch routes stay visible. */
@media(min-width:741px) and (hover:hover) and (pointer:fine) {
 /* fetch-1435: feedback follows the label, not the invisible image hit area. */
 .uni-culinary-room .uni-culinary-place:is(:hover,:focus-visible) { border-color: transparent; background: transparent; outline: none; }
 .uni-culinary-place-label { box-sizing: border-box; }
 .uni-culinary-place-label { visibility: hidden; opacity: 0; }
 .uni-culinary-place:is(:hover,:focus-visible) .uni-culinary-place-label { visibility: visible; opacity: 1; }
 .uni-culinary-place:hover .uni-culinary-place-label { border-color: var(--gold-dark); box-shadow: 0 .25rem 1rem color-mix(in srgb, var(--navy-dark) 18%, transparent); }
 .uni-culinary-place:focus-visible .uni-culinary-place-label { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
}
@media(max-width:740px) {
 .uni-culinary-room { height: auto; min-height: var(--campus-height); padding-bottom: calc(var(--control-height-touch) + var(--s-6) + env(safe-area-inset-bottom,0px)); background: var(--wash); }
 .uni-culinary-room .wiki-campus-viewport { height: auto; overflow: visible; }
 .uni-culinary-room .wiki-campus-scene { box-sizing: border-box; width: 100%; height: auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--s-3); padding: 0 var(--s-3) var(--s-4); }
 .uni-culinary-room .wiki-campus-art { grid-column: 1 / -1; width: 100%; height: auto; }
 .uni-culinary-room .uni-culinary-place { position: static; transform: none; box-sizing: border-box; width: 100%; height: auto; border-width: 1px; }
 .uni-culinary-room .uni-culinary-place-label { box-sizing: border-box; width: 100%; max-width: none; min-height: 5rem; display: flex; flex-direction: column; justify-content: center; box-shadow: none; }
 .uni-culinary-page { padding: var(--s-3); padding-bottom: calc(var(--s-6) + var(--control-height-touch) + env(safe-area-inset-bottom,0px)); }
 .uni-culinary-tabs { gap: var(--s-1); }
 .uni-culinary-page > .uni-page-header { grid-template-columns: var(--control-height-touch) minmax(0,1fr); }
 .uni-culinary-browse { grid-column: 2; justify-self: start; }
 .uni-culinary-row { grid-template-columns: minmax(0,1fr); gap: var(--s-1); }
 .uni-culinary-row small { max-width: none; }
 .uni-culinary-table, .uni-culinary-table tbody, .uni-culinary-table tr, .uni-culinary-table td { display: block; width: auto; }
 .uni-culinary-table thead { display: none; }
 .uni-culinary-table tr { padding-block: var(--s-2); border-bottom: 1px solid var(--line); }
 .uni-culinary-table td { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--s-3); border: 0; }
 .uni-culinary-table td::before { content: attr(data-label); font-weight: 600; }
}
