/* Application chrome only. Preserve Bootstrap collapse/offcanvas mechanics. */
.pcs-app { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; margin: 0; }
.pcs-container { width: 100%; max-width: calc(var(--pcs-content) + 2 * var(--pcs-gutter)); padding-inline: var(--pcs-gutter); margin-inline: auto; }
.pcs-app > .pcs-main { flex: 1 0 auto; min-width: 0; padding-top: var(--pcs-space-2); padding-bottom: var(--pcs-space-8); }
.pcs-skip-link { position: fixed; top: 8px; left: 16px; z-index: 1100; transform: translateY(-160%); background: var(--pcs-surface); padding: var(--pcs-space-3); border-radius: var(--pcs-control-radius); }
.pcs-skip-link:focus { transform: translateY(0); }
.site-header { position: sticky; top: 0; z-index: 1020; background: var(--pcs-surface); border-bottom: 1px solid var(--pcs-line); }
.site-header .navbar { padding-block: var(--pcs-space-3); }
.site-header .navbar > .pcs-container { display: flex; flex-wrap: inherit; align-items: center; justify-content: space-between; gap: var(--pcs-space-3); }
.site-header .navbar-brand { color: var(--pcs-ink); font-size: 1rem; font-weight: 700; letter-spacing: -.025em; white-space: normal; line-height: 1.25; max-width: calc(100% - 68px); margin: 0; padding-block: var(--pcs-space-2); }
.site-header .navbar-nav .nav-link { font-size: var(--pcs-meta); font-weight: 500; min-height: var(--pcs-target); display: flex; align-items: center; border-radius: var(--pcs-control-radius); padding: .625rem .5rem; color: var(--pcs-muted); }
.site-header .navbar-nav .nav-link:hover, .site-header .navbar-nav .nav-link:focus-visible { color: var(--pcs-accent); background: var(--pcs-accent-soft); }
.site-header .navbar-nav .nav-link.is-active { color: var(--pcs-accent); font-weight: 600; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
.site-header .navbar-toggler { min-width: var(--pcs-target); min-height: var(--pcs-target); border-color: var(--pcs-input); border-radius: var(--pcs-control-radius); padding: var(--pcs-space-2); }
.site-header .navbar-toggler:focus { box-shadow: none; outline: 3px solid var(--pcs-accent); outline-offset: 3px; }
.auth-nav { display: flex; align-items: center; gap: var(--pcs-space-2); color: var(--pcs-muted); font-size: var(--pcs-meta); }
.auth-nav > span { overflow-wrap: anywhere; }
.auth-nav form { margin: 0; }
.settings-nav-link, .auth-icon-button { display: inline-flex; align-items: center; justify-content: center; width: var(--pcs-target); min-width: var(--pcs-target); height: var(--pcs-target); border-radius: var(--pcs-control-radius); padding: var(--pcs-space-2); color: var(--pcs-ink); }
.settings-nav-link:hover, .settings-nav-link:focus-visible, .settings-nav-link.is-active { background: var(--pcs-accent-soft); color: var(--pcs-accent); }
.pcs-footer { border-top: 1px solid var(--pcs-line); color: var(--pcs-muted); font-size: var(--pcs-meta); padding-block: var(--pcs-space-6); }
@media (min-width: 1200px) {
  .site-header .navbar-collapse { gap: var(--pcs-space-3); min-width: 0; }
  .site-header .navbar-nav { flex-wrap: wrap; }
}
@media (max-width: 1199.98px) {
  .site-header .navbar-toggler { margin-left: auto; }
  .site-header .navbar-collapse { order: 4; max-height: calc(100dvh - 140px); overflow-y: auto; }
  .site-header .navbar-nav .nav-link { padding-inline: var(--pcs-space-3); }
  .auth-nav { padding-top: var(--pcs-space-3); border-top: 1px solid var(--pcs-line); }
}
@media (max-width: 767.98px) {
}

/* Accepted Visual 2.0 theme, opt-in during the staged conversion. Shared by Shortlist and school details. */
.pcs-theme { background:var(--pcs-paper); color:var(--pcs-ink); font-family:var(--pcs-font); font-size:1rem; line-height:1.45; }
.pcs-theme .pcs-container { max-width:1320px; padding-inline:32px; }
.pcs-theme > .pcs-main { padding-top:40px; padding-bottom:32px; }
.pcs-theme .site-header .navbar { padding:18px 0; }
.pcs-theme .site-header .navbar > .pcs-container { max-width:none; gap:20px; }
.pcs-theme .site-header .navbar-brand { display:flex; align-items:center; gap:10px; padding:0; font-size:1rem; font-weight:700; line-height:1.2; letter-spacing:-.5px; flex-shrink:0; margin-right:auto; }
.pcs-theme .navbar-brand small { display:block; margin-top:3px; font-size:.75rem; font-weight:400; letter-spacing:0; }
.pcs-theme .pcs-mark { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:var(--pcs-ink); color:white; font-size:21px; }
.pcs-theme .site-header .navbar-collapse { flex-grow:0; gap:20px; }
.pcs-theme .site-header .navbar-nav { gap:16px; }
.pcs-theme .site-header .navbar-nav .nav-link { padding:10px 0; border-radius:0; font-size:.875rem; font-weight:400; white-space:nowrap; }
.pcs-theme .site-header .navbar-nav .nav-link.is-active { font-weight:600; text-decoration-thickness:2px; }
.pcs-theme .auth-nav { gap:0; }
.pcs-theme .auth-icon-button { background:transparent; border-color:transparent; }
.pcs-theme .pcs-avatar { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; border-radius:50%; background:var(--pcs-accent-soft); font-size:.875rem; }
.pcs-theme .pcs-footer { margin-top:24px; border:0; padding:0 0 24px; font-size:.75rem; }
@media (max-width:1199.98px) {
  .pcs-theme .site-header .navbar > .pcs-container { gap:12px; }
  .pcs-theme .site-header .navbar-toggler { order:2; margin:0; }
  .pcs-theme .pcs-avatar { order:1; }
  .pcs-theme .site-header .navbar-collapse { flex-direction:column; align-items:start; order:3; flex-basis:100%; width:100%; max-height:calc(100vh - 120px); max-height:calc(100dvh - 120px); overflow-y:auto; gap:8px; }
  .pcs-theme .site-header .navbar-collapse.show, .pcs-theme .site-header .navbar-collapse.collapsing { display:flex; }
  .pcs-theme .site-header .navbar-nav { flex-direction:column; flex-wrap:nowrap; flex-shrink:0; width:100%; gap:4px; }
  .pcs-theme .site-header .navbar-nav .nav-link { padding:10px 12px; white-space:normal; }
  .pcs-theme .auth-nav { padding-top:8px; width:100%; }
}
@media (max-width:767.98px) {
  .pcs-theme .pcs-container { padding-inline:16px; }
  .pcs-theme > .pcs-main { padding-top:24px; padding-bottom:24px; }
  .pcs-theme .site-header .navbar { padding:16px 0; }
  .pcs-theme .site-header .navbar > .pcs-container { gap:8px; }
  .pcs-theme .site-header .navbar-nav { gap:4px; }
  .pcs-theme .site-header .navbar-nav .nav-link { font-size:.875rem; }
}
