/* Shared screen layout; print styles remain owned by each document. */
@media screen {
  #main, .workspace, #main :where(form, fieldset, label, section, article) { min-width: 0; }
  #main :where(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea) { max-width: 100%; box-sizing: border-box; }
  #main textarea { height: auto; min-height: 96px; resize: vertical; }
  .vac-card > header > div { flex-basis: auto; }
  .dm-frame .dm-scale-control input[type=range] { min-height: 32px; height: 32px; padding: 0; }
  .dm-frame-controls :where(.dm-toolbar, .dm-toolbar > div, .dm-actions) { flex-wrap: wrap; min-width: 0; }
  .dm-frame-controls .dm-toolbar > div { gap: 8px; }
  .dm-frame-controls .btn { white-space: normal; }
  html[data-theme=dark] .dm-frame-controls .dm-rail .btn:hover { background: #203e43; color: #e3f0f1; }
  html[data-theme=dark] .exercise-safety { background: #302b1e; border-color: #746035; }
  html[data-theme=dark] .exercise-safety :is(strong,span) { color: #f0dfb9; }
  html[data-theme=dark] .exercise-mode button[aria-pressed=true] { background: #28504f; color: #effaf8; }
  @media (max-width: 1000px) {
    .vc-table-head { display: none; }
    .vc-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  }
  @media (max-width: 700px) {
    .sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 68px auto; align-items: center; gap: 10px; padding: 12px; }
    .sidebar > .brand { grid-column: 1; grid-row: 1; margin: 0; font-size: 23px; }
    .sidebar .theme-toggle { position: relative; inset: auto; grid-column: 2; grid-row: 1; margin: 0; }
    .sidebar .sidebar-controls { grid-column: 3; grid-row: 1; gap: 6px; }
    .sidebar-search, .mobile-menu { width: 44px; height: 44px; }
    .sidebar > nav { grid-column: 1 / -1; }
    #main { padding: 22px 14px 72px; }
    #main .home-access-grid { grid-template-columns: repeat(12,minmax(0,1fr)); gap: 10px; }
    #main .home-access-grid > a.si-card { grid-column: span 6; }
    #main .home-access-grid > a.si-card.home-primary { grid-column: span 4; }
    #main .home-access-grid a.si-card { padding: 13px; min-height: 118px; height: 100%; }
    #main .home-access-grid .si-card p { font-size: .82rem; }
    .dm-heading > div:first-child { min-width: 0; }
    .dm-frame-controls { padding: 10px; gap: 8px; }
    .dm-frame-controls .dm-toolbar { justify-self: stretch; width: 100%; }
    .dm-frame-controls .dm-scale-control { flex: 1 1 100%; }
    .dm-frame-controls .dm-scale-control input[type=range] { width: auto; flex: 1; min-width: 60px; }
    .dm-node { overflow-wrap: break-word; }
    .exercise-print-card { grid-template-columns: 1fr; }
    .exercise-section-heading { flex-wrap: wrap; }
    .exercise-section-heading .exercise-mode { flex: 1 1 100%; width: 100%; }
    .exercise-print-image { width: min(100%, 240px); }
    .vc-module-card { grid-template-columns: auto minmax(0,1fr); padding: 16px; }
    .vc-module-card > b { grid-column: 2; }
    .context-links { margin-bottom: 16px; }
  }
  @media (max-width: 430px) {
    #main .home-access-grid { grid-template-columns: 1fr; }
    #main .home-access-grid > a.si-card,
    #main .home-access-grid > a.si-card.home-primary { grid-column: auto; }
  }
}

/* Shared submenu cards and controls: one visual and sizing contract. */
@media screen {
  #main .si-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 14px; }
  #main .si-cards > .si-card { min-width: 0; margin: 0; padding: 20px; align-items: center; }
  #main .si-card > div { min-width: 0; flex: 1; }
  #main .si-card h2 { margin: 0 0 6px; font-size: 1.05rem; line-height: 1.4; }
  #main .si-card p { margin: 0; line-height: 1.5; }
  #main .si-icon { flex: 0 0 42px; width: 42px; height: 42px; }
  #main .si-icon svg { width: 23px; height: 23px; }
  #main .si-arrow { flex: 0 0 auto; margin-left: auto; }
  #main .search input { min-width: 0; min-height: 48px; height: auto; font-size: 1rem; padding-block: 12px; }
  .search:focus-within { outline: 2px solid var(--ui-accent, #176f68); outline-offset: 3px; }
  :where(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--ui-accent, #176f68); outline-offset: 3px; }
  .dm-frame .dm-viewport { min-height: 0; }
  #main .dm-frame { overflow: clip; }
  .dm-frame-controls { position: sticky; top: 0; z-index: 45; }
  .dm-fullscreen .dm-frame-controls { position: relative; }
  .dm-frame-controls .dm-scale-control { min-width: 0; }
  .dm-caption { font-size: .875rem; line-height: 1.5; }
  @media (max-width: 700px) {
    #main :where(input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea) { font-size: 16px; }
    #main .catalog-toolbar { gap: 12px; padding: 12px; align-items: stretch; }
    #main .catalog-toolbar .area-picker { font-size: .875rem; }
    #main .si-cards > .si-card { padding: 16px; gap: 12px; }
    #main .si-cards { grid-template-columns: minmax(0, 1fr); }
    .dm-frame-controls { top: 0; }
    .dm-frame-controls .dm-toolbar > div { display: flex; gap: 6px; }
    .dm-frame-controls .dm-scale-control { flex: 1 1 100%; }
    .dm-frame-controls .dm-toolbar button { padding: 8px 10px; }
    .dm-fullscreen .dm-frame { height: calc(100dvh - 24px); }
    .dm-fullscreen .dm-frame-controls { max-height: 42dvh; overflow: auto; }
    #main .si-card p { font-size: .875rem; }
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media screen {
  #main .si-cards .resource-favorite > .si-card { min-height: 0; padding: 20px 54px 20px 20px; gap: 14px; }
  #main .si-cards .resource-favorite .si-arrow { display: none; }
  #main .si-cards .resource-favorite .favorite-toggle { top: 12px; right: 10px; }
  @media (max-width: 700px) {
    #main .si-cards .resource-favorite > .si-card { padding: 16px 48px 16px 16px; gap: 12px; }
    #main .si-cards .resource-favorite .si-icon { flex-basis: 36px; width: 36px; height: 36px; }
    #main .si-cards .resource-favorite .favorite-toggle { width: 36px; height: 36px; right: 8px; }
  }
  html[data-theme=dark] #main .search input { background: transparent; box-shadow: none; border: 0; }
}

@media screen {
  /* The shared back button and breadcrumb already provide these destinations. */
  #main:has(> .history-navigation) .vc-back { display: none; }
}

@media screen {
  #main .ref-grid, #main .cards, #main .atb-cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
}

@media screen and (max-width: 1000px) {
  .atb-search-row { flex-direction: column; align-items: stretch; }
}

/* Brand and consultation controls share a compact, stable header. */
.sidebar > nav { margin-top: 12px; }
.sidebar .sidebar-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}
.sidebar .sidebar-controls .sidebar-search {
  flex: 1;
  min-width: 0;
  width: auto;
  min-height: 38px;
  padding: 8px 10px;
}
.sidebar .sidebar-controls .theme-toggle {
  position: relative;
  inset: auto;
  flex: 0 0 66px;
  margin: 0;
}
@media (max-width: 700px) {
  .sidebar { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 10px 12px 12px; width: 100%; box-sizing: border-box; }
  .sidebar > .brand { grid-column: 1; grid-row: 1; justify-self: center; margin: 0; width: 148px; }
  .sidebar > .brand::after { display: none; }
  .sidebar .sidebar-controls { grid-column: 1; grid-row: 2; justify-content: center; align-items: center; width: 100%; margin: 0; gap: 10px; min-width: 0; }
  .sidebar .sidebar-controls .sidebar-search { display: flex; justify-content: center; flex: 1 1 0; width: auto; height: 44px; min-height: 44px; padding: 0 10px; }
  .sidebar .sidebar-controls .sidebar-search span { display: inline; font-size: .875rem; }
  .sidebar .sidebar-controls .mobile-menu { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; margin: 0; }
  .sidebar .sidebar-controls .theme-toggle { flex: 0 0 66px; align-self: center; }
  .sidebar > nav { grid-column: 1; grid-row: 3; margin-top: 0; min-width: 0; max-height: calc(100dvh - 164px); overflow-y: auto; overscroll-behavior: contain; }
}
/* Sidebar finish: compact branding, clear groups and restrained teal emphasis. */
@media screen {
  .sidebar {
    background: radial-gradient(ellipse at 0 0, #205055 0, transparent 48%), linear-gradient(165deg, #142e3b, #10232f 75%);
    border-right-color: #ffffff14;
    scrollbar-width: thin;
    scrollbar-color: #49656d transparent;
  }
  .sidebar > .brand { width: 156px; }
  .sidebar > .brand::after { display: none; }
  .sidebar .sidebar-controls { margin-top: 18px; padding-bottom: 16px; border-bottom: 1px solid #ffffff14; }
  .sidebar .sidebar-controls .sidebar-search {
    border-radius: 12px;
    border-color: #ffffff24;
    background: #ffffff09;
    color: #e2efef;
    min-height: 44px;
  }
  .sidebar .sidebar-controls .sidebar-search:hover { background: #ffffff12; border-color: #7ccdc580; }
  .sidebar > nav { margin-top: 10px; }
  .sidebar nav .nav-group { margin-top: 12px; padding-top: 8px; border-top: 1px solid #ffffff10; }
  .sidebar nav .nav-group-toggle { color: #a7c4c6; letter-spacing: .075em; padding-inline: 12px; }
  .sidebar nav a { border: 1px solid transparent; border-radius: 12px; color: #d4e2e7; gap: 10px; }
  .sidebar nav a > .nav-icon { color: #a8c6cd; }
  .sidebar nav a:not(.active):hover { background: #ffffff0b; border-color: #ffffff12; color: #fff; }
  .sidebar nav a.active {
    background: linear-gradient(110deg, #24635f, #214b51);
    border-color: #70c9bd55;
    box-shadow: inset 3px 0 #80d5c7, 0 3px 10px #071b2520;
    color: #fff;
  }
  .sidebar nav a.active > .nav-icon { color: #b4f0e4; }
  .sidebar nav a:focus-visible, .sidebar .sidebar-search:focus-visible { outline: 2px solid #9de6d9; outline-offset: 2px; }
  .sidebar-bottom { border-top-color: #ffffff18; }
}
@media screen and (max-width: 700px) {
  .sidebar > .brand { width: 148px; }
  .sidebar .sidebar-controls { margin-top: 0; padding-bottom: 0; border-bottom: 0; }
  .sidebar > nav { margin-top: 0; }
  .sidebar.menu-open > nav { padding-top: 8px; border-top: 1px solid #ffffff18; }
}
