/* Responsive rules shared by the sixteen content pages. */
html.portal-inner-page { scroll-padding-top: 92px; }
html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(main,.section,.catalog-main,.catalog-shell,.card,.book,.book-content,.school-card,.study-card,.resource-card,.field,.source-title,.hero-copy,.tutor-actions,.contact-stack) {
  min-width: 0;
}
html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(img,video,iframe) { max-width: 100%; }
html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(h1,h2,h3,h4,p,li,.btn,.button,.school-links,.links-cell) { overflow-wrap: break-word; }
html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.section,.subsection) { scroll-margin-top: 92px; }
.responsive-table-scroll { width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch; }
.responsive-table-scroll:focus-visible { outline:2px solid #0878c7;outline-offset:4px; }
html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.table-scroll,.table-wrap) { max-width:100%;min-width:0;overflow-x:auto; }

/* Keep one visual card for each school, with its resources inside. */
html.portal-inner-page body:is(#portal-page,#top).portal-unified .study-group .study-card {
  background:transparent!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;padding:0!important;min-width:0!important;
}
html.portal-inner-page body:is(#portal-page,#top).portal-unified .study-grid.single-resource {
  grid-template-columns:minmax(0,1fr)!important;
}

/* Equal-height diagnostic cards put their action and notes on shared baselines. */
html.portal-inner-page body:is(#portal-page,#top).portal-unified .split>.choice {
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;
}
html.portal-inner-page body:is(#portal-page,#top).portal-unified .split>.choice>p {
  flex:1 0 auto;
}
html.portal-inner-page body:is(#portal-page,#top).portal-unified .split>.choice>.btn {
  margin-top:auto!important;
}
@media(min-width:721px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .split>.choice>.mini-route {
    min-height:70px;align-content:flex-start;
  }
}

@media (min-width:981px) and (max-width:1200px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .portal-inner-hero .portal-sphere-frame { width:28vw!important; }
}

@media (max-width: 1100px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.section-head,.section>.head,.catalog-wrap>.head,.planner-grid,.teacher-layout,.tutor-panel) { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.section-head,.section>.head,.catalog-wrap>.head) { gap:20px!important; }
}

