/* ================================================================
 * NEXOIN DARK INDUSTRIAL — FORCED OVERRIDES
 * Adicionado 2026-04-14: Garante tema dark em TODOS os módulos
 * Sobrescreve qualquer CSS inline dos HTMLs individuais
 * ================================================================ */

/* FORCED DARK BACKGROUND — resolve 30 HTMLs sem #030306 */
html { background: #030306 !important; }
body {
    background: var(--nx-bg-base, #0A0A0A) !important;
    color: var(--nx-text-primary, #F8FAFC) !important;
    font-family: 'Inter', 'DM Sans', sans-serif !important;
    -webkit-font-smoothing: antialiased !important;
}

/* EMPRESA ACCENTS (Plano Diretor V3) — eb-holding como default */
[data-empresa="eb-holding"], body:not([data-empresa]) {
    --nx-accent: #C9A227;
    --nx-brand-primary: #C9A227;
    --nx-brand-dim: rgba(201, 162, 39, 0.15);
    --nx-brand-glow: rgba(201, 162, 39, 0.25);
}
[data-empresa="belavia"] {
    --nx-accent: #F5C518;
}
[data-empresa="euroseg"] {
    --nx-accent: #1A3557;
}
[data-empresa="euro-servicos"] {
    --nx-accent: #4A9BAF;
    --nx-brand-primary: #4A9BAF;
    --nx-brand-dim: rgba(74, 155, 175, 0.15);
    --nx-brand-glow: rgba(74, 155, 175, 0.25);
}
[data-empresa="protech"] {
    --nx-accent: #8B1A2F;
    --nx-brand-primary: #8B1A2F;
    --nx-brand-dim: rgba(139, 26, 47, 0.15);
    --nx-brand-glow: rgba(139, 26, 47, 0.25);
}

/* GLASS MORPHISM — Auto-aplica em cards e widgets comuns */
.card, .nx-card, .dashboard-card, .widget, .panel,
.stat-card, .stat-box, .kpi-card, .metric-card,
.section-card, .info-card, .detail-card,
[class*="card"], [class*="panel"] {
    background: rgba(255,255,255,0.03) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: var(--nx-radius-lg, 12px) !important;
}

/* TABLE DARK OVERRIDE — Força tabelas dark */
table { border-collapse: collapse; width: 100%; }
table th {
    background: var(--nx-bg-elevated, #0b0b12) !important;
    color: var(--nx-text-secondary, #94A3B8) !important;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    padding: 12px 16px;
    border-bottom: 1px solid var(--nx-border-base, #2E2E2E) !important;
}
table td {
    padding: 12px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.04) !important;
    color: var(--nx-text-primary, #F8FAFC);
    font-size: 0.875rem;
}
table tbody tr:hover {
    background: rgba(255,255,255,0.02) !important;
}

/* INPUT/SELECT DARK OVERRIDE */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select, textarea {
    background: var(--nx-bg-input, #1D1D1D) !important;
    border: 1px solid var(--nx-border-base, #2E2E2E) !important;
    color: var(--nx-text-primary, #F8FAFC) !important;
    border-radius: var(--nx-radius-md, 8px);
    padding: 10px 14px;
    font-family: 'Inter', sans-serif;
}
input:focus, select:focus, textarea:focus {
    outline: none !important;
    border-color: var(--nx-brand-primary, #D4AF37) !important;
    box-shadow: 0 0 0 3px var(--nx-brand-dim, rgba(212,175,55,0.15)) !important;
}

/* SCROLLBAR DARK */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); }

/* BADGES STATUS */
.badge-ativo, .badge-regular, .badge-ok, [class*="badge-success"] { background: var(--nx-success-dim) !important; color: var(--nx-success) !important; }
.badge-vencido, .badge-erro, [class*="badge-danger"] { background: var(--nx-danger-dim) !important; color: var(--nx-danger) !important; }
.badge-pendente, .badge-warning, [class*="badge-warning"] { background: var(--nx-warning-dim) !important; color: var(--nx-warning) !important; }

/* MODAL DARK */
.modal-content, .modal-body, .nx-modal, [class*="modal"] > div {
    background: var(--nx-bg-elevated, #0b0b12) !important;
    color: var(--nx-text-primary) !important;
    border: 1px solid var(--nx-border-base, #2E2E2E) !important;
    border-radius: var(--nx-radius-lg, 12px) !important;
}
.modal-header, .modal-footer {
    border-color: var(--nx-border-base, #2E2E2E) !important;
}

/* NUMERIC VALUES — JetBrains Mono */
.mono, .value, .amount, [class*="valor"], [class*="total"],
.clock-time, .stat-value, .kpi-value, .metric-value, .number {
    font-family: 'JetBrains Mono', monospace !important;
}

/* MAIN CONTENT AREA */
.main-content, .main, .content, main, [role="main"] {
    margin-left: 260px;
    min-height: 100vh;
}

/* PAGE TITLE STYLE */
.page-header, .portal-header {
    margin-bottom: 24px;
}
.page-title, .portal-title h1 {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: var(--nx-text-primary);
}

/* LINK COLORS */
a { color: var(--nx-brand-primary, #D4AF37); text-decoration: none; }
a:hover { color: var(--nx-text-primary); }

/* SELECTION */
::selection {
    background: var(--nx-brand-primary);
    color: var(--nx-text-inverse);
}

/* PRINT — allow white for printing */
@media print {
    body { background: #fff !important; color: #000 !important; }
    .sidebar { display: none !important; }
    .main-content { margin-left: 0 !important; }
    table th { background: #f0f0f0 !important; color: #333 !important; }
    table td { color: #000 !important; border-color: #ddd !important; }
}

/* ================================================================
 * END FORCED OVERRIDES
 * ================================================================ */
/******************************************************************
 * NEXOIN ERP — DESIGN SYSTEM (GLOBAL CSS)
 * ===============================================================
 * Theme: Dark, Premium, Corporativo 
 * Typography: Inter (fallback DM Sans)
 * Configuração: Magic Switch Driven (data-empresa)
 ******************************************************************/

/* 1. FOUNDATION TOKENS (Nexoin Design System) */
:root {
    /* 1.1 Cores Base (Neutral & Backgrounds) */
    --nx-bg-base:     #0A0A0A;
    --nx-bg-surface:  #141414;
    --nx-bg-elevated: #0b0b12;
    --nx-bg-hover:    #222222;
    --nx-bg-input:    #1D1D1D;

    /* 1.2 Typography */
    --nx-text-primary:   #F8FAFC;
    --nx-text-secondary: #94A3B8;
    --nx-text-muted:     #64748B;
    --nx-text-inverse:   #0A0A0A;

    /* 1.3 Borders & Shadows */
    --nx-border-dim:   #1F1F1F;
    --nx-border-base:  #2E2E2E;
    --nx-shadow-sm:    0 2px 8px rgba(0,0,0,0.4);
    --nx-shadow-base:  0 4px 16px rgba(0,0,0,0.5);
    --nx-shadow-lg:    0 12px 32px rgba(0,0,0,0.7);

    /* 1.4 Radii */
    --nx-radius-sm: 4px;
    --nx-radius-md: 8px;
    --nx-radius-lg: 12px;
    --nx-radius-full: 9999px;

    /* 1.5 Semantic Status Colors */
    --nx-success:       #10B981;
    --nx-success-dim:   rgba(16, 185, 129, 0.15);
    --nx-warning:       #F59E0B;
    --nx-warning-dim:   rgba(245, 158, 11, 0.15);
    --nx-danger:        #EF4444;
    --nx-danger-dim:    rgba(239, 68, 68, 0.15);
    --nx-info:          #3B82F6;
    --nx-info-dim:      rgba(59, 130, 246, 0.15);

    /* 1.6 Variaveis da Empresa (Fallback p/ Default Holding) */
    --nx-brand-primary: #D4AF37; /* Dourado EB Holding default */
    --nx-brand-dim:     rgba(212, 175, 55, 0.15);
    --nx-brand-glow:    rgba(212, 175, 55, 0.25);

    /* ALIASES LEGADOS — Bridge --bv-* → --nx-* (5.200 refs em 37 arquivos) */
    /* Brand / Hero */
    --bv-gold:           var(--nx-brand-primary, #D4AF37);
    --bv-gold-dark:      #B8941F;
    --bv-gold-dim:       var(--nx-brand-dim);
    --bv-gold-glow:      var(--nx-brand-glow);
    --bv-primary:        var(--nx-brand-primary);
    --bv-hero:           var(--nx-brand-primary);
    --bv-hero-dim:       var(--nx-brand-dim);
    --bv-hero-glow:      var(--nx-brand-glow);

    /* Backgrounds */
    --bv-dark-1:         var(--nx-bg-base);
    --bv-dark-2:         var(--nx-bg-surface);
    --bv-dark-3:         var(--nx-bg-elevated);
    --bv-dark-4:         var(--nx-bg-hover);
    --bv-bg-2:           var(--nx-bg-surface);
    --bv-bg-3:           var(--nx-bg-elevated);
    --bv-surface-2:      var(--nx-bg-surface);
    --bv-surface-3:      var(--nx-bg-elevated);
    --bv-black:          #000000;
    --bv-white:          #FFFFFF;

    /* Typography */
    --bv-text-1:         var(--nx-text-primary);
    --bv-text-2:         var(--nx-text-secondary);
    --bv-text-3:         var(--nx-text-muted);
    --bv-text-secondary: var(--nx-text-secondary);

    /* Borders */
    --bv-border:         var(--nx-border-base);

    /* Status Colors */
    --bv-green:          var(--nx-success);
    --bv-green-dim:      var(--nx-success-dim);
    --bv-red:            var(--nx-danger);
    --bv-red-dim:        var(--nx-danger-dim);
    --bv-amber:          var(--nx-warning);
    --bv-amber-dim:      var(--nx-warning-dim);
    --bv-blue:           var(--nx-info);
    --bv-blue-dim:       var(--nx-info-dim);

    /* Extended Palette */
    --bv-purple:         #8B5CF6;
    --bv-purple-dim:     rgba(139, 92, 246, 0.15);
    --bv-cyan:           #06B6D4;
    --bv-cyan-dim:       rgba(6, 182, 212, 0.15);
    --bv-teal:           #14B8A6;
    --bv-teal-dim:       rgba(20, 184, 166, 0.15);
}

/* 1.8 VIEW TRANSITIONS — Sidebar fixa entre navegações */
::view-transition-old(main-sidebar),
::view-transition-new(main-sidebar) {
    animation: none;
    mix-blend-mode: normal;
}

.sidebar {
    view-transition-name: main-sidebar;
}

.main-content, .main, .content {
    view-transition-name: main-content;
}

::view-transition-old(main-content) {
    animation: nx-fade-out 0.15s ease;
}

::view-transition-new(main-content) {
    animation: nx-fade-in 0.15s ease;
}

@keyframes nx-fade-out {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes nx-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* 2. THEME SWITCHER (MULTI-BRAND DATA ATTRS) */
[data-empresa="euroseg"] {
    --nx-accent: #1A3557;
    --nx-brand-primary: #1A3557;
    --nx-brand-dim: rgba(26, 53, 87, 0.15);
    --nx-brand-glow: rgba(26, 53, 87, 0.25);
}
[data-empresa="euro-servicos"], [data-empresa="euro-servicos-df"], [data-empresa="euro-servicos-go"] {
    --nx-brand-primary: #4A9BAF;
    --nx-brand-dim: rgba(74, 155, 175, 0.15);
    --nx-brand-glow: rgba(74, 155, 175, 0.25);
}
[data-empresa="belavia"] {
    --nx-brand-primary: #F5C518;
    --nx-brand-dim: rgba(245, 197, 24, 0.15);
    --nx-brand-glow: rgba(245, 197, 24, 0.25);
    --nx-accent: #F5C518;
}
[data-empresa="protech"] {
    --nx-brand-primary: #8B1A2F;
    --nx-brand-dim: rgba(139, 26, 47, 0.15);
    --nx-brand-glow: rgba(139, 26, 47, 0.25);
}

/* 3. COMPONENTES BASE UNIFICADOS */

/* Nx Button */
.nx-btn, .btn-brand, .btn-primary-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--nx-brand-primary);
    color: var(--nx-text-inverse);
    border: none;
    padding: 10px 20px;
    border-radius: var(--nx-radius-md);
    font-weight: 600;
    font-size: 0.875rem;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.nx-btn:hover, .btn-brand:hover, .btn-primary-brand:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px var(--nx-brand-glow);
}
.nx-btn.nx-btn-secondary {
    background: var(--nx-bg-input);
    color: var(--nx-text-primary);
    border: 1px solid var(--nx-border-base);
}
.nx-btn.nx-btn-secondary:hover {
    background: var(--nx-bg-hover);
    box-shadow: none;
}
.nx-btn.nx-btn-danger {
    background: var(--nx-danger);
    color: #fff;
}
.nx-btn.nx-btn-danger:hover {
    box-shadow: 0 4px 12px var(--nx-danger-dim);
}
.nx-btn:disabled, .btn-brand:disabled {
    opacity: 0.5;
    pointer-events: none;
    transform: none;
}

/* Nx Card */
.nx-card, .dashboard-card {
    background: var(--nx-bg-surface);
    border: 1px solid var(--nx-border-base);
    border-radius: var(--nx-radius-lg);
    padding: 20px;
    box-shadow: var(--nx-shadow-sm);
    transition: all 0.2s;
}
.nx-card:hover, .dashboard-card:hover {
    box-shadow: var(--nx-shadow-base);
    border-color: var(--nx-border-dim);
}

/* Nx Input */
.nx-input, input.nx-input, select.nx-input, textarea.nx-input {
    background: var(--nx-bg-input);
    border: 1px solid var(--nx-border-base);
    color: var(--nx-text-primary);
    padding: 10px 14px;
    border-radius: var(--nx-radius-md);
    width: 100%;
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    transition: all 0.2s;
}
.nx-input:focus, .brand-focus:focus {
    outline: none;
    border-color: var(--nx-brand-primary);
    box-shadow: 0 0 0 3px var(--nx-brand-dim);
}

/* Nx Badge */
.nx-badge, .brand-badge {
    background: var(--nx-brand-dim);
    color: var(--nx-brand-primary);
    padding: 4px 12px;
    border-radius: var(--nx-radius-full);
    font-size: 0.75rem;
    font-weight: 600;
}

/* Nx Sidebar Overrides Globais */
.sidebar {
    background: var(--nx-bg-elevated);
    border-right: 1px solid var(--nx-border-base);
}
.sidebar .nav-item.active {
    background: var(--nx-brand-dim);
    color: var(--nx-brand-primary);
    border-right: 3px solid var(--nx-brand-primary);
}
.sidebar .nav-item.active .material-icons,
.sidebar .nav-item.active .material-symbols-outlined {
    color: var(--nx-brand-primary);
}

/* Common Text Utilities */
.nx-text-primary { color: var(--nx-text-primary); }
.nx-text-secondary { color: var(--nx-text-secondary); }
.nx-text-muted { color: var(--nx-text-muted); }

/* RESET GENÉRICO ORIGINAL A PARTIR DAQUI */
* { box-sizing:border-box; margin:0; padding:0; }

        body {
            font-family:'DM Sans',sans-serif;
            font-size:14px;
            background:var(--nx-bg-base);
            color:var(--nx-text-primary);
            line-height:1.5;
            -webkit-font-smoothing:antialiased;
        }

        /* ====== SIDEBAR ====== */
        .sidebar {
            position:fixed; left:0; top:0; bottom:0; width:260px;
            background:var(--nx-bg-elevated);
            border-right:1px solid var(--nx-border-base);
            display:flex; flex-direction:column; z-index:100;
        }

        .sidebar-logo {
            padding:22px 20px 16px;
            border-bottom:1px solid var(--nx-border-base);
        }

        .logo-belavia {
            font-size:21px; font-weight:800; color:var(--nx-brand-red);
            letter-spacing:-0.5px; display:block;
        }

        .logo-powered { font-size:10.5px; color:var(--nx-text-muted); margin-top:2px; }

        .sidebar-nav { flex:1; overflow-y:auto; padding:10px 0; }

        .nav-section {
            font-size:10px; text-transform:uppercase; letter-spacing:1.2px;
            color:var(--nx-text-muted); padding:14px 20px 5px; font-weight:600;
        }

        .nav-item {
            display:flex; align-items:center; gap:10px;
            padding:9px 20px; color:var(--nx-text-secondary);
            text-decoration:none; font-size:13.5px; font-weight:500;
            transition:all 0.18s; border-left:3px solid transparent;
        }

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

        .nav-item.active {
            background:var(--nx-brand-dim);
            color:var(--nx-brand-primary);
            border-left-color:var(--nx-brand-primary);
        }

        .nav-badge {
            margin-left:auto; background:var(--nx-danger); color:#fff;
            font-size:10px; font-weight:700; padding:2px 6px;
            border-radius:10px; min-width:18px; text-align:center;
        }

        .sidebar-footer {
            padding:14px 20px; border-top:1px solid var(--nx-border-base);
        }

        .user-info { display:flex; align-items:center; gap:10px; margin-bottom:10px; }

        .user-avatar {
            width:34px; height:34px;
            background:linear-gradient(135deg,var(--nx-brand-primary),var(--nx-purple));
            border-radius:50%; display:flex; align-items:center;
            justify-content:center; font-size:13px; font-weight:700; color:#fff;
        }

        .user-name { font-size:13px; font-weight:600; display:block; }
        .user-role { font-size:11px; color:var(--nx-text-muted); }

        .btn-logout {
            width:100%; padding:7px; background:transparent;
            border:1px solid var(--nx-border-base); border-radius:var(--nx-radius-sm);
            color:var(--nx-text-secondary); font-size:13px; cursor:pointer;
            transition:all 0.2s; font-family:inherit;
        }

        .btn-logout:hover { background:var(--nx-danger-dim); border-color:var(--nx-danger); color:var(--nx-danger); }

        /* ====== MAIN ====== */
        .main-content { margin-left:260px; min-height:100vh; padding:24px 28px; }

        /* ====== PORTAL HEADER ====== */
        .portal-header {
            display:flex; justify-content:space-between; align-items:center;
            margin-bottom:24px;
        }

        .portal-title h1 { font-size:24px; font-weight:800; letter-spacing:-0.5px; }
        .portal-title p { color:var(--nx-text-secondary); font-size:13px; margin-top:2px; }

        .portal-meta {
            display:flex; align-items:center; gap:16px;
        }

        .clock-widget {
            text-align:right;
        }

        .clock-time {
            font-family:'JetBrains Mono',monospace;
            font-size:22px; font-weight:700; color:var(--nx-brand-primary);
            line-height:1;
        }

        .clock-date {
            font-size:11px; color:var(--nx-text-muted); margin-top:3px;
        }

        .btn-refresh {
            padding:8px 16px; background:var(--nx-bg-elevated);
            border:1px solid var(--nx-border-base); border-radius:var(--nx-radius-sm);
            color:var(--nx-text-secondary); font-size:13px; cursor:pointer;
            transition:all 0.2s; font-family:inherit; display:flex;
            align-items:center; gap:7px;
        }

        .btn-refresh:hover { border-color:var(--nx-brand-primary); color:var(--nx-brand-primary); }

        .btn-refresh.loading .refresh-icon { animation:spin 0.7s linear infinite; display:inline-block; }

        @keyframes spin { to { transform:rotate(360deg); } }

        /* ====== GRID PRINCIPAL ====== */
        .portal-grid {
            display:grid;
            grid-template-columns: 1fr 1fr 1fr 320px;
            grid-template-rows: auto;
            gap:16px;
        }

        /* Coluna de editais — ocupa 3 colunas */
        .col-editais    { grid-column:1 / 4; }
        .col-clima      { grid-column:4 / 5; }
        .col-precos     { grid-column:1 / 3; }
        .col-pendencias { grid-column:3 / 5; }
        .col-noticias   { grid-column:1 / 3; }
        .col-kpis       { grid-column:3 / 5; }

        /* ====== WIDGET BASE ====== */
        .widget {
            background:var(--nx-bg-surface);
            border:1px solid var(--nx-border-base);
            border-radius:var(--nx-radius-lg);
            overflow:hidden;
        }

        .widget-header {
            display:flex; justify-content:space-between; align-items:center;
            padding:15px 18px; border-bottom:1px solid var(--nx-border-base);
        }

        .widget-header h3 {
            font-size:14px; font-weight:700;
            display:flex; align-items:center; gap:8px;
        }

        .widget-meta { font-size:11px; color:var(--nx-text-muted); }

        .widget-body { padding:0; }

        .status-dot {
            width:7px; height:7px; border-radius:50%; display:inline-block;
            animation:pulse 2s ease-in-out infinite;
        }

        .status-dot.live { background:var(--nx-success); }
        .status-dot.cached { background:var(--nx-warning); }
        .status-dot.offline { background:var(--nx-danger); }

        @keyframes pulse {
            0%,100% { opacity:1; } 50% { opacity:0.4; }
        }

        /* ====== WIDGET CLIMA ====== */
        .clima-main {
            padding:20px 18px 14px;
            text-align:center;
        }

        .clima-icon { font-size:48px; line-height:1; margin-bottom:8px; display:block; }

        .clima-temp {
            font-family:'JetBrains Mono',monospace;
            font-size:40px; font-weight:800; color:var(--nx-text-primary);
            line-height:1;
        }

        .clima-desc {
            font-size:13px; color:var(--nx-text-secondary);
            text-transform:capitalize; margin-top:6px;
        }

        .clima-detail {
            display:grid; grid-template-columns:1fr 1fr;
            gap:0; border-top:1px solid var(--nx-border-base); margin-top:14px;
        }

        .clima-item {
            padding:12px 16px; text-align:center;
            border-right:1px solid var(--nx-border-base);
        }

        .clima-item:last-child { border-right:none; }

        .clima-item label {
            font-size:10px; text-transform:uppercase; letter-spacing:0.6px;
            color:var(--nx-text-muted); display:block; margin-bottom:4px;
        }

        .clima-item span {
            font-size:14px; font-weight:700;
            font-family:'JetBrains Mono',monospace;
        }

        .clima-alerta {
            padding:10px 16px;
            background:rgba(239,68,68,0.08);
            border-top:1px solid rgba(239,68,68,0.15);
            font-size:12px; color:var(--nx-danger);
            display:none; align-items:center; gap:6px;
        }

        .clima-impacto {
            padding:10px 16px;
            background:var(--nx-bg-elevated);
            border-top:1px solid var(--nx-border-base);
            font-size:12px; color:var(--nx-text-secondary);
            display:flex; align-items:center; gap:6px;
        }

        /* ====== EDITAIS ====== */
        .editais-tabs {
            display:flex; gap:0; border-bottom:1px solid var(--nx-border-base);
            background:var(--nx-bg-elevated);
        }

        .edital-tab {
            padding:9px 16px; font-size:12.5px; font-weight:500;
            color:var(--nx-text-secondary); cursor:pointer; border:none;
            background:transparent; font-family:inherit; transition:all 0.2s;
            border-bottom:2px solid transparent; position:relative; bottom:-1px;
        }

        .edital-tab:hover { color:var(--nx-text-primary); }

        .edital-tab.active {
            color:var(--nx-brand-primary);
            border-bottom-color:var(--nx-brand-primary);
        }

        .editais-container { max-height:460px; overflow-y:auto; }

        .edital-card {
            padding:14px 18px;
            border-bottom:1px solid var(--nx-border-base);
            transition:background 0.15s; cursor:pointer;
        }

        .edital-card:hover { background:var(--nx-bg-hover); }
        .edital-card:last-child { border-bottom:none; }

        .edital-top {
            display:flex; justify-content:space-between;
            align-items:flex-start; gap:12px; margin-bottom:8px;
        }

        .edital-titulo {
            font-size:13.5px; font-weight:600; line-height:1.4;
            flex:1;
        }

        .edital-score {
            flex-shrink:0; width:36px; height:36px;
            border-radius:50%; display:flex; align-items:center;
            justify-content:center; font-size:12px; font-weight:800;
            font-family:'JetBrains Mono',monospace;
        }

        .score-alto  { background:rgba(16,185,129,0.15); color:var(--nx-success); }
        .score-medio { background:rgba(245,158,11,0.15); color:var(--nx-warning); }
        .score-baixo { background:rgba(100,116,139,0.1); color:var(--nx-text-muted); }

        .edital-meta {
            display:flex; gap:10px; flex-wrap:wrap;
            font-size:11.5px; color:var(--nx-text-secondary);
        }

        .edital-meta span { display:flex; align-items:center; gap:4px; }

        .edital-valor {
            font-family:'JetBrains Mono',monospace;
            font-size:14px; font-weight:700; color:var(--nx-brand-primary);
        }

        .edital-prazo-urgente { color:var(--nx-danger) !important; font-weight:700; }

        .tag {
            display:inline-block; padding:2px 8px; border-radius:12px;
            font-size:10.5px; font-weight:600; letter-spacing:0.2px;
        }

        .tag-blue   { background:var(--nx-info-dim); color:var(--nx-brand-primary); }
        .tag-green  { background:var(--nx-success-dim); color:var(--nx-success); }
        .tag-amber  { background:var(--nx-warning-dim); color:var(--nx-warning); }
        .tag-purple { background:var(--nx-purple-bg); color:var(--nx-purple); }

        /* ====== PREÇOS ====== */
        .precos-grid {
            display:grid; grid-template-columns:1fr 1fr 1fr;
        }

        .preco-item {
            padding:16px 18px;
            border-right:1px solid var(--nx-border-base);
        }

        .preco-item:last-child { border-right:none; }

        .preco-label {
            font-size:10.5px; text-transform:uppercase; letter-spacing:0.7px;
            color:var(--nx-text-muted); font-weight:600; margin-bottom:8px;
        }

        .preco-valor {
            font-family:'JetBrains Mono',monospace;
            font-size:22px; font-weight:800; color:var(--nx-text-primary);
            line-height:1;
        }

        .preco-unidade {
            font-size:11px; color:var(--nx-text-muted); margin-top:4px;
        }

        .preco-delta {
            display:inline-flex; align-items:center; gap:3px;
            padding:2px 7px; border-radius:10px;
            font-size:11px; font-weight:700; margin-top:8px;
        }

        .delta-up   { background:var(--nx-danger-dim);   color:var(--nx-danger); }
        .delta-down { background:var(--nx-success-dim);  color:var(--nx-success); }
        .delta-flat { background:var(--nx-info-dim);   color:var(--nx-brand-primary); }

        .preco-referencia {
            font-size:11px; color:var(--nx-text-muted); margin-top:6px;
        }

        /* ====== PENDÊNCIAS INTERNAS ====== */
        .pendencia-item {
            display:flex; align-items:center; justify-content:space-between;
            padding:12px 18px; border-bottom:1px solid var(--nx-border-base);
            transition:background 0.15s; cursor:pointer;
        }

        .pendencia-item:hover { background:var(--nx-bg-hover); }
        .pendencia-item:last-child { border-bottom:none; }

        .pendencia-info { flex:1; }

        .pendencia-title {
            font-size:13px; font-weight:600;
        }

        .pendencia-sub {
            font-size:11.5px; color:var(--nx-text-secondary); margin-top:2px;
        }

        .pendencia-badge {
            padding:3px 10px; border-radius:12px;
            font-size:11.5px; font-weight:700;
            font-family:'JetBrains Mono',monospace;
        }

        .pendencia-badge.urgente { background:var(--nx-danger-dim); color:var(--nx-danger); }
        .pendencia-badge.normal  { background:var(--nx-warning-dim); color:var(--nx-warning); }
        .pendencia-badge.ok      { background:var(--nx-success-dim); color:var(--nx-success); }

        /* ====== NOTÍCIAS ====== */
        .noticia-item {
            padding:13px 18px; border-bottom:1px solid var(--nx-border-base);
            transition:background 0.15s; cursor:pointer;
        }

        .noticia-item:hover { background:var(--nx-bg-hover); }
        .noticia-item:last-child { border-bottom:none; }

        .noticia-titulo {
            font-size:13px; font-weight:600; line-height:1.4;
            margin-bottom:5px;
        }

        .noticia-meta {
            display:flex; gap:10px; font-size:11px; color:var(--nx-text-muted);
            align-items:center;
        }

        .noticia-fonte { color:var(--nx-brand-primary); }

        /* ====== KPI ROW ====== */
        .kpi-mini-grid {
            display:grid; grid-template-columns:1fr 1fr;
            gap:0;
        }

        .kpi-mini {
            padding:16px 18px;
            border-right:1px solid var(--nx-border-base);
            border-bottom:1px solid var(--nx-border-base);
        }

        .kpi-mini:nth-child(even) { border-right:none; }
        .kpi-mini:nth-child(3),
        .kpi-mini:nth-child(4)   { border-bottom:none; }

        .kpi-mini-label {
            font-size:10.5px; text-transform:uppercase; letter-spacing:0.7px;
            color:var(--nx-text-muted); font-weight:600;
        }

        .kpi-mini-value {
            font-family:'JetBrains Mono',monospace;
            font-size:26px; font-weight:800; margin-top:6px; display:block; line-height:1;
        }

        .kpi-mini-sub { font-size:11px; color:var(--nx-text-muted); margin-top:5px; }

        /* ====== ESTADO VAZIO / LOADING ====== */
        .empty-portal {
            padding:32px; text-align:center; color:var(--nx-text-muted);
        }

        .empty-portal .empty-icon { font-size:32px; opacity:0.4; margin-bottom:10px; }
        .empty-portal p { font-size:13px; }
        .empty-portal small { font-size:11px; display:block; margin-top:6px; }

        .skeleton {
            background:linear-gradient(90deg,
                rgba(255,255,255,0.03) 0%,
                rgba(255,255,255,0.07) 50%,
                rgba(255,255,255,0.03) 100%
            );
            background-size:200% 100%;
            animation:shimmer 1.5s infinite;
            border-radius:4px; height:14px; margin-bottom:8px;
        }

        @keyframes shimmer { to { background-position:-200% 0; } }

        /* ====== TOAST ====== */
        .toast {
            position:fixed; bottom:24px; right:24px;
            padding:12px 18px; border-radius:var(--nx-radius);
            font-size:13.5px; font-weight:600; color:#fff;
            z-index:999; animation:toastIn 0.25s ease;
            display:flex; align-items:center; gap:8px;
            box-shadow:var(--nx-shadow-lg);
        }

        /* toast colors handled by --bv-* block below */

        @keyframes toastIn {
            from { opacity:0; transform:translateX(20px); }
            to   { opacity:1; transform:translateX(0); }
        }

        /* ====== SCROLLBAR ====== */
        ::-webkit-scrollbar { width:5px; }
        ::-webkit-scrollbar-track { background:transparent; }
        ::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.08); border-radius:3px; }

        /* ====== BANNER ALERTA CHUVA ====== */
        .banner-alerta {
            background:linear-gradient(135deg,rgba(239,68,68,0.15),rgba(239,68,68,0.05));
            border:1px solid rgba(239,68,68,0.2);
            border-radius:var(--nx-radius);
            padding:12px 18px; margin-bottom:16px;
            display:none; align-items:center; gap:12px;
        }

        .banner-alerta.show { display:flex; }

        /* ====== RESPONSIVO ====== */
        @media (max-width:1400px) {
            .portal-grid { grid-template-columns:1fr 1fr 280px; }
            .col-editais    { grid-column:1 / 3; }
            .col-clima      { grid-column:3 / 4; }
            .col-precos     { grid-column:1 / 3; }
            .col-pendencias { grid-column:3 / 4; }
            .col-noticias   { grid-column:1 / 3; }
            .col-kpis       { grid-column:3 / 4; }
        }

        @media (max-width:1024px) {
            .portal-grid { grid-template-columns:1fr; }
            [class^="col-"] { grid-column:1 / 2 !important; }
        }

.app-container{display:flex;height:100vh;overflow:hidden}
.main-content{flex:1;margin-left:260px;overflow-y:auto;background:var(--nx-bg-base)}

        *{margin:0;padding:0;box-sizing:border-box}body{font-family:'DM Sans',sans-serif;background:var(--nx-bg-base);color:var(--nx-text-primary)}
        .app-container{display:flex;height:100vh;overflow:hidden}.sidebar{width:260px;background:var(--nx-bg-elevated);color:var(--nx-text-primary);display:flex;flex-direction:column;box-shadow:2px 0 8px rgba(0,0,0,.1);z-index:100}
        .sidebar-header{padding:24px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo{font-size:20px;font-weight:700;letter-spacing:1px;color:var(--nx-brand-primary)}
        .sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}.nav-section{padding:8px 0}.nav-section-title{padding:12px 16px;font-size:11px;font-weight:600;text-transform:uppercase;color:rgba(255,255,255,.5)}
        .nav-item{padding:12px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .2s;color:rgba(255,255,255,.7)}
        .nav-item:hover{background:rgba(255,255,255,.05)}.nav-item.active{background:var(--nx-brand-dim);color:var(--nx-brand-primary);border-left:3px solid var(--nx-brand-primary);padding-left:13px}
        .nav-item.disabled{opacity:.5;cursor:not-allowed}.nav-icon{font-size:20px}
        .sidebar-footer{border-top:1px solid rgba(255,255,255,.1);padding:16px;font-size:13px}.user-info{margin-bottom:12px}.user-name{font-weight:600;margin-bottom:4px;color:var(--nx-text-primary)}
        .user-role{font-size:12px;background:var(--nx-brand-dim);color:var(--nx-brand-primary);padding:4px 8px;border-radius:4px;display:inline-block}
        .logout-btn{width:100%;margin-top:12px;padding:8px 12px;background:rgba(239,68,68,.2);color:#fca5a5;border:1px solid rgba(239,68,68,.3);border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}
        .logout-btn:hover{background:rgba(239,68,68,.3)}.main-content{flex:1;overflow-y:auto}
        .page{flex:1;overflow-y:auto;padding:32px 40px;display:none;min-height:0}.page.active{display:flex;flex-direction:column}.page>*{flex-shrink:0}
        .page-login{align-items:center;justify-content:center;background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%)}
        .login-card{background:var(--nx-bg-surface);padding:48px;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.15);width:100%;max-width:400px}
        .login-logo{text-align:center;margin-bottom:32px}.login-title{font-size:28px;font-weight:700;color:var(--nx-text-primary);margin-bottom:8px}.login-subtitle{font-size:14px;color:var(--nx-text-secondary)}
        .form-group{margin-bottom:20px}.form-label{display:block;font-size:13px;font-weight:600;margin-bottom:8px;color:var(--nx-text-primary)}
        .form-input,.form-select{width:100%;padding:11px 14px;border:1px solid var(--nx-border-base);border-radius:6px;font-family:'DM Sans',sans-serif;font-size:14px;transition:all .2s}
        .form-input:focus,.form-select:focus{outline:0;border-color:var(--nx-brand-primary);box-shadow:0 0 0 3px var(--nx-brand-dim)}.form-input::placeholder{color:var(--nx-text-muted)}
        .btn{width:100%;padding:12px 16px;border:0;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif;display:flex;align-items:center;justify-content:center;gap:8px}
        .btn-primary{background:var(--nx-brand-primary);color:#0A0A0A;font-weight:700}.btn-primary:hover{background:var(--nx-brand-primary);box-shadow:0 4px 12px var(--nx-brand-glow)}
        .btn-secondary{background:var(--nx-bg-hover);color:var(--nx-text-secondary);border:1px solid var(--nx-border-base)}.btn-secondary:hover{border-color:var(--nx-brand-primary);color:var(--nx-brand-primary)}.btn-success{background:var(--nx-success);color:var(--nx-bg-base)}.btn-success:hover{background:#1aad52}
        .btn-danger{background:var(--nx-danger);color:var(--nx-text-primary)}.btn-danger:hover{background:var(--nx-danger)}.btn-sm{padding:8px 12px;font-size:12px;width:auto}
        .login-link{text-align:center;margin-top:20px;font-size:13px;color:var(--nx-text-secondary)}.login-link a{color:var(--nx-brand-primary);text-decoration:none;cursor:pointer;font-weight:600}
        .login-form,.register-form{display:none}.login-form.active,.register-form.active{display:block}
        .pending-banner{background:linear-gradient(135deg,var(--nx-warning) 0%,var(--nx-warning) 100%);color:var(--nx-text-primary);padding:16px 20px;border-radius:8px;margin-bottom:24px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:space-between}
        .pending-banner:hover{box-shadow:0 8px 20px rgba(245,158,11,.3)}.pending-text{font-weight:600;font-size:14px}
        .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px 0 16px}.page-title{font-family:'Bebas Neue',sans-serif!important;font-size:30px!important;letter-spacing:1.5px!important;color:var(--nx-text-primary)!important}.page-title{font-size:28px;font-weight:700}
        .stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:24px}
        .stat-card{background:var(--nx-bg-elevated);padding:16px 18px;border-radius:8px;border-left:3px solid var(--nx-brand-primary);transition:border-color .2s}
        .stat-card:hover{border-left-color:var(--nx-brand-primary)}
        .stat-label{font-size:10px;color:var(--nx-text-muted);margin-bottom:6px;text-transform:uppercase;font-weight:600;letter-spacing:0.8px}.stat-number{font-size:24px;font-weight:700;color:var(--nx-text-primary);font-family:'JetBrains Mono',monospace}
        .filters-row{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.search-box{flex:1;min-width:200px;position:relative}
        .search-box input{width:100%;padding:10px 14px 10px 38px;border:1px solid var(--nx-border-base);border-radius:6px;font-size:13px}
        .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--nx-text-muted);font-size:18px}
        .table-container{background:var(--nx-bg-elevated);border-radius:8px;overflow:visible;border:1px solid var(--nx-border-base)}
        table{width:100%;border-collapse:collapse}thead tr{background:var(--nx-bg-surface);border-bottom:1px solid var(--nx-border-base)}
        th{padding:12px 16px;text-align:left;font-size:10px;font-weight:600;color:var(--nx-text-muted);text-transform:uppercase;letter-spacing:0.8px}
        td{padding:14px 16px;font-size:13px;border-bottom:1px solid var(--nx-border-base)}tbody tr:hover{background:var(--nx-bg-hover)}
        .badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:3px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px}
        .badge-draft{background:var(--nx-bg-hover);color:var(--nx-text-muted);border:1px solid var(--nx-border-base)}
        .badge-pending{background:rgba(245,158,11,0.15);color:#F59E0B;border:1px solid rgba(245,158,11,0.4)}
        .badge-approval{background:rgba(168,85,247,0.15);color:#A855F7;border:1px solid rgba(168,85,247,0.4)}
        .badge-approved{background:rgba(34,197,94,0.15);color:#22C55E;border:1px solid rgba(34,197,94,0.4)}
        .badge-quotation{background:var(--nx-purple-bg);color:var(--nx-purple);border:1px solid rgba(139,92,246,0.4)}
        .badge-ready{background:rgba(6,182,212,0.15);color:#06B6D4;border:1px solid rgba(6,182,212,0.4)}
        .badge-final{background:var(--nx-brand-dim);color:var(--nx-brand-primary);border:1px solid rgba(240,184,0,0.4)}
        .badge-payment{background:rgba(240,184,0,0.15);color:var(--nx-brand-primary);border:1px solid rgba(240,184,0,0.4)}
        .badge-done{background:rgba(34,197,94,0.2);color:#22C55E;border:1px solid rgba(34,197,94,0.5);font-weight:700}
        .badge-rejected{background:rgba(239,68,68,0.15);color:#EF4444;border:1px solid rgba(239,68,68,0.4)}
        .badge-cancelled{background:var(--nx-bg-hover);color:var(--nx-text-muted);border:1px solid var(--nx-border-base)}
        /* Cores por Centro de Custo */
        .cc-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;flex-shrink:0}
        .cc-010{background:#22C55E}.cc-011{background:#8B5CF6}.cc-013{background:var(--nx-purple)}.cc-019{background:#06B6D4}.cc-015{background:#EF4444}.cc-001{background:var(--nx-brand-primary)}.cc-outros{background:#606060}
        .cc-label{display:inline-flex;align-items:center}
        /* Filtros por coluna */
        .col-filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center}
        .col-filter-select{padding:6px 10px;background:var(--nx-bg-hover);border:1px solid var(--nx-border-base);border-radius:4px;color:var(--nx-text-primary);font-size:12px;font-family:'DM Sans',sans-serif;min-width:120px;cursor:pointer}
        .col-filter-select:focus{border-color:var(--nx-brand-primary);outline:none;box-shadow:0 0 0 2px var(--nx-brand-dim)}
        .col-filter-label{font-size:10px;text-transform:uppercase;letter-spacing:0.8px;color:var(--nx-text-muted);font-weight:600}
        .col-filter-group{display:flex;flex-direction:column;gap:3px}
        .col-filter-clear{padding:6px 12px;background:transparent;border:1px solid var(--nx-border-base);border-radius:4px;color:var(--nx-text-secondary);font-size:11px;cursor:pointer;font-family:'DM Sans',sans-serif}
        .col-filter-clear:hover{border-color:var(--nx-brand-primary);color:var(--nx-brand-primary)}
        .action-cell{text-align:right;white-space:nowrap}.action-btn{padding:6px 12px;background:var(--nx-brand-primary);color:var(--nx-text-primary);border:0;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center}
        .action-btn:hover{background:var(--nx-primary-hover)}
        .action-sep{width:1px;height:18px;background:var(--nx-border-base);margin:0 2px;display:inline-block;vertical-align:middle}
        .btn-delete-row{background:rgba(239,68,68,0.15);border:1px solid #FF3333;color:#FF3333;padding:6px 8px;border-radius:5px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-family:'DM Sans',sans-serif;vertical-align:middle}
        .btn-delete-row .material-icons-outlined{font-size:20px!important}
        .btn-delete-row:hover{background:#FF3333;color:#fff;box-shadow:0 0 12px rgba(255,51,51,0.5)}.empty-state{text-align:center;padding:60px 20px;color:var(--nx-text-muted)}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-text{font-size:16px;margin-bottom:8px}
        .fab{position:fixed;bottom:24px;right:24px;padding:0 20px;height:56px;background:var(--nx-brand-primary);border:0;border-radius:28px;color:var(--nx-bg-base);font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(240,184,0,0.35);transition:all .2s;display:flex;align-items:center;justify-content:center;gap:4px;z-index:200}
        .fab:hover{background:var(--nx-brand-primary);box-shadow:0 6px 24px rgba(240,184,0,0.5);transform:translateY(-1px)}
        .detail-header{background:var(--nx-bg-elevated);padding:24px;border-radius:8px;margin-bottom:24px;border:1px solid var(--nx-border-base)}
        .detail-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.detail-number{font-size:24px;font-weight:700;font-family:'Bebas Neue',sans-serif;letter-spacing:1px}
        .detail-badges{display:flex;gap:8px}.progress-indicator{display:flex;align-items:center;margin-bottom:20px;gap:8px;overflow-x:auto;padding-bottom:8px}
        .progress-step{display:flex;flex-direction:column;align-items:center;flex-shrink:0}
        .progress-dot{width:36px;height:36px;border-radius:50%;background:var(--nx-bg-hover);border:2px solid var(--nx-border-base);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--nx-text-muted);margin-bottom:8px;transition:all .2s}
        .progress-dot.active{background:var(--nx-brand-primary);border-color:var(--nx-brand-primary);color:var(--nx-bg-base)}.progress-dot.completed{background:var(--nx-success);border-color:var(--nx-success);color:var(--nx-bg-base)}
        .progress-dot.clickable{cursor:pointer}.progress-dot.clickable:hover{transform:scale(1.15);box-shadow:0 2px 8px rgba(0,0,0,.2)}
        .progress-dot.viewing{box-shadow:0 0 0 3px var(--nx-brand-primary)40;transform:scale(1.1)}
        .progress-label{font-size:11px;color:var(--nx-text-secondary);text-align:center;white-space:nowrap;max-width:80px}.progress-line{width:24px;height:2px;background:var(--nx-bg-hover);margin:0 4px;flex-shrink:0}
        .phase-view-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--nx-brand-dim);border:1px solid rgba(240,184,0,0.3);border-radius:8px;margin-bottom:16px;font-size:13px;color:var(--nx-brand-primary)}
        .phase-view-banner .material-icons-outlined{font-size:20px}.phase-view-banner button{background:var(--nx-brand-primary);color:var(--nx-text-primary);border:0;border-radius:6px;padding:6px 14px;font-size:12px;cursor:pointer;font-weight:600}
        .detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;padding:20px;background:var(--nx-bg-surface);border-radius:6px;border:1px solid var(--nx-border-base)}
        .detail-label{font-size:10px;color:var(--nx-text-muted);margin-bottom:6px;text-transform:uppercase;font-weight:600;letter-spacing:0.6px}.detail-value{font-size:14px;color:var(--nx-text-primary);font-weight:500}
        .section{background:var(--nx-bg-elevated);padding:24px;border-radius:8px;margin-bottom:20px;border:1px solid var(--nx-border-base)}
        .section-title{font-size:14px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;gap:8px;color:var(--nx-brand-primary);text-transform:uppercase;letter-spacing:1px;font-family:'DM Sans',sans-serif}
        .section-title .material-icons-outlined{color:var(--nx-brand-primary);font-size:20px}
        .items-table{width:100%;border-collapse:collapse}.items-table thead tr{background:var(--nx-bg-base);border-bottom:1px solid var(--nx-border-base)}
        .items-table th{padding:12px;text-align:left;font-size:12px;font-weight:600;color:var(--nx-text-secondary)}.items-table td{padding:12px;border-bottom:1px solid var(--nx-border-base);font-size:13px}
        .quotations-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:24px}
        .quotation-card{background:var(--nx-bg-elevated);border:1px solid var(--nx-border-base);border-radius:8px;padding:18px;transition:all .2s;position:relative}
        .quotation-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.3)}.quotation-card.best-price{border-color:var(--nx-success);box-shadow:0 0 0 2px var(--nx-success-dim)}
        .best-price-badge{position:absolute;top:-8px;right:16px;background:var(--nx-success);color:var(--nx-bg-base);padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700}
        .quotation-header{border-bottom:1px solid var(--nx-border-base);padding-bottom:14px;margin-bottom:14px}
        .quotation-supplier{font-weight:700;font-size:14px;margin-bottom:6px;color:var(--nx-text-primary)}.quotation-contact{font-size:12px;color:var(--nx-text-muted)}
        .quotation-info{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;font-size:13px}
        .quotation-info-row{display:flex;justify-content:space-between}.quotation-label{color:var(--nx-text-secondary);font-weight:500}.quotation-value{color:var(--nx-text-primary);font-weight:600}
        .quotation-total{background:var(--nx-bg-surface);padding:12px;border-radius:6px;font-weight:700;font-size:16px;margin-bottom:12px;text-align:right;font-family:'JetBrains Mono',monospace;color:var(--nx-brand-primary)}
        .quotation-action{width:100%}.timeline{position:relative;padding-left:32px}
        .timeline-item{position:relative;padding-bottom:20px;border-left:2px solid var(--nx-border-base);padding-left:20px}
        .timeline-item:last-child{border-left:0}.timeline-dot{position:absolute;width:12px;height:12px;background:var(--nx-brand-primary);border-radius:50%;left:-7px;top:4px;box-shadow:0 0 0 3px var(--nx-brand-dim)}
        .timeline-date{font-size:11px;color:var(--nx-text-muted);margin-bottom:4px;font-family:'JetBrains Mono',monospace}.timeline-status{font-weight:600;margin-bottom:4px;color:var(--nx-text-primary)}
        .wizard-container{background:var(--nx-bg-elevated);border:1px solid var(--nx-border-base);border-radius:8px;padding:32px;max-width:600px;margin:0 auto}
        .wizard-progress{display:flex;justify-content:space-between;margin-bottom:40px}.wizard-progress-item{flex:1;text-align:center;position:relative}
        .wizard-progress-item::after{content:'';position:absolute;top:20px;left:50%;width:100%;height:2px;background:var(--nx-bg-hover);z-index:0}
        .wizard-progress-item:last-child::after{display:none}.wizard-progress-dot{width:40px;height:40px;background:var(--nx-bg-hover);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;font-weight:600;color:var(--nx-text-secondary);position:relative;z-index:1}
        .wizard-progress-dot.active{background:var(--nx-brand-primary);color:var(--nx-bg-base)}.wizard-progress-dot.completed{background:var(--nx-success);color:var(--nx-bg-base)}.wizard-progress-label{font-size:12px;color:var(--nx-text-secondary)}
        .wizard-step{display:none}.wizard-step.active{display:block;animation:fadeIn .3s ease-in}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
        .wizard-title{font-size:20px;font-weight:700;margin-bottom:24px;color:var(--nx-text-primary)}.wizard-buttons{display:flex;gap:12px;margin-top:32px;justify-content:space-between}.wizard-buttons .btn{flex:1}
        .modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center;padding:20px}
        .modal-overlay.active{display:flex}.modal{background:var(--nx-bg-elevated);border:1px solid var(--nx-border-base);border-radius:8px;padding:32px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.5)}
        .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;border-bottom:1px solid var(--nx-border-base);padding-bottom:16px}.modal-title{font-size:20px;font-weight:700}
        .modal-close{background:0;border:0;font-size:24px;cursor:pointer;color:var(--nx-text-secondary)}.modal-close:hover{color:var(--nx-text-primary)}
        .toast-container{position:fixed;top:24px;right:24px;z-index:2000;display:flex;flex-direction:column;gap:12px}
        .toast{background:var(--nx-bg-elevated);padding:16px 20px;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.4);border:1px solid var(--nx-border-base);display:flex;align-items:center;gap:12px;font-size:13px;animation:slideIn .3s ease-out}
        @keyframes slideIn{from{transform:translateX(400px);opacity:0}to{transform:translateX(0);opacity:1}}
        .toast.success{border-left:4px solid var(--nx-success);color:var(--nx-success)}.toast.error{border-left:4px solid #EF4444;color:#EF4444}
        .spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--nx-brand-dim);border-top:2px solid var(--nx-brand-primary);border-radius:50%;animation:spin .8s linear infinite}
        @keyframes spin{to{transform:rotate(360deg)}}.urgencia-normal{background:#dbeafe;color:#0c4a6e}.urgencia-urgente{background:#fed7aa;color:var(--nx-warning)}.urgencia-emergencial{background:#fecaca;color:#7f1d1d}
        .mobile-toggle{display:none;position:fixed;top:12px;left:12px;z-index:101;width:40px;height:40px;border-radius:8px;background:var(--nx-bg-elevated);border:1px solid var(--nx-border-base);color:var(--nx-text-primary);cursor:pointer;align-items:center;justify-content:center}
        .sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:99}
        .sidebar-overlay.active{display:block}
        /* mobile rules moved to consolidated block below */
        .hide{display:none!important}.center-text{text-align:center}.value-format{font-family:'Courier New',monospace;font-weight:600}
        .items-input-group{background:var(--nx-bg-base);padding:12px;border-radius:6px;margin-bottom:12px;display:grid;grid-template-columns:1fr 100px 100px 60px;gap:8px;align-items:end}
        .items-input-group input{padding:8px 10px;border:1px solid var(--nx-border-base);border-radius:4px;font-size:13px}
        .comparison-table{width:100%;border-collapse:collapse;margin-top:16px;font-size:12px}
        .comparison-table th{background:var(--nx-bg-base);padding:12px;border:1px solid var(--nx-border-base);font-weight:600;color:var(--nx-text-secondary);text-align:left}
        .comparison-table td{padding:12px;border:1px solid var(--nx-border-base)}
    
/* Scrollbar */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--nx-border-base);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:var(--nx-text-muted)}

.stat-card .stat-title { font-family: 'Bebas Neue', sans-serif !important; letter-spacing: 1px; }
.stat-card .stat-number { font-family: 'JetBrains Mono', monospace !important; }
/* ====== REDESIGN MAIN-CONTENT v6 ====== */
.main-content {
    padding: 20px 24px !important;
}
.page {
    padding: 0 !important;
}
.stats-row {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important;
    gap: 10px !important;
    margin-bottom: 20px !important;
}
.stat-card {
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-left: 3px solid var(--nx-brand-primary) !important;
    border-radius: 6px !important;
    padding: 14px 12px !important;
}
.stat-label {
    font-family: "DM Sans", sans-serif !important;
    font-size: 9.5px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: #606060 !important;
    margin-bottom: 6px !important;
    font-weight: 600 !important;
}
.stat-number {
    font-family: "JetBrains Mono", monospace !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #F0F0F0 !important;
    line-height: 1 !important;
}
.filters-row {
    display: flex !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
    align-items: center !important;
}
.filters-row .search-box input,
.filters-row .form-select {
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    color: #F0F0F0 !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    padding: 8px 12px 8px 34px !important;
    transition: border-color 0.2s !important;
}
.filters-row .form-select {
    padding: 8px 12px !important;
}
.filters-row .search-box input:focus,
.filters-row .form-select:focus {
    border-color: var(--nx-brand-primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(240,184,0,0.15) !important;
}
.filters-row .search-icon {
    color: #606060 !important;
}
.table-container {
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 6px !important;
    overflow: hidden !important;
}
thead tr {
    background: #111111 !important;
    border-bottom: 1px solid #2A2A2A !important;
}
thead th {
    font-size: 9.5px !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    color: #606060 !important;
    font-weight: 700 !important;
    padding: 10px 10px !important;
    font-family: "DM Sans", sans-serif !important;
    white-space: nowrap !important;
}
tbody td {
    padding: 10px 10px !important;
    font-size: 12.5px !important;
    border-bottom: 1px solid #1E1E1E !important;
    color: #A0A0A0 !important;
}
tbody tr:hover {
    background: #1E1E1E !important;
}
.page-title {
    font-family: "Bebas Neue", sans-serif !important;
    font-size: 28px !important;
    letter-spacing: 2px !important;
    color: #FFFFFF !important;
}
.fab {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    padding: 0 20px !important;
    height: 48px !important;
    background: var(--nx-brand-primary) !important;
    border: none !important;
    border-radius: 28px !important;
    color: #0A0A0A !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    font-family: "DM Sans", sans-serif !important;
    cursor: pointer !important;
    box-shadow: 0 4px 16px rgba(240,184,0,0.35) !important;
    transition: all 0.2s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    z-index: 200 !important;
}
.fab:hover {
    background: #C99A00 !important;
    box-shadow: 0 6px 24px rgba(240,184,0,0.5) !important;
    transform: translateY(-2px) !important;
}
.fab .material-icons-outlined {
    color: #0A0A0A !important;
}
/* Responsive auto-fit handles columns automatically */
@media (max-width: 768px) {
    /* Layout estrutural */
    .mobile-toggle { display:flex !important; }
    .app-container { display:block !important; height:auto !important; overflow:visible !important; }
    .sidebar { position:fixed !important; top:0; left:0; bottom:0; width:260px; z-index:200; transform:translateX(-100%); transition:transform .3s ease; }
    .sidebar.open { transform:translateX(0) !important; }
    .sidebar-overlay.active { display:block !important; }
    .main-content { margin-left:0 !important; padding:14px 12px !important; padding-top:60px !important; width:100% !important; display:block !important; overflow:visible !important; min-height:100vh !important; }

    /* Header e filtros */
    .page-header { flex-direction:column !important; gap:10px !important; align-items:stretch !important; }
    .page-header > div { justify-content:space-between !important; }
    .page-title { font-size:22px !important; }
    .filters-row { flex-direction:column !important; gap:8px !important; }
    .filters-row .form-select { width:100% !important; }
    .col-filters { flex-wrap:wrap !important; gap:6px !important; }
    .col-filter-select { min-width:100px !important; min-height:44px !important; }

    /* Inputs 16px (previne zoom iOS) */
    .search-box input, .form-select, .form-input, .col-filter-select, input, select, textarea { font-size:16px !important; }

    /* Stats */
    .stats-row { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
    .stat-card { padding:12px !important; }
    .stat-number { font-size:20px !important; }

    /* Tabela */
    .table-container { overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
    table { min-width:600px; }

    /* Detalhe do pedido */
    .detail-header { padding:16px !important; }
    .detail-grid { grid-template-columns:1fr !important; }
    .detail-title-row { flex-direction:column !important; gap:8px !important; }
    .progress-indicator { overflow-x:auto !important; -webkit-overflow-scrolling:touch; padding-bottom:8px; }
    .progress-dot { width:28px !important; height:28px !important; font-size:11px !important; }
    .progress-label { font-size:9px !important; max-width:50px !important; }
    .progress-line { width:10px !important; }
    .section { margin-bottom:16px !important; }
    .quotations-container { grid-template-columns:1fr !important; }

    /* Pages */
    .page { padding:0 !important; }
    .page.active { display:block !important; }

    /* Botões de ação no detalhe */
    .detail-header div[style*="display:flex"] { flex-wrap:wrap !important; }
    .btn { font-size:13px !important; padding:10px 14px !important; }

    /* Wizard / Nova solicitação */
    .wizard-container { padding:16px !important; }
    .wizard-progress { gap:2px !important; }
    .wizard-progress-label { font-size:9px !important; }
    .items-input-group { grid-template-columns:1fr 1fr !important; gap:6px !important; }
    .btn-nova-solicitacao { width:100%; justify-content:center; }
    .view-toggle-btn { flex:1; }

    /* Modal e FAB */
    .modal { max-width:95vw !important; padding:20px !important; margin:10px !important; }
    .modal-overlay { padding:10px !important; }
    .fab { bottom:14px !important; right:14px !important; height:44px !important; font-size:12px !important; padding:0 14px !important; }

    /* Toast */
    .toast-container { top:auto !important; bottom:16px !important; right:12px !important; left:12px !important; }

    /* Kanban */
    .kanban-board { flex-direction:column !important; }
    .kanban-column { min-width:100% !important; }

    /* Touch targets 44px mínimo */
    .action-btn { min-height:44px !important; min-width:44px !important; padding:8px 14px !important; font-size:13px !important; }
    .btn-delete-row { min-height:36px !important; min-width:36px !important; }
    .nav-item { min-height:44px !important; }

    /* Comparison table */
    .comparison-table { font-size:11px !important; }
    .comparison-table th, .comparison-table td { padding:6px 4px !important; }

    /* Hide less essential table columns on mobile */
    .hide-mobile { display:none !important; }
}
@media (max-width: 480px) {
    .main-content { padding:10px 8px !important; }
    .stats-row { grid-template-columns: 1fr !important; }
    .stat-card { padding:10px !important; }
    .stat-number { font-size:18px !important; }
    .detail-header { padding:12px !important; }
    .section { padding:12px !important; }
    .comparison-table { font-size:10px !important; }
    .comparison-table th, .comparison-table td { padding:4px 3px !important; }
    .btn { font-size:12px !important; padding:8px 10px !important; }
    .fab { bottom:10px !important; right:10px !important; height:40px !important; font-size:11px !important; }
    .page-title { font-size:20px !important; }
}

/* ── Botão Nova Solicitação no page-header ── */
.btn-nova-solicitacao {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 20px;
    height: 44px;
    background: var(--nx-brand-primary);
    border: none;
    border-radius: 22px;
    color: #0A0A0A;
    font-size: 14px;
    font-weight: 700;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(240,184,0,0.35);
    transition: all 0.2s ease;
    flex-shrink: 0;
    white-space: nowrap;
}
.btn-nova-solicitacao:hover {
    background: #C99A00;
    box-shadow: 0 6px 24px rgba(240,184,0,0.5);
    transform: translateY(-1px);
}
.btn-nova-solicitacao .material-icons-outlined {
    font-size: 18px;
    color: #0A0A0A;
}

/* ====== END REDESIGN v5 ====== */

/* ====== KANBAN BOARD ====== */
.kanban-board {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 16px;
    min-height: 400px;
}
.kanban-column {
    min-width: 220px;
    max-width: 260px;
    flex-shrink: 0;
    background: var(--nx-bg-surface);
    border: 1px solid var(--nx-border-base);
    border-radius: 6px;
    display: flex;
    flex-direction: column;
}
.kanban-column-header {
    padding: 12px 14px;
    border-bottom: 1px solid var(--nx-border-base);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.kanban-column-title {
    font-family: 'DM Sans', sans-serif;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: var(--nx-text-muted);
    font-weight: 700;
}
.kanban-column-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    background: var(--nx-bg-hover);
    color: var(--nx-text-secondary);
    padding: 2px 7px;
    border-radius: 3px;
}
.kanban-column-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.kanban-card {
    background: var(--nx-bg-elevated);
    border: 1px solid var(--nx-border-base);
    border-left: 3px solid var(--nx-text-muted);
    border-radius: 6px;
    padding: 12px;
    cursor: pointer;
    transition: all 0.15s;
}
.kanban-card:hover {
    background: var(--nx-bg-hover);
    border-color: var(--nx-brand-primary);
}
.kanban-card-numero {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    color: var(--nx-text-primary);
    margin-bottom: 4px;
}
.kanban-card-obra {
    font-size: 12px;
    color: var(--nx-text-secondary);
    margin-bottom: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.kanban-card-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.kanban-card-valor {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    color: var(--nx-brand-primary);
}
.kanban-card-solicitante {
    font-size: 10px;
    color: var(--nx-text-muted);
    max-width: 80px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.kanban-card-aging {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 4px;
    flex-shrink: 0;
}
.kanban-card-aging.aging-green { background: var(--nx-success); }
.kanban-card-aging.aging-amber { background: var(--nx-warning); }
.kanban-card-aging.aging-red { background: #EF4444; animation: pulse-red 1.5s ease-in-out infinite; }
@keyframes pulse-red { 0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,0.5)} 50%{box-shadow:0 0 0 4px rgba(239,68,68,0)} }

.kanban-card.aging-border-red { border-left-color: #EF4444; animation: pulse-border-red 1.5s ease-in-out infinite; }
@keyframes pulse-border-red { 0%,100%{border-left-color:#EF4444} 50%{border-left-color:rgba(239,68,68,0.4)} }

/* View Toggle Button */
.view-toggle-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--nx-bg-hover);
    border: 1px solid var(--nx-border-base);
    border-radius: 6px;
    color: var(--nx-text-secondary);
    font-size: 12px;
    font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.view-toggle-btn:hover { border-color: var(--nx-brand-primary); color: var(--nx-brand-primary); }
.view-toggle-btn .material-icons-outlined { font-size: 16px; }

/* ====== COMPARISON MATRIX ENHANCED ====== */
.comparison-table .best-value { background: var(--nx-success-dim) !important; color: var(--nx-success) !important; font-weight: 700 !important; }
.comparison-table .winner-row { border-left: 3px solid var(--nx-brand-primary) !important; background: var(--nx-brand-dim) !important; }
.comparison-table .winner-row td { background: var(--nx-brand-dim) !important; }
.badge-recomendado {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: var(--nx-brand-primary);
    color: #0A0A0A;
}
.comparison-table .score-col {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 13px;
}

/* ====== PULSE FEED ====== */
.pulse-feed {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 800px;
}
.pulse-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 0;
    border-bottom: 1px solid var(--nx-border-base);
    cursor: pointer;
    transition: background 0.15s;
}
.pulse-item:hover { background: var(--nx-bg-elevated); margin: 0 -12px; padding: 16px 12px; border-radius: 6px; }
.pulse-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
}
.pulse-icon.pi-encaminhado { background: var(--nx-warning-dim); color: var(--nx-warning); }
.pulse-icon.pi-aprovado { background: var(--nx-success-dim); color: var(--nx-success); }
.pulse-icon.pi-rejeitado { background: var(--nx-danger-dim); color: #EF4444; }
.pulse-icon.pi-cotacao_selecionada { background: var(--nx-purple-bg); color: var(--nx-purple); }
.pulse-icon.pi-docs_fiscais_anexados { background: var(--nx-brand-dim); color: var(--nx-brand-primary); }
.pulse-icon.pi-pagamento_aprovado { background: var(--nx-success-dim); color: var(--nx-success); }
.pulse-icon.pi-cancelado { background: var(--nx-danger-dim); color: #EF4444; }
.pulse-icon.pi-devolvido_financeiro { background: var(--nx-warning-dim); color: var(--nx-warning); }
.pulse-body { flex: 1; min-width: 0; }
.pulse-text { font-size: 13px; color: var(--nx-text-primary); line-height: 1.4; }
.pulse-text strong { color: var(--nx-brand-primary); }
.pulse-time { font-size: 11px; color: var(--nx-text-muted); margin-top: 2px; }
.pulse-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--nx-text-muted);
}
.pulse-empty .material-icons-outlined { font-size: 48px; display: block; margin-bottom: 12px; opacity: 0.4; }

/* Sidebar notification dot */
.nav-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--nx-brand-primary);
    box-shadow: 0 0 5px var(--nx-brand-primary);
    flex-shrink: 0;
    animation: pulse 2s ease-in-out infinite;
}

/* ====== SLA SEMAFORO ====== */
.sla-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-left: 6px;
    vertical-align: middle;
}
.sla-dot.sla-green { background: var(--nx-success); }
.sla-dot.sla-amber { background: var(--nx-warning); }
.sla-dot.sla-red { background: #EF4444; animation: pulse-red 1.5s ease-in-out infinite; }

.gargalos-section {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 20px;
    padding: 16px;
    background: var(--nx-bg-surface);
    border: 1px solid var(--nx-border-base);
    border-radius: 6px;
}
.gargalo-card {
    padding: 12px;
    background: var(--nx-bg-elevated);
    border-radius: 6px;
    border-left: 3px solid var(--nx-border-base);
}
.gargalo-card.gargalo-risk { border-left-color: #EF4444; }
.gargalo-card.gargalo-slow { border-left-color: var(--nx-warning); }
.gargalo-card.gargalo-avg { border-left-color: var(--nx-brand-primary); }
.gargalo-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--nx-text-muted);
    font-weight: 600;
    margin-bottom: 6px;
}
.gargalo-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 20px;
    font-weight: 700;
    color: var(--nx-text-primary);
}
.gargalo-detail { font-size: 11px; color: var(--nx-text-muted); margin-top: 4px; }

/* ====== CALENDAR VIEW ====== */
.calendar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}
.calendar-nav-btn {
    background: var(--nx-bg-hover);
    border: 1px solid var(--nx-border-base);
    border-radius: 6px;
    color: var(--nx-text-secondary);
    padding: 8px 14px;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    transition: all 0.2s;
}
.calendar-nav-btn:hover { border-color: var(--nx-brand-primary); color: var(--nx-brand-primary); }
.calendar-month-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 24px;
    letter-spacing: 2px;
    color: var(--nx-text-primary);
}
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border: 1px solid var(--nx-border-base);
    border-radius: 6px;
    overflow: hidden;
}
.calendar-day-header {
    padding: 10px;
    text-align: center;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--nx-text-muted);
    font-weight: 700;
    background: var(--nx-bg-surface);
    border-bottom: 1px solid var(--nx-border-base);
}
.calendar-day {
    min-height: 90px;
    padding: 6px;
    background: var(--nx-bg-elevated);
    border: 1px solid var(--nx-border-base);
    border-width: 0 1px 1px 0;
    position: relative;
}
.calendar-day.other-month { background: var(--nx-bg-surface); opacity: 0.4; }
.calendar-day.today { background: var(--nx-brand-dim); }
.calendar-day-number {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    color: var(--nx-text-secondary);
    margin-bottom: 4px;
}
.calendar-chip {
    display: block;
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 600;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
    transition: opacity 0.15s;
}
.calendar-chip:hover { opacity: 0.8; }
.calendar-chip.chip-deadline { background: var(--nx-purple-bg); color: var(--nx-purple); }
.calendar-chip.chip-payment { background: var(--nx-success-dim); color: var(--nx-success); }
.calendar-chip.chip-stuck { background: var(--nx-danger-dim); color: #EF4444; }
.calendar-chip-more {
    font-size: 10px;
    color: var(--nx-text-muted);
    padding: 1px 4px;
    cursor: pointer;
}

/* Sidebar sub-nav */
.nav-sub-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 16px 7px 52px;
    color: var(--nx-text-muted);
    text-decoration: none;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
    border-left: 3px solid transparent;
}
.nav-sub-item:hover { background: rgba(255,255,255,0.03); color: var(--nx-text-secondary); }
.nav-sub-item.active { color: var(--nx-brand-primary); border-left-color: var(--nx-brand-primary); background: var(--nx-brand-dim); }

