:root {
    --panel-accent: #ff3b46;
    --panel-purple: #7557ff;
    --panel-blue: #2f80ed;
    --panel-green: #19a974;
    --panel-amber: #f59e0b;
    --panel-surface: #ffffff;
    --panel-muted: #748096;
    --panel-border: #e8ebf2;
}

body { background: #f5f7fb; }
.panel-wordmark { min-width: 0 !important; width: auto !important; margin-left: 14px !important; font-weight: 800; letter-spacing: -.25px; color: #27304a !important; }
#nsofts_header, #nsofts_sidebar, .card { box-shadow: 0 12px 34px rgba(31, 40, 72, .07); }
#nsofts_sidebar { border: 1px solid rgba(224, 228, 238, .8); }
.nsofts-sidebar-nav__link { border-radius: 12px; margin: 3px 10px; }
.nsofts-sidebar-nav__link.active { background: linear-gradient(135deg, rgba(255,59,70,.14), rgba(117,87,255,.11)); color: var(--panel-accent); }
.nsofts-sidebar-nav__link.active:before { display: none; }
.modern-dashboard { padding-bottom: 32px; }
.dashboard-hero { min-height: 190px; border-radius: 24px; padding: 34px 38px; color: white; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: radial-gradient(circle at 92% 0%, rgba(255,255,255,.2), transparent 32%), linear-gradient(130deg, #191d33 0%, #31284a 56%, #bd2738 120%); box-shadow: 0 22px 52px rgba(32, 25, 58, .22); overflow: hidden; }
.dashboard-hero h1 { color: white; font-size: 34px; margin: 8px 0; font-weight: 750; }
.dashboard-hero p { margin: 0; color: rgba(255,255,255,.74); font-size: 15px; }
.dashboard-kicker { font-size: 11px; letter-spacing: 2.4px; font-weight: 750; color: #ff8d94; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.hero-actions .btn { border-radius: 12px; padding: 11px 16px; font-weight: 650; }
.metric-card { height: 100%; min-height: 142px; display: flex; align-items: center; gap: 18px; padding: 24px; border-radius: 20px; background: var(--panel-surface); border: 1px solid var(--panel-border); box-shadow: 0 12px 32px rgba(31, 40, 72, .06); }
.metric-icon { flex: 0 0 54px; width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; font-size: 25px; }
.metric-card span { display: block; color: var(--panel-muted); font-size: 13px; font-weight: 600; }
.metric-card strong { display: block; color: #22283a; font-size: 31px; line-height: 1.15; margin: 4px 0; }
.metric-card small { color: #9aa3b5; }
.metric-primary .metric-icon { color: var(--panel-accent); background: rgba(255,59,70,.11); }
.metric-success .metric-icon { color: var(--panel-green); background: rgba(25,169,116,.11); }
.metric-blue .metric-icon { color: var(--panel-blue); background: rgba(47,128,237,.11); }
.metric-amber .metric-icon { color: var(--panel-amber); background: rgba(245,158,11,.12); }
.modern-card { border: 1px solid var(--panel-border); border-radius: 20px; overflow: hidden; }
.modern-card-header { border: 0; background: transparent; padding: 24px 26px 8px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.modern-card-header h5 { margin: 0 0 4px; color: #252b3e; font-weight: 750; }
.modern-card-header p { margin: 0; color: var(--panel-muted); font-size: 13px; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; background: #f2faf6; color: #27825f; padding: 7px 11px; border-radius: 999px; font-size: 11px; font-weight: 650; }
.status-pill i { width: 7px; height: 7px; border-radius: 50%; background: #28b17d; box-shadow: 0 0 0 4px rgba(40,177,125,.12); }
.activity-chart { height: 280px; padding: 25px 28px 22px; display: flex; align-items: stretch; justify-content: space-between; gap: 18px; }
.chart-column { min-width: 32px; flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.chart-track { flex: 1; width: 100%; max-width: 46px; border-radius: 12px; background: #f2f4f8; display: flex; align-items: flex-end; overflow: hidden; }
.chart-bar { width: 100%; min-height: 7px; border-radius: 12px; background: linear-gradient(180deg, #ff6c75, #d92f43); box-shadow: 0 8px 18px rgba(217,47,67,.22); }
.chart-value { font-size: 12px; font-weight: 700; color: #34394a; }
.chart-label { font-size: 11px; color: #929bad; }
.quick-list { padding: 13px 22px 22px; }
.quick-list a { color: #31374a; text-decoration: none; display: flex; align-items: center; justify-content: space-between; padding: 15px 4px; border-bottom: 1px solid #eef0f5; }
.quick-list a:last-child { border-bottom: 0; }
.quick-list a span { display: flex; gap: 11px; align-items: center; }
.quick-list a span i { color: var(--panel-accent); font-size: 19px; }
.quick-list strong { padding: 4px 9px; border-radius: 9px; background: #f1f3f7; }
.modern-table thead th { background: #f8f9fc; border: 0; color: #7c8598; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; padding: 13px 22px; }
.modern-table td { border-color: #eff1f5; padding: 15px 22px; color: #4c5365; }
.user-cell { display: flex; align-items: center; gap: 11px; }
.user-cell > span { width: 38px; height: 38px; display: grid; place-items: center; color: white; font-weight: 700; border-radius: 12px; background: linear-gradient(145deg, #ff5d67, #7b55e9); }
.user-cell strong, .user-cell small { display: block; }
.user-cell small { color: #98a0b0; font-size: 11px; margin-top: 2px; }
.soft-badge { display: inline-block; padding: 6px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.soft-badge.green { color: #16815a; background: #eaf8f2; }
.soft-badge.red { color: #c63b49; background: #fff0f1; }
.soft-badge.blue { color: #286cb8; background: #ecf5ff; }
.soft-badge.purple { color: #6b4bc5; background: #f2edff; }
.soft-badge.amber { color: #a96508; background: #fff6df; }
.device-cell { display:flex; align-items:center; gap:12px; min-width:180px; }
.device-cell > span { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:13px; color:#fff; font-size:12px; font-weight:800; background:linear-gradient(145deg,#2f80ed,#7557ff); box-shadow:0 8px 18px rgba(79,92,215,.2); }
.device-cell strong, .device-cell small { display:block; }
.device-cell small { color:#98a0b0; font-size:11px; margin-top:2px; }
.device-code { letter-spacing:1.7px; color:#293044; font-size:15px; }
.empty-state { text-align: center; padding: 48px !important; }
.empty-state i, .empty-state strong, .empty-state span { display: block; }
.empty-state i { font-size: 32px; color: var(--panel-accent); }
.empty-state strong { margin: 8px 0 3px; color: #3e4558; }
.empty-state span { color: #939cad; }
.page-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin-bottom:22px; }
.page-heading h1 { font-size:28px; color:#252b3e; margin:0 0 4px; }
.page-heading p { color:var(--panel-muted); margin:0; }
.filter-card { border:1px solid var(--panel-border); border-radius:18px; }
body.nsofts-theme-dark { --panel-surface:#202225; --panel-border:#303338; --panel-muted:#a1a7b2; background:#17191c; }
body.nsofts-theme-dark .metric-card, body.nsofts-theme-dark .modern-card { background:var(--panel-surface); }
body.nsofts-theme-dark .metric-card strong, body.nsofts-theme-dark .modern-card-header h5, body.nsofts-theme-dark .quick-list a { color:#f2f3f5; }
body.nsofts-theme-dark .panel-wordmark, body.nsofts-theme-dark .device-code { color:#f2f3f5 !important; }
body.nsofts-theme-dark .chart-track, body.nsofts-theme-dark .quick-list strong, body.nsofts-theme-dark .modern-table thead th { background:#282b30; }
body.nsofts-theme-dark .modern-table td, body.nsofts-theme-dark .quick-list a { border-color:#303338; }
@media (max-width: 767px) { .dashboard-hero { padding:26px; align-items:flex-start; flex-direction:column; } .activity-chart { gap:7px; padding-left:14px; padding-right:14px; } .modern-card-header { align-items:flex-start; flex-direction:column; } }
.modern-login-page { background: radial-gradient(circle at 15% 10%, rgba(255,59,70,.16), transparent 34%), radial-gradient(circle at 90% 90%, rgba(117,87,255,.16), transparent 34%), #f5f7fb; }
.modern-login-page #nsofts_header { background: transparent; box-shadow: none; }
.modern-login-page .nsofts-auth .card { border: 1px solid rgba(255,255,255,.8); border-radius: 24px; box-shadow: 0 30px 70px rgba(31,40,72,.16); overflow: hidden; }
.modern-login-page .nsofts-auth .card:before { content:""; display:block; height:6px; background:linear-gradient(90deg,#ff3b46,#7b55e9); }
.modern-login-page .form-control { min-height: 48px; border-radius: 12px; }
.modern-login-page .btn-primary { min-height: 49px; border-radius: 12px; background: linear-gradient(100deg,#e83348,#ff5862); border: 0; box-shadow: 0 12px 24px rgba(232,51,72,.22); }

/* Identidade visual Smart 2.5: azul profundo, violeta e brilho neon. */
:root {
    --panel-accent: #7758ff;
    --panel-purple: #9b4dff;
    --panel-blue: #1677ff;
    --panel-deep: #080d20;
    --panel-deep-soft: #101833;
    --panel-glow: rgba(105, 87, 255, .34);
}

body {
    background:
        radial-gradient(circle at 80% 0%, rgba(67, 83, 255, .08), transparent 26%),
        #f4f6fb;
}

#nsofts_header {
    background: linear-gradient(112deg, #080d20 0%, #101735 56%, #171443 100%);
    border-bottom: 1px solid rgba(126, 108, 255, .25);
    box-shadow: 0 10px 32px rgba(13, 18, 49, .18);
}

#nsofts_header .panel-wordmark,
#nsofts_header .nsofts-header-nav__link,
#nsofts_header #nsofts_hamburger {
    color: #fff !important;
}

#nsofts_sidebar {
    background: linear-gradient(180deg, #0b1025 0%, #101735 58%, #16113b 100%);
    border: 0;
    box-shadow: 12px 0 34px rgba(12, 17, 46, .16);
}

#nsofts_sidebar .nsofts-sidebar-nav__link {
    color: rgba(229, 233, 255, .76);
    border: 1px solid transparent;
    transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
}

#nsofts_sidebar .nsofts-sidebar-nav__link:hover {
    color: #fff;
    transform: translateX(3px);
    background: rgba(101, 91, 255, .11);
    border-color: rgba(116, 102, 255, .18);
}

#nsofts_sidebar .nsofts-sidebar-nav__link.active {
    color: #fff;
    background: linear-gradient(105deg, rgba(115, 77, 255, .88), rgba(31, 119, 255, .8));
    border-color: rgba(186, 177, 255, .48);
    box-shadow: 0 10px 25px rgba(61, 76, 230, .28), inset 0 1px rgba(255, 255, 255, .18);
}

#nsofts_sidebar .nsofts-sidebar-nav__icon {
    color: #9f9cff;
}

#nsofts_sidebar .nsofts-sidebar-nav__link.active .nsofts-sidebar-nav__icon,
#nsofts_sidebar .nsofts-sidebar-nav__link:hover .nsofts-sidebar-nav__icon {
    color: #fff;
}

.sidebar-featured-item {
    margin: 10px 0 5px;
}

.sidebar-featured-item .nsofts-sidebar-nav__link:not(.active) {
    color: #f1efff !important;
    background: linear-gradient(105deg, rgba(124, 77, 255, .19), rgba(31, 119, 255, .14));
    border-color: rgba(129, 116, 255, .28) !important;
}

.sidebar-secondary-start {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(176, 173, 255, .13);
}

.card,
.filter-card,
.modern-card,
.metric-card {
    border-color: rgba(78, 91, 153, .12);
    box-shadow: 0 16px 38px rgba(31, 43, 91, .07);
}

.btn-primary {
    border: 0;
    background: linear-gradient(105deg, #7654ff, #1978ff);
    box-shadow: 0 10px 24px rgba(70, 84, 230, .23);
}

.btn-primary:hover,
.btn-primary:focus {
    background: linear-gradient(105deg, #885cff, #2587ff);
    box-shadow: 0 12px 30px rgba(76, 86, 239, .34);
}

#nsofts_footer {
    color: #707997;
}

/* Remove os últimos acentos vermelhos herdados do tema antigo. */
.dashboard-hero {
    background:
        radial-gradient(circle at 92% 0%, rgba(255, 255, 255, .20), transparent 32%),
        linear-gradient(130deg, #0b1230 0%, #25265b 54%, #6135bf 100%);
}

.dashboard-kicker { color: #a8b4ff; }
.metric-primary .metric-icon { color: #745cff; background: rgba(103, 85, 255, .12); }
.chart-bar { background: linear-gradient(180deg, #238dff, #7654ff); box-shadow: 0 8px 18px rgba(74, 83, 222, .22); }
.user-cell > span { background: linear-gradient(145deg, #238dff, #8051ff); }

/* Login sem imagem externa: aparece imediatamente e mantém o efeito neon leve. */
.modern-login-page {
    min-height: 100vh;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #eef1ff;
    background:
        radial-gradient(circle at 12% 18%, rgba(130, 45, 255, .30), transparent 30%),
        radial-gradient(circle at 88% 78%, rgba(0, 132, 255, .26), transparent 32%),
        linear-gradient(135deg, #050816 0%, #0a1130 50%, #150b39 100%);
}

.modern-login-page::before,
.modern-login-page::after {
    content: "";
    position: fixed;
    z-index: -1;
    width: 52vw;
    height: 52vw;
    max-width: 760px;
    max-height: 760px;
    border: 1px solid rgba(94, 151, 255, .24);
    border-radius: 38% 62% 67% 33% / 41% 46% 54% 59%;
    filter: blur(.2px);
    opacity: .75;
    transition: transform 1.4s ease, filter 1.4s ease;
}

.modern-login-page::before {
    top: -30vw;
    right: -14vw;
    background: linear-gradient(145deg, rgba(38, 117, 255, .11), rgba(142, 61, 255, .08));
    box-shadow: 0 0 110px rgba(42, 107, 255, .18);
}

.modern-login-page::after {
    left: -18vw;
    bottom: -35vw;
    background: linear-gradient(145deg, rgba(150, 44, 255, .10), rgba(26, 111, 255, .08));
    box-shadow: 0 0 120px rgba(128, 47, 255, .20);
}

.modern-login-page:hover::before { transform: translate(-2vw, 3vw) rotate(8deg); filter: brightness(1.25); }
.modern-login-page:hover::after { transform: translate(3vw, -2vw) rotate(-8deg); filter: brightness(1.25); }

.modern-login-page #nsofts_header {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.modern-login-page #nsofts_header .nsofts-header-nav { display: none; }

.modern-login-page .nsofts-auth .card {
    position: relative;
    border: 1px solid rgba(139, 150, 255, .24);
    border-radius: 26px;
    color: #eef1ff;
    background: linear-gradient(145deg, rgba(19, 27, 61, .88), rgba(13, 18, 45, .82));
    box-shadow: 0 34px 80px rgba(0, 0, 15, .52), 0 0 44px rgba(80, 72, 255, .10);
    backdrop-filter: blur(20px);
    overflow: hidden;
    transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.modern-login-page .nsofts-auth .card:hover {
    transform: translateY(-3px);
    border-color: rgba(132, 140, 255, .52);
    box-shadow: 0 40px 90px rgba(0, 0, 18, .58), 0 0 54px rgba(77, 89, 255, .21);
}

.modern-login-page .nsofts-auth .card::before {
    height: 3px;
    background: linear-gradient(90deg, #9c45ff, #5668ff 48%, #149aff);
    box-shadow: 0 0 18px rgba(100, 107, 255, .8);
}

.modern-login-page .login-brand__name {
    display: inline-block;
    color: #fff;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -.04em;
    text-shadow: 0 0 25px rgba(115, 102, 255, .42);
}

.modern-login-page .form-label,
.modern-login-page .form-check-label,
.modern-login-page .nsofts-input-icon__left,
.modern-login-page .nsofts-input-icon__right {
    color: rgba(235, 238, 255, .8);
}

.modern-login-page .form-control {
    min-height: 50px;
    color: #f5f6ff;
    border: 1px solid rgba(143, 154, 222, .25);
    border-radius: 13px;
    background: rgba(7, 12, 34, .62);
    box-shadow: inset 0 1px rgba(255, 255, 255, .035);
}

.modern-login-page .form-control::placeholder { color: rgba(207, 212, 239, .48); }
.modern-login-page .form-control:focus {
    border-color: rgba(115, 108, 255, .82);
    background: rgba(7, 12, 34, .82);
    box-shadow: 0 0 0 4px rgba(93, 93, 255, .13), 0 0 26px rgba(54, 95, 255, .12);
}

.modern-login-page .btn-primary {
    min-height: 51px;
    border-radius: 13px;
    background: linear-gradient(105deg, #8e45ff, #4c67ff 52%, #168cff);
    box-shadow: 0 14px 30px rgba(55, 77, 234, .31);
}

/* Smart 2.6 — identidade clara roxo/azul, sem alternância de tema. */
:root {
    --panel-accent: #6d4aff;
    --panel-purple: #8d46f6;
    --panel-blue: #1c82f5;
    --panel-ink: #252b49;
    --panel-muted: #7b839f;
    --panel-surface: rgba(255, 255, 255, .93);
    --panel-border: rgba(92, 80, 190, .13);
}

body,
body.nsofts-theme-dark {
    color: var(--panel-ink);
    background:
        radial-gradient(circle at 78% 2%, rgba(39, 126, 255, .13), transparent 28%),
        radial-gradient(circle at 8% 84%, rgba(142, 70, 246, .12), transparent 30%),
        linear-gradient(145deg, #f8f7ff 0%, #f2f7ff 48%, #faf7ff 100%);
}

#nsofts_header,
body.nsofts-theme-dark #nsofts_header {
    background:
        radial-gradient(circle at 88% 20%, rgba(108, 206, 255, .28), transparent 28%),
        linear-gradient(108deg, #7746e9 0%, #6255ef 46%, #2385ed 100%);
    border: 0;
    box-shadow: 0 12px 32px rgba(75, 69, 182, .22);
}

#nsofts_header .panel-wordmark,
#nsofts_header .nsofts-header-nav__link,
#nsofts_header #nsofts_hamburger,
body.nsofts-theme-dark #nsofts_header .panel-wordmark,
body.nsofts-theme-dark #nsofts_header .nsofts-header-nav__link,
body.nsofts-theme-dark #nsofts_header #nsofts_hamburger {
    color: #fff !important;
}

#nsofts_header .panel-wordmark {
    font-weight: 800;
    letter-spacing: -.025em;
    text-shadow: 0 4px 18px rgba(31, 24, 103, .24);
}

#nsofts_sidebar,
body.nsofts-theme-dark #nsofts_sidebar {
    background:
        radial-gradient(circle at 0 0, rgba(112, 75, 255, .12), transparent 34%),
        radial-gradient(circle at 100% 88%, rgba(32, 137, 246, .11), transparent 34%),
        linear-gradient(180deg, rgba(255, 255, 255, .97), rgba(246, 244, 255, .97) 62%, rgba(239, 247, 255, .98));
    border-right: 1px solid rgba(98, 86, 187, .12);
    box-shadow: 12px 0 38px rgba(52, 55, 121, .09);
}

#nsofts_sidebar .nsofts-sidebar-nav__link,
body.nsofts-theme-dark #nsofts_sidebar .nsofts-sidebar-nav__link {
    color: #66708e;
    border: 1px solid transparent;
    border-radius: 13px;
}

#nsofts_sidebar .nsofts-sidebar-nav__icon,
body.nsofts-theme-dark #nsofts_sidebar .nsofts-sidebar-nav__icon {
    color: #6d67a7;
}

#nsofts_sidebar .nsofts-sidebar-nav__link:hover,
body.nsofts-theme-dark #nsofts_sidebar .nsofts-sidebar-nav__link:hover {
    color: #5141b8;
    transform: translateX(3px);
    background: linear-gradient(105deg, rgba(129, 83, 240, .09), rgba(37, 134, 244, .08));
    border-color: rgba(111, 83, 219, .13);
}

#nsofts_sidebar .nsofts-sidebar-nav__link.active,
body.nsofts-theme-dark #nsofts_sidebar .nsofts-sidebar-nav__link.active {
    color: #fff;
    background: linear-gradient(105deg, #8150ed 0%, #6559ef 48%, #2886ef 100%);
    border-color: rgba(255, 255, 255, .48);
    box-shadow: 0 12px 25px rgba(79, 74, 203, .25), inset 0 1px rgba(255, 255, 255, .22);
}

#nsofts_sidebar .nsofts-sidebar-nav__link.active .nsofts-sidebar-nav__icon,
#nsofts_sidebar .nsofts-sidebar-nav__link:hover .nsofts-sidebar-nav__icon,
body.nsofts-theme-dark #nsofts_sidebar .nsofts-sidebar-nav__link.active .nsofts-sidebar-nav__icon {
    color: inherit;
}

.sidebar-featured-item {
    margin: 7px 0 5px;
}

.sidebar-featured-item .nsofts-sidebar-nav__link:not(.active),
body.nsofts-theme-dark .sidebar-featured-item .nsofts-sidebar-nav__link:not(.active) {
    color: #6651c5 !important;
    background: linear-gradient(105deg, rgba(124, 77, 255, .10), rgba(31, 119, 255, .08));
    border-color: rgba(129, 116, 255, .15) !important;
}

.sidebar-secondary-start {
    margin-top: 15px;
    padding-top: 14px;
    border-top: 1px solid rgba(101, 91, 180, .12);
}

.sidebar-profile-last {
    margin-top: 14px;
}

.card,
.filter-card,
.modern-card,
.metric-card,
body.nsofts-theme-dark .card,
body.nsofts-theme-dark .filter-card,
body.nsofts-theme-dark .modern-card,
body.nsofts-theme-dark .metric-card {
    color: var(--panel-ink);
    background: var(--panel-surface);
    border-color: var(--panel-border);
    box-shadow: 0 18px 44px rgba(48, 54, 114, .08);
    backdrop-filter: blur(12px);
}

body.nsofts-theme-dark .metric-card strong,
body.nsofts-theme-dark .modern-card-header h5,
body.nsofts-theme-dark .quick-list a,
body.nsofts-theme-dark .panel-wordmark,
body.nsofts-theme-dark .device-code,
body.nsofts-theme-dark h1,
body.nsofts-theme-dark h2,
body.nsofts-theme-dark h3,
body.nsofts-theme-dark h4,
body.nsofts-theme-dark h5,
body.nsofts-theme-dark h6 {
    color: var(--panel-ink) !important;
}

.dashboard-hero,
body.nsofts-theme-dark .dashboard-hero {
    background:
        radial-gradient(circle at 88% 8%, rgba(117, 223, 255, .30), transparent 32%),
        radial-gradient(circle at 8% 100%, rgba(207, 111, 255, .28), transparent 34%),
        linear-gradient(122deg, #7547e8 0%, #5f55eb 48%, #2189ed 100%);
    box-shadow: 0 22px 48px rgba(65, 71, 200, .24);
}

.dashboard-hero h1,
.dashboard-hero p,
.dashboard-hero .dashboard-kicker,
body.nsofts-theme-dark .dashboard-hero h1,
body.nsofts-theme-dark .dashboard-hero p {
    color: #fff !important;
}

.dashboard-kicker { opacity: .75; }
.chart-bar { background: linear-gradient(180deg, #238dff, #8050ee); }
.user-cell > span { background: linear-gradient(145deg, #258bf2, #8650ed); }

.btn-primary,
body.nsofts-theme-dark .btn-primary {
    color: #fff;
    border: 0;
    background: linear-gradient(105deg, #8350ed, #6259ef 52%, #2587ef);
    box-shadow: 0 11px 25px rgba(70, 80, 220, .24);
}

.btn-primary:hover,
.btn-primary:focus {
    color: #fff;
    background: linear-gradient(105deg, #9259f5, #6964f5 52%, #3295f7);
    box-shadow: 0 14px 32px rgba(70, 80, 220, .33);
}

.form-control,
.form-select,
.select2-container--default .select2-selection--single,
body.nsofts-theme-dark .form-control,
body.nsofts-theme-dark .form-select {
    color: #303653;
    background-color: rgba(255, 255, 255, .92);
    border-color: rgba(91, 87, 171, .17);
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(105, 82, 229, .68);
    box-shadow: 0 0 0 .22rem rgba(105, 82, 229, .11), 0 8px 22px rgba(59, 79, 178, .07);
}

.profile-access-card { overflow: hidden; }
.profile-access-card::before {
    content: "";
    display: block;
    height: 4px;
    background: linear-gradient(90deg, #9552ef, #675cec 50%, #268df2);
}
.profile-access-heading { gap: 16px; }
.profile-access-logo {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: #fff;
    font-size: 28px;
    background: linear-gradient(135deg, #8c4fec, #298bf0);
    box-shadow: 0 12px 25px rgba(73, 72, 198, .23);
    overflow: hidden;
}
.profile-access-logo img { width: 100%; height: 100%; object-fit: contain; padding: 9px; }
.profile-password-hint { color: #727b99; font-size: 13px; }
.profile-password-hint i { color: #6259e9; margin-right: 4px; }

#nsofts_footer,
body.nsofts-theme-dark #nsofts_footer { color: #737b99; }

/* Login: fundo neon roxo/azul e somente o formulário de acesso. */
.modern-login-page,
body.modern-login-page.nsofts-theme-dark {
    min-height: 100vh;
    color: #27304c;
    background:
        linear-gradient(115deg, rgba(1, 6, 22, .94), rgba(0, 31, 94, .74) 52%, rgba(0, 190, 255, .22)),
        url('../../images/stv_max_bg.jpg') center/cover fixed;
}

.modern-login-page::before,
.modern-login-page::after {
    border-color: rgba(255, 255, 255, .22);
    opacity: .92;
    filter: blur(.1px);
}

.modern-login-page::before {
    background: linear-gradient(145deg, rgba(255, 255, 255, .13), rgba(75, 229, 255, .10));
    box-shadow: 0 0 120px rgba(59, 222, 255, .28), inset 0 0 65px rgba(255, 255, 255, .07);
}

.modern-login-page::after {
    background: linear-gradient(145deg, rgba(229, 82, 255, .13), rgba(255, 255, 255, .08));
    box-shadow: 0 0 130px rgba(223, 68, 255, .30), inset 0 0 70px rgba(255, 255, 255, .06);
}

.modern-login-page .nsofts-auth__pattern-1,
.modern-login-page .nsofts-auth__pattern-2 { display: none; }

.modern-login-page .nsofts-auth .card,
body.modern-login-page.nsofts-theme-dark .nsofts-auth .card {
    color: #27304c;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 26px;
    background: rgba(255, 255, 255, .93);
    box-shadow: 0 34px 85px rgba(34, 34, 113, .28), 0 0 52px rgba(255, 255, 255, .13);
    backdrop-filter: blur(24px);
}

.modern-login-page .nsofts-auth .card:hover {
    border-color: rgba(255, 255, 255, .92);
    box-shadow: 0 39px 95px rgba(34, 34, 113, .34), 0 0 65px rgba(255, 255, 255, .18);
}

.modern-login-page .nsofts-auth .card::before {
    height: 4px;
    background: linear-gradient(90deg, #d052f4, #7658ef 49%, #29a6f2);
    box-shadow: 0 0 20px rgba(114, 88, 239, .55);
}

.modern-login-page .login-brand__name,
body.modern-login-page.nsofts-theme-dark .login-brand__name {
    color: transparent;
    background: linear-gradient(105deg, #8047e7, #3f77e9 55%, #159de8);
    -webkit-background-clip: text;
    background-clip: text;
    text-shadow: none;
}

.alta-login-logo { width: 104px; height: 104px; object-fit: contain; filter: drop-shadow(0 13px 24px rgba(0,168,255,.28)); }
.login-brand__subtitle { display: block; margin-top: 3px; color: #7a829d; font-size: 13px; }

.panel-wordmark { display: inline-flex !important; align-items: center; gap: 10px; }
.panel-wordmark img { width: 38px; height: 38px; object-fit: contain; filter: drop-shadow(0 6px 11px rgba(0,174,255,.22)); }
.panel-wordmark span { font-weight: 800; letter-spacing: -.02em; }

#nsofts_sidebar {
    background:
        linear-gradient(180deg, rgba(1,10,31,.98), rgba(3,34,88,.97)),
        url('../../images/stv_max_bg.jpg') center/cover;
}
.modern-login-page .form-label,
.modern-login-page .form-check-label,
.modern-login-page .nsofts-input-icon__left,
.modern-login-page .nsofts-input-icon__right,
body.modern-login-page.nsofts-theme-dark .form-label {
    color: #626b89;
}

.modern-login-page .form-control,
body.modern-login-page.nsofts-theme-dark .form-control {
    min-height: 51px;
    color: #2e3653;
    border: 1px solid rgba(93, 86, 177, .17);
    border-radius: 13px;
    background: rgba(248, 249, 255, .96);
    box-shadow: inset 0 1px rgba(255, 255, 255, .7);
}

.modern-login-page .form-control::placeholder { color: #a1a7ba; }
.modern-login-page .form-control:focus {
    color: #252d4b;
    border-color: rgba(103, 85, 230, .72);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(103, 85, 230, .12), 0 10px 28px rgba(63, 85, 186, .09);
}

.modern-login-page .btn-primary {
    min-height: 52px;
    border-radius: 13px;
    background: linear-gradient(105deg, #8f4ce9, #6659eb 52%, #258ce9);
    box-shadow: 0 14px 30px rgba(61, 75, 202, .31);
}

@media (max-width: 767px) {
    .profile-access-heading { align-items: flex-start !important; }
    .profile-access-logo { width: 54px; height: 54px; flex-basis: 54px; }
}

/* Base herdada; os ajustes finais vermelhos do STV Max estão no fim. */
:root {
    --panel-accent: #067cff;
    --panel-purple: #0058e6;
    --panel-blue: #058dff;
    --panel-deep: #020817;
    --panel-deep-soft: #061c43;
    --panel-glow: rgba(0, 205, 255, .30);
}

#nsofts_header {
    background: linear-gradient(110deg, #020817 0%, #041b43 58%, #052f6e 100%);
    border-bottom-color: rgba(0, 211, 255, .24);
}

#nsofts_sidebar {
    background:
        linear-gradient(180deg, rgba(1, 8, 25, .97), rgba(2, 38, 91, .94)),
        url('../../images/stv_max_bg.jpg') center/cover;
}

#nsofts_sidebar .nsofts-sidebar-nav__link:hover {
    background: rgba(0, 168, 255, .12);
    border-color: rgba(0, 211, 255, .20);
}

#nsofts_sidebar .nsofts-sidebar-nav__link.active {
    background: linear-gradient(105deg, rgba(0, 104, 234, .96), rgba(0, 199, 255, .84));
    border-color: rgba(95, 235, 255, .52);
    box-shadow: 0 11px 28px rgba(0, 115, 241, .28), inset 0 1px rgba(255, 255, 255, .19);
}

#nsofts_sidebar .nsofts-sidebar-nav__icon { color: #73dcff; }

.dashboard-hero,
body.nsofts-theme-dark .dashboard-hero {
    background:
        radial-gradient(circle at 88% 8%, rgba(86, 232, 255, .27), transparent 31%),
        linear-gradient(122deg, #020817 0%, #043175 55%, #007ddf 100%);
    box-shadow: 0 22px 48px rgba(0, 70, 171, .24);
}

.btn-primary,
body.nsofts-theme-dark .btn-primary,
.modern-login-page .btn-primary {
    background: linear-gradient(105deg, #005bea, #058dff 55%, #05d4df);
    box-shadow: 0 13px 29px rgba(0, 112, 230, .27);
}

.btn-primary:hover,
.btn-primary:focus,
.modern-login-page .btn-primary:hover,
.modern-login-page .btn-primary:focus {
    background: linear-gradient(105deg, #0871f5, #0aa4ff 55%, #13e2e5);
    box-shadow: 0 15px 34px rgba(0, 135, 235, .34);
}

.modern-login-page .nsofts-auth .card::before {
    background: linear-gradient(90deg, #005bea, #08a8ff 52%, #16e4e4);
    box-shadow: 0 0 20px rgba(0, 190, 255, .50);
}

.modern-login-page .login-brand__name,
body.modern-login-page.nsofts-theme-dark .login-brand__name {
    background: linear-gradient(105deg, #005bea, #058dff 55%, #05cfd9);
    -webkit-background-clip: text;
    background-clip: text;
}

.form-control:focus,
.form-select:focus,
.modern-login-page .form-control:focus {
    border-color: rgba(0, 157, 255, .70);
    box-shadow: 0 0 0 .22rem rgba(0, 157, 255, .12), 0 8px 24px rgba(0, 92, 191, .08);
}

/* Blindagem do cabecalho contra imagens com dimensoes naturais grandes. */
#nsofts_header {
    min-height: 56px;
    max-height: 56px;
}

#nsofts_header #nsofts_brand.panel-wordmark {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 0 !important;
    max-width: min(320px, 62vw) !important;
    height: 40px !important;
    overflow: hidden !important;
}

#nsofts_header #nsofts_brand.panel-wordmark > img {
    display: block !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    object-fit: contain !important;
}

/* Refinamentos finais do painel STV Max. */
#nsofts_sidebar,
body.nsofts-theme-dark #nsofts_sidebar {
    background:
        radial-gradient(circle at 12% 10%, rgba(0, 143, 255, .22), transparent 34%),
        linear-gradient(180deg, rgba(3, 22, 57, .97), rgba(5, 50, 111, .95)),
        url('../../images/stv_max_bg.jpg') center/cover;
}

.header-expiry-item {
    display: flex;
    align-items: center;
}

.header-expiry-link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 128px;
    height: 42px;
    padding: 5px 13px;
    border: 1px solid rgba(101, 229, 255, .28);
    border-radius: 12px;
    color: rgba(255, 255, 255, .72);
    background: rgba(0, 17, 49, .32);
    text-decoration: none;
    line-height: 1.05;
}

.header-expiry-link:hover { color: #fff; background: rgba(0, 26, 68, .46); }
.header-expiry-link span { font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.header-expiry-link strong { margin-top: 3px; color: #fff; font-size: 13px; }

#nsofts_header .header-profile-link {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(109, 232, 255, .36);
    border-radius: 50%;
    background: rgba(1, 17, 46, .32);
}

.header-profile-image {
    display: block;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
}

.dashboard-hero .hero-actions {
    flex: 0 0 auto;
    flex-direction: column;
    align-items: flex-end;
}

.hero-action-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.dashboard-expiry-chip {
    display: grid;
    min-width: 225px;
    padding: 13px 16px;
    border: 1px solid rgba(114, 232, 255, .34);
    border-radius: 15px;
    color: #fff;
    background: rgba(0, 13, 42, .36);
    box-shadow: inset 0 1px rgba(255, 255, 255, .09);
    text-decoration: none;
    backdrop-filter: blur(9px);
}

.dashboard-expiry-chip:hover { color: #fff; transform: translateY(-1px); background: rgba(0, 24, 65, .52); }
.dashboard-expiry-chip span { color: rgba(255, 255, 255, .68); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.dashboard-expiry-chip strong { margin: 2px 0; font-size: 22px; }
.dashboard-expiry-chip small { color: #65edff; font-size: 11px; }

@media (max-width: 767px) {
    .header-expiry-link { min-width: auto; padding-inline: 10px; }
    .header-expiry-link span { display: none; }
    .dashboard-hero .hero-actions { width: 100%; align-items: stretch; }
    .dashboard-expiry-chip { min-width: 0; }
    .hero-action-buttons { justify-content: flex-start; }
}

/* Identidade definitiva STV Max: preto, vinho e vermelho neon. */
:root {
    --panel-accent: #e20a3d;
    --panel-purple: #a80031;
    --panel-blue: #ff315f;
    --panel-deep: #090006;
    --panel-deep-soft: #25000d;
    --panel-glow: rgba(255, 23, 79, .31);
}

body {
    background:
        radial-gradient(circle at 82% 0%, rgba(226, 10, 61, .09), transparent 28%),
        #f7f5f7;
}

#nsofts_header {
    background: linear-gradient(110deg, #090006 0%, #25000d 58%, #5a001d 100%);
    border-bottom-color: rgba(255, 67, 112, .25);
    box-shadow: 0 10px 32px rgba(62, 0, 19, .22);
}

#nsofts_sidebar,
body.nsofts-theme-dark #nsofts_sidebar {
    background:
        radial-gradient(circle at 12% 10%, rgba(226, 10, 61, .28), transparent 34%),
        linear-gradient(180deg, rgba(9, 0, 6, .98), rgba(55, 0, 18, .96)),
        url('../../images/stv_max_bg.jpg') center/cover;
    box-shadow: 12px 0 34px rgba(56, 0, 18, .19);
}

#nsofts_sidebar .nsofts-sidebar-nav__link:hover {
    background: rgba(226, 10, 61, .14);
    border-color: rgba(255, 72, 116, .23);
}

#nsofts_sidebar .nsofts-sidebar-nav__link.active {
    background: linear-gradient(105deg, rgba(164, 0, 45, .98), rgba(244, 10, 67, .91));
    border-color: rgba(255, 115, 148, .53);
    box-shadow: 0 11px 28px rgba(143, 0, 40, .31), inset 0 1px rgba(255, 255, 255, .19);
}

#nsofts_sidebar .nsofts-sidebar-nav__icon { color: #ff7192; }

.dashboard-hero,
body.nsofts-theme-dark .dashboard-hero {
    background:
        radial-gradient(circle at 88% 8%, rgba(255, 104, 139, .28), transparent 31%),
        linear-gradient(122deg, #090006 0%, #61001f 58%, #d5093c 100%);
    box-shadow: 0 22px 48px rgba(112, 0, 33, .27);
}

.btn-primary,
body.nsofts-theme-dark .btn-primary,
.modern-login-page .btn-primary {
    border-color: transparent;
    background: linear-gradient(105deg, #a90032, #e20a3d 55%, #ff416d);
    box-shadow: 0 13px 29px rgba(176, 0, 48, .29);
}

.btn-primary:hover,
.btn-primary:focus,
.modern-login-page .btn-primary:hover,
.modern-login-page .btn-primary:focus {
    border-color: transparent;
    background: linear-gradient(105deg, #c50039, #f0184d 55%, #ff5b81);
    box-shadow: 0 15px 34px rgba(187, 0, 51, .36);
}

.modern-login-page {
    background:
        linear-gradient(90deg, rgba(9, 0, 6, .91), rgba(28, 0, 10, .76)),
        url('../../images/stv_max_bg.jpg') center/cover fixed;
}

.modern-login-page .nsofts-auth .card::before {
    background: linear-gradient(90deg, #a60030, #e20a3d 52%, #ff5e84);
    box-shadow: 0 0 22px rgba(255, 25, 80, .52);
}

.modern-login-page .login-brand__name,
body.modern-login-page.nsofts-theme-dark .login-brand__name {
    background: linear-gradient(105deg, #b90036, #e20a3d 55%, #ff557d);
    -webkit-background-clip: text;
    background-clip: text;
}

.form-control:focus,
.form-select:focus,
.modern-login-page .form-control:focus {
    border-color: rgba(226, 10, 61, .72);
    box-shadow: 0 0 0 .22rem rgba(226, 10, 61, .12), 0 8px 24px rgba(118, 0, 34, .09);
}

.dashboard-kicker,
.quick-list a span i,
.empty-state i { color: #f11951; }

.metric-primary .metric-icon { color: #d5093c; background: rgba(226, 10, 61, .11); }
.metric-blue .metric-icon { color: #ed2b59; background: rgba(237, 43, 89, .11); }
.device-cell > span,
.user-cell > span { background: linear-gradient(145deg, #b60034, #f31a52); }

.dashboard-expiry-chip {
    border-color: rgba(255, 115, 148, .35);
    background: rgba(42, 0, 14, .43);
}
.dashboard-expiry-chip:hover { background: rgba(73, 0, 24, .56); }
.dashboard-expiry-chip small { color: #ff92ab; }

.header-profile-link,
#nsofts_header .header-profile-link {
    border-color: rgba(255, 115, 148, .40);
    background: rgba(45, 0, 15, .38);
}

.featured-channel-slot {
    border-color: rgba(226, 10, 61, .15) !important;
    background: linear-gradient(145deg, rgba(255, 255, 255, .97), rgba(255, 245, 248, .92));
    box-shadow: 0 10px 26px rgba(93, 0, 27, .06);
}

.featured-channel-slot h5 { color: #720020; }
