#navbar.ns-navbar-v2 {
    position: sticky;
    top: 0;
    z-index: var(--ns-z-sticky, 200);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: linear-gradient(180deg, rgba(13, 13, 19, 0.96) 0%, rgba(10, 10, 15, 0.94) 100%);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

#navbar.ns-navbar-v2::before {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(245, 158, 11, 0.45), transparent);
}

#navbar .ns-navbar-inner {
    min-height: 70px;
    gap: 0.75rem;
    position: relative;
}

#navbar .ns-touch-target,
#navbar .nav-link,
#navbar .dropdown-item,
#navbar .netshow-nav-item,
#navbar .netshow-nav-trigger {
    min-height: 44px;
}

#navbar .navbar-icon-btn,
#navbar .navbar-toggler-clean {
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.03);
    color: var(--ns-text-secondary);
}

#navbar .navbar-icon-btn:hover,
#navbar .navbar-toggler-clean:hover {
    border-color: rgba(245, 158, 11, 0.45);
    background: rgba(245, 158, 11, 0.1);
    color: var(--ns-text-primary);
}

#navbar .navbar-icon-btn:focus,
#navbar .navbar-toggler-clean:focus {
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2);
}

#navbar .navbar-menu-icon {
    color: currentColor;
}

#navbar .ns-navbar-brand-wrap {
    background: transparent !important;
    padding: 0;
    border: 0;
}

#navbar .netshow-nav-trigger {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.8rem;
    min-height: 44px;
    padding-inline: 0.75rem;
}

#navbar .netshow-nav-trigger:hover {
    border-color: rgba(245, 158, 11, 0.46);
    background: rgba(245, 158, 11, 0.08);
}

#navbar .netshow-nav-logo {
    width: 30px;
    height: 30px;
    border-radius: 0.55rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

#navbar .netshow-nav-title {
    color: var(--ns-text-primary);
    font-size: 0.94rem;
}

#navbar .netshow-nav-chevron {
    color: var(--ns-text-muted);
}

#navbar .netshow-nav-menu {
    margin-top: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: #101019;
    border-radius: 0.85rem;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.45);
}

#navbar .netshow-nav-item {
    border-radius: 0.65rem;
    color: var(--ns-text-secondary);
    font-size: 0.86rem;
}

#navbar .netshow-nav-item:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.06);
}

#navbar .netshow-nav-item.active {
    background: rgba(245, 158, 11, 0.15);
    color: #ffdca4;
}

#navbar .netshow-nav-item i {
    color: var(--ns-text-muted);
}

#navbar .netshow-nav-item:hover i,
#navbar .netshow-nav-item.active i {
    color: var(--ns-accent);
}

#navbar .navbar-collapse .navbar-nav {
    gap: 0.35rem;
}

#navbar .navbar-nav .nav-link {
    border-radius: 0.72rem;
    font-weight: 600;
    color: var(--ns-text-secondary) !important;
    font-size: 0.86rem;
    padding: 0.5rem 0.78rem !important;
}

#navbar .navbar-nav .nav-link:hover,
#navbar .navbar-nav .dropdown-item:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.06) !important;
}

#navbar .navbar-nav .nav-link.active,
#navbar .navbar-nav .dropdown-item.active {
    color: #ffdca4 !important;
    background: rgba(245, 158, 11, 0.14) !important;
}

#navbar .navbar-nav .nav-link i,
#navbar .dropdown-item i {
    color: var(--ns-text-muted);
    transition: color var(--ns-transition-fast);
}

#navbar .navbar-nav .nav-link:hover i,
#navbar .dropdown-item:hover i,
#navbar .navbar-nav .nav-link.active i,
#navbar .dropdown-item.active i {
    color: var(--ns-accent);
}

#navbar .ns-navbar-actions {
    margin-left: auto;
}

#navbar .ns-user-dropdown-wrap {
    position: relative;
}

#navbar .ns-avatar-trigger {
    padding: 0.2rem !important;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(255, 255, 255, 0.02);
}

#navbar .ns-avatar-trigger:hover {
    border-color: rgba(245, 158, 11, 0.56);
    background: rgba(245, 158, 11, 0.09);
}

#navbar .ns-avatar-trigger::after {
    display: none;
}

#navbar .navbar-avatar {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.16);
}

#navbar .ns-user-dropdown,
#navbar .dropdown-menu,
#navbar .dropdown-menu.bg-dark {
    margin-top: 0.55rem !important;
    border-radius: 0.9rem !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    background: #101019 !important;
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.45) !important;
}

#navbar .ns-user-dropdown {
    min-width: 246px;
}

#navbar .dropdown-menu .nav-link,
#navbar .dropdown-menu .dropdown-item {
    min-height: 44px;
    padding: 0.52rem 0.72rem !important;
    border-radius: 0.65rem !important;
    font-size: 0.84rem !important;
}

#navbar .dropdown-submenu.dropdown-submenu-left {
    right: calc(100% + 0.5rem);
    left: auto;
    top: -0.4rem;
}