@media (max-width: 768px) {
    .gargalos-section { grid-template-columns: 1fr; }
    .kanban-column { min-width: 200px; }
    .calendar-day { min-height: 60px; }
}

/* ====== FORNECEDORES SUB-MODULE ====== */
.fornecedores-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.forn-stat{background:var(--nx-bg-elevated);border-radius:8px;padding:14px 16px;border-left:3px solid var(--nx-brand-primary)}
.forn-stat-label{font-size:11px;color:var(--nx-text-muted);text-transform:uppercase;letter-spacing:.5px}
.forn-stat-number{font-size:22px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--nx-text-primary);margin-top:2px}
.forn-table{width:100%;border-collapse:collapse}
.forn-table th{padding:8px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--nx-text-muted);background:var(--nx-bg-surface);text-align:left;border-bottom:1px solid var(--nx-border-base)}
.forn-table td{padding:10px 12px;font-size:13px;color:var(--nx-text-secondary);border-bottom:1px solid var(--nx-border-base)}
.forn-table tr:hover{background:var(--nx-bg-hover);cursor:pointer}
.forn-tag{display:inline-block;padding:2px 7px;font-size:10px;border-radius:3px;background:var(--nx-brand-dim);color:var(--nx-brand-primary);font-weight:600;margin:1px 2px}
.forn-stars{color:var(--nx-brand-primary);font-size:13px;letter-spacing:1px}
.forn-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}
.forn-dot.active{background:var(--nx-success)}
.forn-dot.inactive{background:var(--nx-danger)}
.forn-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.forn-detail-item{padding:10px 12px;background:var(--nx-bg-hover);border-radius:6px}
.forn-detail-label{font-size:10px;color:var(--nx-text-muted);text-transform:uppercase;letter-spacing:.5px}
.forn-detail-value{font-size:13px;color:var(--nx-text-primary);margin-top:2px}
.forn-hist-card{background:var(--nx-bg-elevated);border-radius:8px;padding:14px;margin-bottom:8px;border-left:3px solid var(--nx-border-base);cursor:pointer;transition:border-color .2s}
.forn-hist-card:hover{border-left-color:var(--nx-brand-primary)}
.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--nx-bg-elevated);border:1px solid var(--nx-border-base);border-radius:0 0 6px 6px;max-height:220px;overflow-y:auto;z-index:1002;display:none}
.autocomplete-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--nx-border-base);transition:background .15s}
.autocomplete-item:hover,.autocomplete-item.active{background:var(--nx-brand-dim)}
.autocomplete-item-name{font-size:13px;font-weight:600;color:var(--nx-text-primary)}
.autocomplete-item-sub{font-size:11px;color:var(--nx-text-muted);margin-top:2px}
.autocomplete-create{padding:10px 14px;text-align:center;color:var(--nx-brand-primary);font-size:12px;font-weight:600;cursor:pointer}
.autocomplete-create:hover{background:var(--nx-brand-dim)}
@media(max-width:768px){.forn-detail-grid{grid-template-columns:1fr}.fornecedores-stats{grid-template-columns:1fr 1fr}}
/* obs-fiscal empty state */
.obs-fiscal-empty { background: var(--nx-bg-hover); border-color: var(--nx-border-base); color: var(--nx-text-muted); }
/* ====== END NEW FEATURES CSS ====== */


/* ====== AUTO TABLE RESPONSIVE ====== */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 16px;
    border-radius: 8px;
    /* Sombras para indicar scroll em mobile */
    background: linear-gradient(to right, var(--nx-bg-surface) 30%, rgba(255,255,255,0)),
                linear-gradient(to right, rgba(255,255,255,0), var(--nx-bg-surface) 70%) 0 100%,
                radial-gradient(farthest-side at 0 50%, rgba(0,0,0,0.5), rgba(0,0,0,0)),
                radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,0.5), rgba(0,0,0,0)) 0 100%;
    background-repeat: no-repeat;
    background-color: var(--nx-bg-surface);
    background-size: 40px 100%, 40px 100%, 14px 100%, 14px 100%;
    background-position: 0 0, 100%, 0 0, 100%;
    background-attachment: local, local, scroll, scroll;
}
.table-responsive table { margin-bottom: 0; min-width: 800px; /* Força scroll horizontal em grids muito curtas */ }

