/* Consolidated DS 1.4: 1.3 header/typography + 1.4 auxiliary text contrast.
   App adaptations remain separate from byte-identical official resources. */
.linux-topbar {
  position: relative;
  height: 84px;
  min-height: 84px;
  padding-block: 0;
  flex-wrap: nowrap;
}
.header-menu { display: contents; }
.menu-toggle, .mobile-app-name, .theme-symbol { display: none; }
.app-identity { font-size: 18px; font-weight: 600; }
.app-identity > span { font-size: 12px; font-weight: 400; }
.main-nav a[aria-current] {
  background: var(--nc-soft);
  box-shadow: 0 1px 3px #0f172a08;
  border-radius: 8px;
}
.linux-topbar .main-nav a { min-height: 44px; }
.linux-topbar .theme-control { min-height: 44px; }
.linux-topbar .profile-control { min-width: 44px; }
.theme-symbol .ui-icon { width: 20px; height: 20px; }
.ecv-ui .ecv-btn--primary { min-height: 46px; font-size: 14px; }
.ecv-ui .mission-validate { font-size: 14px; }
.compact-map .device-icon,
.compact-map .map-router .device-icon { width: 72px; height: 72px; }
[data-ecv-mode="dark"] .device-icon[data-device="router"],
[data-ecv-mode="dark"] .device-icon[data-device="switch"] { filter: none; }
.terminal-body { font-size: 14px; }
.terminal-bottom { font-size: 12px; }
.terminal-tag { font-size: 11px; letter-spacing: .4px; }
.mission-reward span, .unit-meta, .unit-number, .level { font-size: 12px; }
.mission-demo, .demo-disclosure { font-size: 12px; }
.ecv-ui summary:focus-visible { outline: 3px solid var(--nc-ink); outline-offset: 3px; }
@media(max-width:1280px) {
  .linux-topbar { gap: 16px; }
}
@media(max-width:980px) {
  .linux-topbar { display: flex; height: 68px; min-height: 68px; padding: 0 24px; gap: 12px; }
  .linux-topbar::after { content: none; }
  .linux-topbar .brand { display: flex; align-items: flex-start; flex-direction: column; gap: 0; min-height: 44px; margin: 0 auto 0 0; }
  .linux-topbar .brand-logo { width: 180px; height: 30px; }
  .mobile-app-name { display: block; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ecv-text); }
  .app-identity { display: none; }
  .theme-label { display: none; }
  .theme-symbol { display: grid; place-items: center; }
  .linux-topbar .theme-control { display: grid; place-items: center; padding: 0; width: 44px; height: 44px; min-height: 44px; margin: 0; order: 0; }
  .menu-toggle { display: grid; order: 0; }
  .header-menu { display: none; position: absolute; z-index: 20; right: 16px; top: 76px; width: min(340px,calc(100vw - 32px)); padding: 12px; background: var(--ecv-surface); border: 1px solid var(--ecv-border); border-radius: 12px; box-shadow: 0 12px 30px #0f172a1a; }
  .header-menu[data-open] { display: flex; flex-direction: column; gap: 10px; }
  .linux-topbar .main-nav { display: flex; flex-direction: column; align-items: stretch; flex: none; width: 100%; order: 0; margin: 0; gap: 4px; }
  .linux-topbar .main-nav a { justify-content: flex-start; padding: 10px 12px; font-size: 14px; }
  .linux-topbar .header-actions { display: flex; flex-direction: column; align-items: stretch; gap: 6px; border-top: 1px solid var(--ecv-border); padding-top: 10px; }
  .linux-topbar .aula-link { display: flex; padding: 10px 12px; min-height: 44px; order: 0; font-size: 14px; }
  .linux-topbar .profile-control { display: flex; justify-content: flex-start; padding: 6px 12px; min-height: 44px; order: 0; }
  .profile-name { display: inline; }
  .terminal-top h2 { font-size: 12px; }
}
@media(max-width:640px) {
  .linux-topbar { padding-inline: 16px; gap: 10px; }
  .compact-map .device-icon,
  .compact-map .map-router .device-icon { width: 64px; height: 64px; }
  .terminal-body { font-size: 14px; }
  .terminal-top .terminal-dots { display: none; }
  .terminal-bottom { flex-wrap: wrap; font-size: 12px; }
}
@media(max-width:380px) {
  .linux-topbar .brand-logo { width: 172px; height: 28px; }
  .compact-map .device-icon,
  .compact-map .map-router .device-icon { width: 52px; height: 60px; }
  .terminal-tag { font-size: 10px; }
}
.ecv-ui button { font-weight: 600; }
.linux-topbar .profile-control .avatar { width: 30px; height: 30px; }