/* Launch polish (netshow-signedin-account-section): the account fly-outs open on
   hover only. Mirror that reveal for an explicit .ns-submenu-open state, which the
   navbar JS toggles for keyboard (Tab/Space), touch (tap), and mouse click. JS —
   not CSS :focus-within — drives keyboard reveal so Escape can close a fly-out
   while focus stays on its trigger. Scoped to the account dropdown. */
#navbar .ns-user-dropdown > li.ns-submenu-open > .dropdown-submenu {
    display: block;
}

#navbar .nav-divider,
#navbar .dropdown-menu hr {
    border-color: rgba(255, 255, 255, 0.11) !important;
    opacity: 1;
}

#navbar .toggle {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.75rem;
    padding: 0.25rem 0.3rem;
    margin: 0.2rem auto;
}

#navbar #user_credits .credits-label {
    color: var(--ns-text-muted);
}

#navbar #user_credits .credits-value {
    color: #f7d8a0;
}

#navbar .modal-content-app {
    border-radius: 1rem;
    background: #141420;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

#navbar .modal-content-app h3,
#navbar .modal-content-app p,
#navbar .modal-content-app label,
#navbar .modal-content-app .social-text {
    color: var(--ns-text-primary);
}

#navbar .modal-content-app .form-control {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #fff;
}

#navbar .modal-content-app .btn-primary {
    background: var(--ns-accent);
    border-color: var(--ns-accent);
    color: #1a1a1a;
}

#navbar .modal-content-app .btn-primary:hover {
    background: var(--ns-accent-hover);
    border-color: var(--ns-accent-hover);
}

@media (max-width: 991px) {
    #navbar .ns-navbar-inner {
        min-height: 66px;
    }

    #navbar .navbar-collapse {
        position: absolute;
        top: calc(100% + 0.55rem);
        right: 0.3rem;
        left: 0.3rem;
        background: #101019;
        border: 1px solid rgba(255, 255, 255, 0.11);
        border-radius: 0.9rem;
        padding: 0.6rem;
        box-shadow: 0 16px 30px rgba(0, 0, 0, 0.45);
    }

    #navbar .navbar-collapse .navbar-nav {
        width: 100%;
    }

    #navbar .navbar-collapse .nav-link {
        width: 100%;
    }

    #navbar .ns-navbar-actions {
        gap: 0.7rem !important;
    }
}

@media (max-width: 640px) {
    #navbar .netshow-nav-title {
        display: none;
    }

    #navbar .netshow-nav-trigger {
        padding-inline: 0.55rem;
    }

    #navbar .ns-navbar-actions {
        margin-left: 0;
    }
}

/* ── OPUS5-L07: guest brand mark in the app-shell header ─────────────────────
   layouts/partials/navbar.blade.php kept its whole brand slot inside @auth, so
   a stranger on any layouts/app.blade.php door (/plans, the public agent shelf,
   /docs, /aisolutions, /billing/success) got a header with no logo, no wordmark
   and no anchor resolving to "/". These rules paint the guest brand the blade
   now renders there.

   Scoped to #navbar on purpose: the landing shell has its own .landing-brand
   and never carries #navbar, so the landing/content family is byte-identical
   after this block. Values are lifted from .landing-brand in css/landing.css
   (same dot size, same accent glow, same weight) and expressed in the
   design-system tokens both shells load, so the two headers read as one brand
   instead of two. */
#navbar .ns-guest-brand {
    display: inline-flex;
    align-items: center;
    gap: var(--ns-space-2, 0.5rem);
    min-height: 44px;
    padding-inline: 0.25rem;
    color: var(--ns-text-primary, #ffffff);
    font-size: var(--ns-text-lg, 1.25rem);
    font-weight: var(--ns-font-semibold, 600);
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    border-radius: 0.75rem;
    transition: color 0.18s ease, opacity 0.18s ease;
}

#navbar .ns-guest-brand:hover,
#navbar .ns-guest-brand:focus-visible {
    color: var(--ns-text-primary, #ffffff);
    opacity: 0.86;
}

#navbar .ns-guest-brand:focus-visible {
    outline: 2px solid var(--ns-accent, #f59e0b);
    outline-offset: 3px;
}

#navbar .ns-guest-brand-dot {
    width: 0.85rem;
    height: 0.85rem;
    flex: 0 0 auto;
    border-radius: var(--ns-radius-full, 9999px);
    background: var(--ns-accent, #f59e0b);
    box-shadow: 0 0 0 6px rgba(245, 158, 11, 0.2);
}

/* The wordmark stays put at 375. The authed trigger hides .netshow-nav-title
   below 992px because it sits beside a section label and a chevron; the guest
   bar carries only this mark, a Login link and the toggler, so the word is what
   makes the mark legible as "NetShow" rather than an anonymous dot. */
@media (max-width: 359.98px) {
    #navbar .ns-guest-brand {
        font-size: 1rem;
    }
}
