/* Campus navigation: university context in the sidebar, account tools above. */
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__top {
    min-height: 72px; padding: 12px 18px; border-radius: 8px; box-shadow: none; background: #fff;
}
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__brand-text strong { font-size: 19px; letter-spacing: 0; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__push-btn { width: 40px; height: 40px; border: 0; border-radius: 6px; background: transparent; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__user { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 0 0 10px; border: 0; border-left: 1px solid #dce7e1; border-radius: 0; background: transparent; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__user-initial { display: inline-flex !important; justify-content: center; align-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; background: #e9f3ee; color: #1b5e4b; font-weight: 600; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__user-dd { width: 256px; min-width: 0; max-width: calc(100vw - 24px); border-radius: 8px; padding: 8px; box-shadow: 0 10px 30px rgb(20 45 34 / .12); }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__user-dd a { min-height: 44px; padding: 10px; border-radius: 6px; }
.pjm-ca--navigation-panel .pjm-ca__user-heading { display: grid; gap: 2px; padding: 10px 10px 14px; margin-bottom: 6px; border-bottom: 1px solid #dce7e1; overflow-wrap: anywhere; }
.pjm-ca--navigation-panel .pjm-ca__user-heading strong { font-size: 14px; }
.pjm-ca--navigation-panel .pjm-ca__user-heading > span { color: #61756a; font-size: 12px; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__logout-link { margin-top: 6px; border-top: 1px solid #dce7e1; border-radius: 0; color: #b42335; }
.pjm-ca--navigation-panel .pjm-ca__nav-main { display: grid; gap: 4px; min-width: 0; }
.pjm-ca--navigation-panel .pjm-ca__nav-label { margin: 14px 10px 6px; color: #61756a; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__nav-link { display: flex; align-items: center; justify-content: flex-start; gap: 9px; width: 100%; min-width: 0; min-height: 42px; border: 0; border-radius: 6px; padding: 10px; white-space: normal !important; overflow-wrap: anywhere; background: transparent; color: #294638; font: inherit; font-size: 14px; text-align: left; text-decoration: none; letter-spacing: 0; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__nav-link .material-symbols-rounded { flex: 0 0 20px; width: 20px; font-size: 20px; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__nav-link.is-active { background: #e9f3ee; color: #1b5e4b; font-weight: 600; box-shadow: none; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__nav-link.is-active .material-symbols-rounded { color: inherit; }
.pjm-ca--navigation-panel .pjm-pwa-install[hidden] { display: none !important; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__nav-link:hover { background: #f0f5f2; }
.pjm-ca--navigation-panel :is(a, button, summary, select, input):focus-visible { outline: 2px solid #247a61; outline-offset: 2px; }
.pjm-ca--navigation-panel .pjm-ca__nav-footer { margin-top: auto; padding-top: 10px; border-top: 1px solid #dce7e1; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__panel-link { font-size: 13px; }
.pjm-ca--navigation-panel .pjm-ca__panel-link > span:nth-child(2) { flex: 1; min-width: 0; }
.pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__panel-link .pjm-ca__panel-arrow { flex-basis: 16px; width: 16px; font-size: 16px; }
.pjm-ca--navigation-panel .pjm-ca__context { margin-bottom: 12px; min-width: 0; }
.pjm-ca--navigation-panel .pjm-ca__context-switch { border: 1px solid #d4e2da; border-radius: 6px; background: #fff; }
.pjm-ca--navigation-panel :is(.pjm-ca__context-switch > summary, .pjm-ca__context-static) { display: flex; align-items: center; gap: 8px; min-height: 58px; padding: 10px; list-style: none; color: #294638; }
.pjm-ca--navigation-panel .pjm-ca__context-switch > summary { cursor: pointer; }
.pjm-ca--navigation-panel .pjm-ca__context-switch > summary::-webkit-details-marker { display: none; }
.pjm-ca--navigation-panel .pjm-ca__context-text { display: grid; gap: 2px; min-width: 0; flex: 1; overflow-wrap: anywhere; }
.pjm-ca--navigation-panel .pjm-ca__context-text strong { font-size: 14px; font-weight: 600; }
.pjm-ca--navigation-panel .pjm-ca__context-text > span { color: #61756a; font-size: 12px; }
.pjm-ca--navigation-panel .pjm-ca__context .material-symbols-rounded { width: 20px; flex: 0 0 20px; font-size: 20px; }
.pjm-ca--navigation-panel .pjm-ca__context-plan { display: block; margin: 6px 10px 0; color: #61756a; font-size: 12px; }
.pjm-ca--navigation-panel form.pjm-ca__context-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin: 0; padding: 12px; border-top: 1px solid #d4e2da; }
.pjm-ca--navigation-panel .pjm-ca__context-form > label { font-size: 12px; color: #61756a; }
.pjm-ca--navigation-panel .pjm-ca__context-form select { width: 100%; min-width: 0; min-height: 44px; padding: 8px; border: 1px solid #cbdcd3; border-radius: 6px; background: #fff; font: inherit; font-size: 16px; color: #243b32; box-sizing: border-box; }
.pjm-ca--navigation-panel .pjm-ca__context-roles { margin: 0; padding: 0; min-width: 0; border: 0; }
.pjm-ca--navigation-panel .pjm-ca__context-roles legend { margin-bottom: 4px; padding: 0; font-size: 12px; color: #61756a; }
.pjm-ca--navigation-panel .pjm-ca__context-roles label { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; font-size: 14px; font-weight: 400; }
.pjm-ca--navigation-panel .pjm-ca__context-roles input { accent-color: #1b5e4b; flex: 0 0 18px; width: 18px; height: 18px; margin: 0; }
.pjm-ca--navigation-panel .pjm-ca__context-roles label:only-of-type input { display: none; }
.pjm-ca--navigation-panel .pjm-ca__context-submit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 44px; padding: 8px; border: 1px solid #1b5e4b; border-radius: 6px; background: #1b5e4b; color: #fff; font: inherit; font-weight: 600; }
.pjm-ca--navigation-panel .pjm-ca__context-submit:disabled { opacity: .65; }
.pjm-ca--navigation-panel .pjm-ca__context-status { color: #93421c; overflow-wrap: anywhere; font-size: 13px; }
.pjm-ca--navigation-panel .pjm-ca__context-trigger{display:flex;align-items:center;gap:10px;width:100%;min-height:64px;padding:12px 10px;border:1px solid transparent;border-radius:6px;background:var(--campus-card,#fff);color:var(--campus-ink,#20382e);font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}
.pjm-ca--navigation-panel .pjm-ca__context-trigger:hover,.pjm-ca--navigation-panel .pjm-ca__context-trigger[aria-expanded=true]{border-color:var(--campus-border,#d6e2dc);background:var(--campus-hover,#edf5f0)}
.pjm-ca__context-dialog{box-sizing:border-box;width:min(320px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);margin:0;padding:0;border:1px solid var(--campus-border,#d6e2dc);border-radius:8px;background:var(--campus-card,#fff);color:var(--campus-ink,#20382e);box-shadow:0 12px 32px #0003;font:400 15px/1.5 var(--campus-font-body,system-ui,sans-serif)}
.pjm-ca__context-dialog:not([open]){display:none!important}
.pjm-ca__context-dialog[open]{position:fixed;inset:auto;display:flex;flex-direction:column;height:auto!important;min-height:0!important}
.pjm-ca__context-dialog::backdrop{background:rgb(15 35 25 / .25)}
.pjm-ca__context-dialog>header{display:flex;align-items:center;justify-content:space-between;flex:none;gap:10px;padding:14px 18px;border-bottom:1px solid var(--campus-border,#d6e2dc)}
.pjm-ca__context-dialog h2{margin:0;font-size:18px;line-height:1.4}
.pjm-ca--navigation-panel .pjm-ca__context-dialog form.pjm-ca__context-form{flex:0 1 auto;min-height:0;overflow:auto;border:0;padding:18px;gap:10px}
.pjm-ca__context-dialog .pjm-ca__context-university{margin:0;font-weight:600}
.pjm-ca__context-dialog .pjm-ca__context-roles{display:grid;gap:8px;margin:8px 0 4px}
.pjm-ca__context-dialog .pjm-ca__context-roles legend{margin-bottom:10px;font-size:14px}
.pjm-ca__context-dialog .pjm-ca__context-roles label{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:54px;padding:10px;border:1px solid var(--campus-border,#d6e2dc);border-radius:6px;background:var(--campus-card,#fff)}
.pjm-ca__context-dialog .pjm-ca__context-roles label:has(input:checked){border-color:var(--campus-primary,#1b5e4b);background:var(--campus-hover,#edf5f0)}
.pjm-ca__context-dialog .pjm-ca__context-roles label>span{flex:1;min-width:0;overflow-wrap:anywhere}
.pjm-ca__context-dialog .pjm-ca__context-roles small{display:block;flex:1 0 calc(100% - 28px);margin-left:26px;color:var(--campus-muted,#52675d);font-size:12px}
.pjm-ca__context-dialog .pjm-ca__context-status:empty{display:none}
.pjm-ca--navigation-panel .pjm-ca__context-dialog .pjm-ca__context-submit{background:var(--campus-primary,#1b5e4b);color:var(--campus-on-primary,#fff);border-color:var(--campus-primary,#1b5e4b)}
.pjm-ca--navigation-panel .pjm-ca__context--mobile{border-bottom:1px solid var(--campus-border,#d6e2dc);padding-bottom:8px;margin-bottom:8px}
@media (min-width: 1024px) {
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__frame { display: grid; grid-template-columns: 224px minmax(0, 1fr); gap: 20px; align-items: start; }
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__nav { display: flex !important; flex-direction: column !important; align-items: stretch; width: 224px !important; min-height: min(620px, calc(100dvh - var(--campus-nav-top, 100px) - 24px)); overflow: auto !important; padding: 12px; gap: 12px; border-radius: 8px; background: #fff; }
}
@media (max-width: 1023px) {
    .pjm-ca--navigation-panel .pjm-ca__nav>.pjm-ca__context{display:none}
    .pjm-ca__context-dialog[open]{inset:auto 0 0;width:100%;max-width:100%;max-height:88dvh;border-radius:8px 8px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
    .pjm-ca__context-dialog::backdrop{background:rgb(15 35 25 / .55)}
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__frame { display: flex; flex-direction: column; gap: 0; }
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__stage { width: 100%; }
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__nav { display: block !important; position: static !important; width: 100% !important; height: auto; max-height: none; min-height: 0; flex: none !important; order: 0; padding: 10px 0 0; margin: 0; overflow: visible; border: 0; background: transparent; }
    .pjm-ca--navigation-panel .pjm-ca__nav-main, .pjm-ca--navigation-panel .pjm-ca__nav-footer { display: none; }
    .pjm-ca--navigation-panel .pjm-ca__context { margin-bottom: 0; }
    .pjm-ca--navigation-panel .pjm-ca__context-plan { display: none; }
    .pjm-ca--navigation-panel .pjm-ca__context-static { background: #fff; border-bottom: 1px solid #dce7e1; }
    .pjm-ca--navigation-panel .pjm-ca__context-text { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
    .pjm-ca--navigation-panel .pjm-ca__context-text > span { font-size: 13px; }
    .pjm-ca--navigation-panel .pjm-ca__context-switch > summary { min-height: 44px; }
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__mobile-more-list { width: 280px; min-width: 0; max-width: calc(100vw - 80px); max-height: calc(100dvh - 160px); overflow-y: auto; border-radius: 8px; }
    body.pjm-campus-app-shell:has(.pjm-ca--navigation-panel .pjm-ca__mobile-more[open]) .pjm-a11y-toggle { left: max(12px, env(safe-area-inset-left, 0px)); right: auto; }
    .pjm-ca--navigation-panel .pjm-ca__mobile-more-list > button { display: flex; align-items: center; gap: 9px; min-height: 44px; padding: 10px; border: 0; border-radius: 6px; background: transparent; color: #294638; font: inherit; font-size: 14px; text-align: left; }
    .pjm-ca--navigation-panel .pjm-ca__mobile-more-list > button:hover { background: #f0f5f2; }
}
@media (max-width: 820px) {
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__top { padding: 10px 8px; min-height: 64px; }
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__brand-text strong { font-size: 15px; }
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__user { padding: 0; border: 0; }
    .pjm-campus-app-shell .pjm-ca--navigation-panel .pjm-ca__push-btn { width: 44px; height: 44px; }
}

/* Page headings override legacy hero cards, including the later dark/mobile rules. */
html .pjm-account-container.pjm-campus-settings.pjm-campus-settings--compact {
    width: 100%; max-width: none; min-width: 0; margin: 0; padding: 0 !important; border: 0 !important;
    border-radius: 0; background: transparent !important; box-shadow: none !important;
}
html[data-campus-theme=dark] .pjm-campus-app-shell .pjm-account-container.pjm-campus-settings.pjm-campus-settings--compact { background: transparent !important; }
html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero {
    display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px;
    width: 100%; min-width: 0; min-height: 0 !important; margin: 0 0 24px !important; padding: 0 !important;
    border: 0 !important; border-radius: 0 !important; background: transparent !important;
    box-shadow: none !important; backdrop-filter: none !important; box-sizing: border-box;
}
html[data-campus-theme=dark] :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero { background: transparent !important; }
html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero > div:first-child { display: block; min-width: 0; flex: 1 1 260px; }
html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero h1 {
    margin: 0 !important; font-size: 26px !important; line-height: 1.3; font-weight: 700; letter-spacing: 0;
    color: var(--campus-ink, #20382e); overflow-wrap: anywhere; word-break: normal;
}
html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero .pjm-ca-hero__eyebrow {
    margin: 0 0 6px; font-size: 12px; line-height: 1.5; letter-spacing: 0; text-transform: none;
}
html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero .pjm-ca-hero__lead {
    max-width: 75ch; margin: 8px 0 0 !important; font-size: 15px; line-height: 1.6;
    color: var(--campus-muted, #52665a); letter-spacing: 0; overflow-wrap: anywhere; word-break: normal;
}
html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero .pjm-ca-hero__actions {
    display: flex; flex: 0 1 auto; flex-wrap: wrap; align-items: center; gap: 8px; width: auto; min-width: 0; margin: 0;
}
html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero > .pjm-campus-notes { flex-basis: 100%; order: 2; margin: 0; }
html .pjm-campus-ui header.pjm-ca-hero > .pjm-campus-settings-identity { max-width: 100%; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }

/* Whole tabs wrap to another row; foundation's anywhere wrapping must not split labels. */
html :is(.pjm-campus, .pjm-campus-ui) nav.pjm-campus-subnav.pjm-campus-page-tabs {
    display: flex !important; flex-direction: row !important; flex-wrap: wrap; align-items: center; justify-content: flex-start;
    gap: 6px !important; grid-template-columns: none !important; width: 100%; min-width: 0; max-width: 100%;
    margin: 0 0 20px !important; padding: 0 !important; border: 0 !important; border-radius: 0;
    background: transparent !important; box-shadow: none !important; overflow: visible;
}
html :is(.pjm-campus, .pjm-campus-ui) nav.pjm-campus-subnav.pjm-campus-page-tabs > :is(a, button) {
    display: inline-flex !important; flex: 0 0 auto !important; align-items: center; justify-content: center; gap: 8px;
    width: auto !important; min-width: max-content; max-width: 100%; min-height: 44px !important; height: auto;
    margin: 0 !important; padding: 10px 12px !important; border: 1px solid transparent !important; border-radius: 6px !important;
    background: transparent !important; color: var(--campus-muted, #52665a) !important; box-shadow: none !important;
    font: 600 14px/1.4 var(--campus-font-body, system-ui, sans-serif); letter-spacing: 0;
    text-align: center; text-decoration: none !important; white-space: nowrap !important;
    overflow-wrap: normal !important; word-break: normal !important; hyphens: none; cursor: pointer;
}
html :is(.pjm-campus, .pjm-campus-ui) nav.pjm-campus-subnav.pjm-campus-page-tabs > :is(a, button):hover {
    background: var(--campus-ui-soft, #edf4f0) !important;
}
html :is(.pjm-campus, .pjm-campus-ui) nav.pjm-campus-subnav.pjm-campus-page-tabs > :is([aria-current=page], [aria-pressed=true], [aria-selected=true], .is-on) {
    background: var(--campus-ui-soft, #e7f2ec) !important; color: var(--campus-ui-primary, #1b5e4b) !important;
    border-color: var(--campus-border, #d5e1da) !important; font-weight: 700;
}
html :is(.pjm-campus, .pjm-campus-ui) nav.pjm-campus-subnav.pjm-campus-page-tabs > :is(a, button):focus-visible {
    outline: 3px solid var(--campus-ui-primary, #247a61) !important; outline-offset: 2px;
}
html :is(.pjm-campus, .pjm-campus-ui) nav.pjm-campus-subnav.pjm-campus-page-tabs .material-symbols-rounded {
    display: inline-block !important; flex: 0 0 18px; width: 18px; font-size: 18px !important; line-height: 1;
    white-space: nowrap !important; overflow-wrap: normal !important; word-break: normal !important;
}

/* Paint only the sticky header's top gap; dialogs keep their existing stacking contexts. */
.pjm-campus-app-shell .pjm-ca--navigation-panel > .pjm-ca__top::before {
    content: ""; position: absolute; bottom: 100%; left: 50%; width: 100vw;
    height: calc(max(12px, env(safe-area-inset-top, 0px)) + 2px); transform: translateX(-50%);
    background: var(--campus-surface, #f3f6f4); pointer-events: none;
}
@media (max-width: 700px) {
    html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero { gap: 12px; margin-bottom: 20px !important; }
    html :is(.pjm-campus, .pjm-campus-ui) header.pjm-ca-hero.pjm-ca-hero h1 { font-size: 24px !important; }
}
