/* Public shell owner. Scoped away from standalone exams, contracts and admin. */
[data-public-shell] {font-family:var(--font-family-base);font-size:var(--font-size-base)}
html[lang="en"] [data-public-shell] {--font-family-base:var(--font-family-latin)}
html[lang="fa"] [data-public-shell] {line-height:1.9}
[data-public-shell] :is(button,input,select,textarea) {font-family:inherit}
[data-public-shell] .button {min-height:48px;border-radius:var(--radius-md);padding:12px 20px;font-size:1rem;touch-action:manipulation}
[data-public-shell] .button:hover {transform:none;box-shadow:var(--shadow-sm)}
[data-public-shell] .button.secondary:hover {box-shadow:none}
[data-public-shell] .button:active {box-shadow:none;opacity:.85}
[data-public-shell] .field :is(input,select,textarea) {font-size:1rem;min-height:48px}
[data-public-shell] .field-help {font-size:var(--font-size-sm);line-height:1.75}
[data-public-shell] .site-header {background:var(--surface-page);backdrop-filter:none}
[data-public-shell] .nav-wrap {height:80px;gap:24px}
[data-public-shell] .site-nav {gap:16px}
[data-public-shell] .nav-primary {gap:8px}
[data-public-shell] .nav-primary>a,
[data-public-shell] .nav-utilities>.nav-utility {font-size:var(--font-size-sm);font-weight:700;min-height:48px;padding-inline:12px}
[data-public-shell] .nav-primary>a[aria-current="page"] {box-shadow:inset 0 -2px var(--action-brand-bg)}
[data-public-shell] .nav-utilities {gap:8px}
[data-public-shell] :is(.brand,.nav-primary,.nav-utilities) {flex-shrink:0}
[data-public-shell] .nav-cta {min-height:48px;border-radius:var(--radius-md);font-size:var(--font-size-sm)}
[data-public-shell] .nav-cta:hover {transform:none;box-shadow:none;background:var(--action-brand-bg-hover)}
/* The project action stays visible even while the phone menu is closed. */
[data-public-shell] .nav-wrap>.nav-cta {flex-shrink:0;white-space:nowrap;background:var(--action-brand-bg);color:var(--action-brand-text);border-color:var(--action-brand-bg)}
[data-public-shell] .nav-wrap>.nav-cta:hover {background:var(--action-brand-bg-hover)}
.nav-preferences {position:relative;font-size:var(--font-size-sm)}
.nav-preferences>summary {display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 12px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;list-style:none}
.nav-preferences>summary::-webkit-details-marker {display:none}
.nav-preferences[open]>summary {background:var(--surface-subtle);border-color:var(--border-default);color:var(--text-primary)}
.nav-preferences-panel {position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:var(--z-popover);width:240px;padding:12px;display:grid;gap:8px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-md)}
.nav-preferences:not([open])>.nav-preferences-panel {display:none}
[data-public-shell] .nav-preferences-panel :is(.nav-utility,.theme-toggle) {display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);font:inherit;gap:10px;margin:0}
[data-public-shell] .nav-preferences-panel .theme-toggle span {display:inline}
[data-public-shell] .nav-preferences-panel .sound-toggle {justify-content:flex-start}
.menu-project {display:none}
.brand-wordmark {font-weight:900;letter-spacing:-.035em}
.welcome-brand>.brand-wordmark {font-size:1.8rem}
.nav-preferences-panel [data-sound-state] {margin-inline-start:auto;color:var(--text-secondary);font-size:.8125rem}
.nav-preferences-panel :is(a,button):hover {background:var(--surface-subtle)}
@media(min-width:1101px) {
  [data-public-shell] .nav-primary .ui-icon {display:none}
}
@media(min-width:1101px) and (max-width:1280px) {
  [data-public-shell] .nav-wrap {gap:12px}
  [data-public-shell] .site-nav {gap:8px}
  [data-public-shell] .nav-primary,
  [data-public-shell] .nav-utilities {gap:2px}
  [data-public-shell] .nav-primary>a,
  [data-public-shell] .nav-utilities>.nav-utility,
  .nav-preferences>summary {padding-inline:8px;font-size:.8125rem}
}
/* Collapse before long English/staff labels exhaust the desktop row. */
@media(max-width:1100px) {
  [data-public-shell].menu-open {overflow:hidden}
  [data-public-shell] .site-header {height:68px;z-index:70}
  [data-public-shell] .nav-wrap {height:68px}
  [data-public-shell] .menu-button {position:relative;z-index:73;display:grid;place-content:center;width:48px;height:48px;padding:12px}
  [data-public-shell] .menu-button .ui-icon {width:22px;height:22px}
  [data-public-shell] .nav-wrap {gap:10px}
  [data-public-shell] .nav-wrap>.menu-button {order:3;flex-shrink:0}
  [data-public-shell] .nav-wrap>.nav-cta {margin-inline-start:auto;padding:10px 12px;font-size:.8125rem}
  [data-public-shell] .nav-wrap>.nav-cta .ui-icon {display:none}
  [data-public-shell] .site-header .site-nav {position:fixed;z-index:72;inset:80px 14px auto;max-height:calc(100dvh - 104px - var(--mobile-tabbar-height,0px) - env(safe-area-inset-bottom,0px));padding:16px;border:1px solid var(--border-default);border-radius:var(--radius-lg);gap:16px;flex-direction:column;align-items:stretch;justify-content:flex-start;overflow-y:auto;background:var(--surface-card);box-shadow:var(--shadow-md)}
  [data-public-shell] .site-nav:not(.is-open) {visibility:hidden;opacity:0;pointer-events:none}
  [data-public-shell] .site-nav.is-open {visibility:visible;opacity:1;transform:none;pointer-events:auto}
  [data-public-shell] .nav-primary {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
  [data-public-shell] .nav-primary>a {min-height:96px;white-space:normal;flex-direction:column;justify-content:center;text-align:center;gap:10px;font-size:.9375rem;background:var(--surface-subtle);border:1px solid var(--border-default)}
  [data-public-shell] .nav-primary .ui-icon {width:26px;height:26px;color:var(--text-link)}
  [data-public-shell] .site-nav .menu-project {display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:12px 18px;border-radius:var(--radius-md);background:var(--action-brand-bg);color:var(--action-brand-text);font-weight:700}
  [data-public-shell] .site-nav .menu-project:hover {background:var(--action-brand-bg-hover)}
  [data-public-shell] .menu-button {border:1px solid var(--border-strong);background:var(--surface-card);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer}
  [data-public-shell] .menu-button:hover {background:var(--surface-subtle);border-color:var(--text-link)}
  [data-public-shell].menu-open .mobile-tabbar {visibility:hidden;pointer-events:none}
  [data-public-shell] .nav-utilities {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:16px;border-top:1px solid var(--border-default);margin:0}
  [data-public-shell] .nav-utilities>.nav-utility {grid-column:auto;font-size:.875rem;border:1px solid var(--border-default)}
  [data-public-shell] .nav-utilities>.nav-management {grid-column:1/-1}
  [data-public-shell] .nav-preferences {grid-column:1/-1}
  .nav-preferences>summary {border-color:var(--border-default);color:var(--text-primary);font-weight:700}
  .nav-preferences>summary::after {content:"+";margin-inline-start:auto}
  .nav-preferences[open]>summary::after {content:"−"}
  .nav-preferences-panel {position:static;width:100%;box-shadow:none;margin-top:8px}
  [data-public-shell] .nav-scrim {display:block;position:fixed;z-index:71;inset:68px 0 0;border:0;background:var(--surface-overlay);visibility:hidden;opacity:0;pointer-events:none}
  [data-public-shell] .nav-scrim.is-open {visibility:visible;opacity:1;pointer-events:auto}
}
@media(max-width:820px) {
  [data-public-shell] {padding-bottom:calc(var(--mobile-tabbar-height) + env(safe-area-inset-bottom,0px))}
  [data-public-shell] .mobile-tabbar {background:var(--surface-page);backdrop-filter:none;padding-inline:8px;gap:4px}
  [data-public-shell] .mobile-tabbar>a {font-size:.75rem;min-height:52px;line-height:1.4;color:var(--text-secondary)}
  [data-public-shell] .mobile-tabbar>a[aria-current="page"] {background:var(--surface-subtle);color:var(--text-primary)}
  [data-public-shell] .mobile-tabbar a[aria-current="page"]::before {top:0}
  [data-public-shell] :is(input,select,textarea,a,button,summary) {scroll-margin-block:90px 100px}
}
@media(prefers-reduced-motion:reduce) {
  [data-public-shell] :is(.button,.nav-cta,.site-nav,.nav-scrim) {transition:none;transform:none}
}
