.nk-header {
  height:var(--nk-header);
  border-bottom:1px solid var(--nk-border);
  background:var(--nk-bg);
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 32px;
  gap:16px
}
.nk-brand {
  display:flex;
  align-items:center;
  gap:20px;
  color:var(--nk-text);
  min-width:0
}
.nk-brand:hover {
  text-decoration:none
}
.nk-brand img {
  width:138px;
  height:46px;
  object-fit:contain
}
.nk-brand-service {
  padding-left:20px;
  border-left:1px solid var(--nk-border);
  font-size:var(--nk-text-sm);
  font-weight:500;
  color:var(--nk-text-subtle);
  display:flex;
  align-items:center;
  gap:8px
}
.nk-brand-service::before {
  content:'';
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--nk-accent)
}
.nk-header-actions {
  display:flex;
  align-items:center;
  gap:12px
}
.nk-profile-link {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--nk-text-subtle);
  font-size:var(--nk-text-sm)
}
.nk-profile-link:hover {
  color:white;
  text-decoration:none
}
.nk-switcher {
  position:relative
}
.nk-app-menu {
  position:absolute;
  right:0;
  top:calc(100% + 12px);
  width:318px;
  max-width:calc(100vw - 32px);
  padding:10px;
  border:1px solid var(--nk-border);
  border-radius:var(--nk-radius-md);
  background:var(--nk-surface);
  box-shadow:var(--nk-shadow-menu)
}
.nk-app-menu .nk-eyebrow {
  padding:12px 10px 4px
}
.nk-app-menu a {
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px;
  border-radius:8px;
  color:var(--nk-text);
  font-size:var(--nk-text-sm)
}
.nk-app-menu a:hover,.nk-app-menu a:focus-visible {
  background:var(--nk-surface-raised);
  text-decoration:none
}
.nk-app-menu a>span:nth-child(2) {
  flex:1
}
.nk-app-menu small {
  display:block;
  margin-top:2px
}
.nk-app-menu a[aria-current=page] {
  background:var(--nk-accent-soft)
}
.nk-app-menu .nk-service-icon {
  width:34px;
  height:34px
}
.nk-icon {
  width:20px;
  height:20px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  vertical-align:middle }
  .nk-icon-button {
    width:42px;
    height:42px;
    padding:10px;
    border:0;
    background:transparent;
    border-radius:8px;
    color:var(--nk-text-subtle) }
    .nk-icon-button:hover {
      background:var(--nk-surface-raised) }
      .nk-profile-link .avatar {
        width:34px;
        height:34px }
        .nk-profile-link>span:last-child {
          max-width:220px;
          overflow:hidden;
          text-overflow:ellipsis }
          .nk-eyebrow {
            font-size:.6875rem;
            font-weight:600;
            letter-spacing:.14em;
            text-transform:uppercase;
            color:var(--nk-text-muted);
            margin:0 0 10px }
            .nk-service-icon {
              display:inline-flex;
              align-items:center;
              justify-content:center;
              border-radius:8px;
              background:var(--nk-surface-raised) }
              .service-web {
                color:#f87171 }
                .service-app {
                  color:#60a5fa }
                  .service-tv {
                    color:#34d399 }
                    .service-account {
                      color:#a78bfa }
                      .current-badge {
                        font-size:.6875rem;
                        color:var(--nk-text-muted);
                        border:1px solid var(--nk-border);
                        border-radius:999px;
                        padding:2px 8px }
                        .header-login {
                          min-height:42px }
                          @media(max-width:1100px) {
                            .nk-header {
                              padding:0 24px }
                            }
                            @media(max-width:900px) {
                              .nk-header {
                                padding:0 20px;
                                gap:10px }
                                .nk-brand {
                                  gap:12px }
                                  .nk-brand-service {
                                    padding-left:12px }
                                    .nk-profile-link>span:last-child {
                                      display:none }
                                    }
                                    @media(max-width:640px) {
                                      :root {
                                        --nk-header:68px }
                                        .nk-header {
                                          padding:0 14px }
                                          .nk-brand img {
                                            width:104px;
                                            height:36px }
                                            .nk-brand-service {
                                              font-size:.75rem;
                                              gap:6px;
                                              padding-left:10px }
                                              .nk-header-actions {
                                                gap:6px }
                                                .nk-header .nk-profile-link {
                                                  display:none }
                                                }
                                                @media(max-width:440px) {
                                                  .header-login {
                                                    width:42px;
                                                    padding:10px }
                                                    .header-login>span {
                                                      position:absolute;
                                                      width:1px;
                                                      height:1px;
                                                      clip-path:inset(50%);
                                                      overflow:hidden }
                                                    }
                                                    .nk-mobile-toggle {
                                                      display:none }
                                                      @media(max-width:900px) {
                                                        .nk-mobile-toggle {
                                                          display:inline-flex }
                                                          .main-nav {
                                                            display:none }
                                                            .main-nav[data-open=true] {
                                                              display:flex }
                                                            }

.nk-profile-link .avatar { font-size:.875rem; color:#a7f3d0 }
/* Reserve Account's service-label slot so different names do not shift the logo. */
.nk-brand-service { min-width:92px }
@media(max-width:900px) { .nk-brand-service { min-width:84px } }
@media(max-width:640px) { .nk-brand-service { min-width:72px } }
@media(max-width:359px) { .nk-brand-service { min-width:0 } }
/* Public TV keeps a login action next to the launcher; anchor its mobile menu to
   the viewport so that the extra action cannot push the menu off the left edge. */
@media(max-width:640px) {
  .nk-app-menu {
    position:fixed;
    top:calc(var(--nk-header) + 10px);
    right:14px;
    width:min(318px,calc(100% - 28px));
    max-height:calc(100svh - var(--nk-header) - 24px);
    overflow-y:auto;
  }
}
