/* Menús compartidos baseados na guía do profesorado.
   Cargar despois de comun.css. Non require guias.css nin Tailwind. */
.sm-menu { min-width: 0; font-family: var(--sm-font-body); }
.sm-menu .sm-menu__list { margin: 0; padding: 0; list-style: none; }
.sm-menu .sm-menu__list > li { min-width: 0; margin: 0; }
.sm-menu--tabs, .sm-menu--bar { padding: 0.5rem; border-radius: var(--sm-radius); background: var(--sm-navy); }
.sm-menu--tabs > .sm-menu__list, .sm-menu--bar > .sm-menu__list { display: flex; gap: 0.4rem; overflow-x: auto; scrollbar-width: thin; }
.sm-page .sm-menu__item {
  display: flex; align-items: center; gap: 0.65rem; min-height: 3rem;
  padding: 0.75rem 1rem; border: 1px solid transparent; border-bottom: 4px solid transparent;
  border-radius: 0.5rem; background: transparent; color: var(--sm-border-soft);
  font-size: var(--sm-text-sm); font-weight: var(--sm-weight-bold); line-height: 1.2; text-align: start;
  text-decoration: none; flex-shrink: 0; white-space: nowrap;
}
.sm-page .sm-menu__item:hover { background: var(--sm-on-color-hover); color: var(--sm-on-color); }
.sm-page .sm-menu__item[aria-selected="true"], .sm-page .sm-menu__item[aria-current] { border-bottom-color: var(--sm-pink); background: var(--sm-on-color-wash); color: var(--sm-on-color); }
.sm-page .sm-menu__item:focus-visible { outline: 3px solid var(--sm-on-color); outline-offset: -4px; }
.sm-menu__icon { width: 1.4rem; height: 1.4rem; flex: 0 0 auto; color: var(--sm-pink-soft); }
.sm-menu__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 1.5rem; height: 1.5rem; padding-inline: 0.2rem; border-radius: 999px; background: var(--sm-navy); color: var(--sm-on-color); font-size: var(--sm-text-tiny); }
.sm-menu--sidebar { padding: 1rem; border: 1px solid var(--sm-border); border-radius: var(--sm-radius); background: var(--sm-surface); }
.sm-menu--sidebar > .sm-menu__list { display: grid; gap: 0.5rem; }
.sm-page .sm-menu--sidebar .sm-menu__item { min-height: 2.75rem; padding: 0.65rem 0.75rem; border: 0; color: var(--sm-navy); background: var(--sm-background); white-space: normal; }
.sm-page .sm-menu--sidebar .sm-menu__item:hover, .sm-page .sm-menu--sidebar .sm-menu__item[aria-current] { background: var(--sm-navy-light); color: var(--sm-navy); }
.sm-page .sm-menu--sidebar .sm-menu__item[aria-current] { box-shadow: inset 3px 0 0 var(--sm-pink); }
.sm-page .sm-menu--sidebar .sm-menu__item--accent { color: var(--sm-pink-dark); background: var(--sm-pink-light); }
.sm-menu__item--accent .sm-menu__badge { background: var(--sm-pink-dark); }
.sm-page .sm-menu--sidebar .sm-menu__item:focus-visible { outline-color: var(--sm-navy); }
.sm-menu--sidebar .sm-menu__list .sm-menu__list { padding-inline-start: 1.7rem; margin-block: 0.3rem; }
.sm-page .sm-menu--sidebar .sm-menu__list .sm-menu__list .sm-menu__item { background: transparent; color: var(--sm-muted); font-size: var(--sm-text-label); font-weight: var(--sm-weight-medium); }
.sm-page .sm-menu--sidebar .sm-menu__list .sm-menu__list .sm-menu__item:hover { color: var(--sm-pink-dark); background: var(--sm-pink-light); }
.sm-menu--bar .sm-menu__list .sm-menu__list { padding: 0.5rem; }
@media (max-width: 1023px) {
  .sm-menu--tabs > .sm-menu__list, .sm-menu--bar > .sm-menu__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr)); overflow: visible; gap: 0.55rem; }
  .sm-page .sm-menu--tabs .sm-menu__item, .sm-page .sm-menu--bar .sm-menu__item { width: 100%; padding: 0.75rem; border: 1px solid var(--sm-on-color-border-soft); border-radius: 0.9rem; background: var(--sm-on-color-wash); white-space: normal; }
  .sm-page .sm-menu--tabs .sm-menu__item[aria-selected="true"], .sm-page .sm-menu--bar .sm-menu__item[aria-current] { background: var(--sm-on-color); border-color: var(--sm-on-color); color: var(--sm-navy); box-shadow: var(--sm-shadow); }
  .sm-menu__item[aria-selected="true"] .sm-menu__icon, .sm-menu__item[aria-current] .sm-menu__icon { color: var(--sm-pink-dark); }
  .sm-page .sm-menu__item[aria-selected="true"]:focus-visible, .sm-page .sm-menu__item[aria-current]:focus-visible { outline-color: var(--sm-navy); }
}
@media (max-width: 479px) {
  .sm-menu--tabs > .sm-menu__list, .sm-menu--bar > .sm-menu__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm-page .sm-menu--tabs .sm-menu__item, .sm-page .sm-menu--bar .sm-menu__item { min-height: 4.25rem; font-size: var(--sm-text-compact); gap: 0.5rem; }
}
@media print { .sm-page .sm-menu { display: none !important; } }