@media (max-width: 980px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified > main > .catalog-shell { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .catalog-sidebar { position:static!important;max-height:none!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.catalog-tools,.filterbar) { position:static!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.about,.reviews,.fpu-card) { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.grid,.cards,.resource-cards,.cols-3,.cols-2,.book-grid,.books,.prep-grid,.source-grid,.project-grid,.study-grid,.method-grid,.course-grid,.platform-grid,.catalog-grid) { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.catalog-filters,.study-filters,.exam-filter-grid,.ranking-years,.guide-grid,.stage-strip,.steps,.route,.results) { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .review-actions { align-items:stretch!important; }
}

@media (max-width: 720px) {
  html.portal-inner-page { scroll-padding-top:128px; }
  /* Give the page links their own full-width row instead of squeezing them. */
  html.portal-inner-page body:is(#portal-page,#top).portal-unified > .topbar {
    height:112px!important;min-height:112px!important;
    grid-template-columns:42px auto minmax(0,1fr) auto!important;
    grid-template-rows:64px 48px!important;gap:0 6px!important;
    padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified > .topbar > .brand { grid-column:1;grid-row:1; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified > .topbar > .unified-global-wrap { grid-column:2;grid-row:1; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified > .topbar > .unified-home { grid-column:4;grid-row:1;min-width:44px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified > .topbar > :is(.unified-local-wrap,.unified-page-nav) {
    grid-column:1/-1;grid-row:2;width:100%!important;max-width:100%!important;
    justify-content:flex-start!important;overflow-x:auto!important;overflow-y:hidden!important;
    height:48px!important;min-height:48px!important;scrollbar-width:thin!important;
    scrollbar-color:rgba(8,120,199,.35) transparent;overscroll-behavior-x:contain;
    border-top:1px solid rgba(8,120,199,.09);
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .unified-page-nav { gap:3px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .unified-menu-label { min-height:44px!important;height:44px!important;font-size:14px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.section,.subsection) { scroll-margin-top:128px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .portal-inner-hero :is(.visual,.hero-visual) { min-height:clamp(280px,90vw,430px)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.section h2,.section>.head h2) { font-size:clamp(30px,7vw,36px)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.grid,.cards,.resource-cards,.cols-2,.cols-3,.book-grid,.books,.prep-grid,.source-grid,.project-grid,.study-grid,.method-grid,.course-grid,.platform-grid,.catalog-grid,.catalog-filters,.study-filters,.filters,.exam-filter-grid,.ranking-years,.guide-grid,.stage-strip,.steps,.route,.results,.split,.topic-grid,.program-list,.form-grid,.forecast,.month-grid,.source-controls,.definition-grid) { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.wide,.span2,.field.full,.metric.wide-metric) { grid-column:1/-1!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.hero-actions,.hero .actions,.card .actions,.about-card .actions,.book-actions,.links,.filters,.level-filters,.ranking-filters,.catalog-meta,.source-toolbar,.exam-toolbar) { flex-wrap:wrap!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.hero-actions,.hero .actions) { gap:12px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.hero-actions,.hero .actions) :is(.btn,.button,.primary,.secondary) { min-width:0!important;max-width:100%!important;min-height:44px!important;height:auto!important;white-space:normal!important;text-align:center!important;padding:12px 16px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .hero-actions .contact-stack { width:100%!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.catalog-tools,.lightbox-layout) { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.catalog-meta,.result-count) { white-space:normal!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { font-size:16px!important;max-width:100%!important;min-width:0!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(select,input[type=search],input[type=text],input[type=number]) { min-height:44px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.multi-panel,.catalog-multi-panel) { min-width:0!important;max-width:calc(100vw - 32px)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.book-card,.collection) { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .book-card .book-cover { width:min(180px,100%)!important;justify-self:center; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .cover-gallery { flex-wrap:wrap!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .cover-gallery figcaption { white-space:normal!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .footer { flex-wrap:wrap!important;gap:16px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.socials,.contact-actions) { flex-wrap:wrap; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .catalog-list .catalog-row { grid-template-columns:88px minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .catalog-list .catalog-row>a { grid-column:1/-1!important;white-space:normal!important; }
  /* Sirius catalog rows become readable cards rather than narrow columns. */
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.catalog-row:has(.program-title),.teacher-row) { grid-template-columns:64px minmax(0,1fr)!important;gap:8px 12px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .catalog-head { display:none!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.catalog-row,.teacher-row) > :is(.program-title,.classes,.links-cell) { grid-column:1/-1!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.catalog-row,.teacher-row) .links-cell { flex-direction:row!important;flex-wrap:wrap!important;align-items:flex-start!important; }
}

@media (max-width: 420px) {
  html.portal-inner-page { --inner-page-gutter:16px; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.tasks,.thresholds,.stats,.catalog-metrics,.mesh,.details) { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.card,.school-card,.study-card,.planner,.form-panel,.result-panel) { padding:20px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .task-chip span { font-size:12px!important; }
}

@media (hover: none) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.card,.btn,.button,.school-card,.study-card):hover { transform:none!important; }
}

/* Native selectors keep the compact header stable even before JS decoration. */
@media(max-width:720px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar {
    display:grid!important;grid-template-areas:none!important;
    grid-template-columns:42px auto minmax(0,1fr) auto!important;
    grid-template-rows:64px 48px!important;height:112px!important;min-height:112px!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar>.brand {
    display:flex!important;grid-area:1 / 1 / 2 / 2!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar>:is(.portal-site-nav,.site-nav,.site-menu) {
    grid-area:1 / 2 / 2 / 3!important;min-width:0!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar>:is(.portal-home,.home,.home-link) {
    grid-area:1 / 4 / 2 / 5!important;min-width:44px!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar>:is(div.portal-local-nav,div.local-nav,nav.local-nav,nav.page-nav) {
    grid-area:2 / 1 / 3 / -1!important;position:relative!important;inset:auto!important;
    transform:none!important;display:block!important;width:100%!important;min-width:0!important;
    max-width:100%!important;height:48px!important;min-height:48px!important;margin:0!important;
    padding:0!important;overflow-x:auto!important;overflow-y:hidden!important;
    justify-content:flex-start!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar :is(.portal-local-nav,.local-nav)>nav {
    display:flex!important;flex-wrap:nowrap!important;width:max-content!important;
    min-width:100%!important;max-width:none!important;justify-content:flex-start!important;
    gap:4px!important;margin:0!important;padding:0!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar>:is(nav.local-nav,nav.page-nav) {
    display:flex!important;flex-wrap:nowrap!important;gap:4px!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar :is(.portal-local-nav>nav,.local-nav>nav,nav.local-nav,nav.page-nav)>:is(a,button,div) {
    position:relative!important;flex:0 0 auto!important;min-width:max-content!important;
  }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar :is(.portal-local-nav>nav,.local-nav>nav,nav.local-nav,nav.page-nav)>:is(a,button) {
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    min-height:44px!important;height:44px!important;padding:0 12px!important;
    font-size:14px!important;white-space:nowrap!important;
  }
}

/* Stack long headings and logos before they can widen a narrow screen. */
@media(max-width:720px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified { min-width:0!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.platform-group-head,.resource-group-title) { flex-direction:column!important;align-items:flex-start!important;gap:12px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .platform-group-head>span { max-width:100%!important;white-space:normal!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.hero-visual,.hero .visual) { overflow-x:clip!important; }
}
@media(max-width:420px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .card-title-row { flex-direction:column!important;align-items:flex-start!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .card-title-row>h3 { width:100%!important;min-width:0!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .platform-brand { grid-template-columns:minmax(0,1fr)!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified :is(.platform-groups,.platform-groups>div,.platform-card,.platform-card-top,.platform-brand,.platform-brand>div) { min-width:0!important; }
}

html.portal-inner-page body:is(#portal-page,#top).portal-unified .footer {
  color:#07345f!important;font-size:12px!important;background:rgba(239,250,255,.86)!important;
  max-width:none!important;margin-inline:0!important;
  padding:24px max(var(--inner-page-gutter),calc((100% - 1360px)/2 + var(--inner-page-gutter)))!important;border-top:1px solid rgba(255,255,255,.8);
}
html.portal-inner-page body:is(#portal-page,#top).portal-unified .footer a { color:inherit!important; }

@media(max-width:720px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .unified-global-toggle { min-height:44px!important;min-width:44px!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .unified-global-toggle>span:first-child { display:inline!important;font-size:14px!important; }
}

@media(max-width:720px) {
  html.portal-inner-page { overflow-x:clip!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified { overflow-x:clip!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar :is(.portal-local-nav>nav,.local-nav>nav,nav.local-nav,nav.page-nav)>:is(a,button,div),
  html.portal-inner-page body:is(#portal-page,#top).portal-unified>.topbar :is(.portal-local-nav>nav,.local-nav>nav,nav.local-nav,nav.page-nav)>div>button { width:auto!important; }
}
@media(max-width:420px) {
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .fpu-card-heading { flex-direction:column!important;align-items:flex-start!important; }
  html.portal-inner-page body:is(#portal-page,#top).portal-unified .fpu-card-heading>h3 { width:100%!important;min-width:0!important; }
}

/* Titles use the available line width; only spaces determine line breaks. */
html.portal-inner-page body:is(#portal-page,#top).portal-unified .portal-inner-hero h1 {
  white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important;
}
html.portal-inner-page body:is(#portal-page,#top).portal-unified .portal-inner-hero h1>span {
  display:inline!important;margin:0!important;
}
