/* ============================================================
   AdminLTE-NeoCloud-Modern.css
   CSS Override para modernizar AdminLTE 2 sem alterar HTML
   Autor: Antigravity Agent | Data: 2026-05-07
   ============================================================ */

/* â”€â”€ Google Fonts â”€â”€ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* â”€â”€ CSS Variables (Design Tokens) â”€â”€ */
:root {
    --neo-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --neo-radius-sm: 6px;
    --neo-radius-md: 10px;
    --neo-radius-lg: 14px;
    --neo-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    --neo-shadow-md: 0 4px 12px rgba(0,0,0,0.08);
    --neo-shadow-lg: 0 10px 30px rgba(0,0,0,0.12);
    --neo-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    --neo-bg-page: #f0f2f5;
    --neo-bg-card: #ffffff;
    --neo-border: #e8eaed;
    --neo-text-primary: #1a1a2e;
    --neo-text-secondary: #6b7280;
    --neo-accent: #3b82f6;
}

/* â”€â”€ Base & Typography â”€â”€ */
body {
    font-family: var(--neo-font) !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    letter-spacing: -0.01em;
}

.content-wrapper {
    background: var(--neo-bg-page) !important;
}

h1, h2, h3, h4, h5, h6,
.box-title,
.info-box-text,
.info-box-number {
    font-family: var(--neo-font) !important;
    font-weight: 600 !important;
    color: var(--neo-text-primary);
}

/* Heading size hierarchy â€” compact & professional */
h1, .content-header > h1 {
    font-size: 20px !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em;
    margin: 0 0 8px 0 !important;
}

h2 {
    font-size: 17px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em;
}

h3 {
    font-size: 15px !important;
    font-weight: 600 !important;
}

h4 {
    font-size: 14px !important;
    font-weight: 600 !important;
}

h5 {
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--neo-text-secondary) !important;
}

h6 {
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--neo-text-secondary) !important;
}

/* Page title in content area */
.content-header {
    padding: 8px 15px 0 !important;
}

.content-header > h1 small {
    font-size: 13px !important;
    color: var(--neo-text-secondary) !important;
    font-weight: 400 !important;
}

/* â”€â”€ Header / Navbar â”€â”€ */
.main-header .navbar {
    border: none !important;
    box-shadow: var(--neo-shadow-sm) !important;
}

.main-header .logo {
    font-family: var(--neo-font) !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em;
}

.navbar-custom-menu > .nav > li > a,
.navbar-nav > .user-menu > .dropdown-toggle {
    font-family: var(--neo-font) !important;
    font-weight: 500;
    transition: var(--neo-transition);
}

.navbar-custom-menu > .nav > li > a:hover {
    opacity: 0.85;
    transform: translateY(-1px);
}

/* â”€â”€ Dropdown Menus â”€â”€ */
.dropdown-menu {
    border: 1px solid var(--neo-border) !important;
    border-radius: var(--neo-radius-md) !important;
    box-shadow: var(--neo-shadow-lg) !important;
    padding: 6px !important;
    animation: neoDropdown 0.15s ease-out;
}

@keyframes neoDropdown {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.dropdown-menu > li > a {
    border-radius: var(--neo-radius-sm) !important;
    padding: 8px 14px !important;
    font-size: 13px !important;
    transition: var(--neo-transition);
}

.dropdown-menu > li > a:hover {
    background: #f3f4f6 !important;
}

.user-menu .user-header {
    border-radius: var(--neo-radius-md) var(--neo-radius-md) 0 0 !important;
}

/* â”€â”€ Sidebar â”€â”€ */
.main-sidebar,
.left-side {
    box-shadow: 2px 0 8px rgba(0,0,0,0.05) !important;
}

.sidebar-menu > li > a {
    border-radius: var(--neo-radius-sm);
    margin: 2px 8px;
    transition: var(--neo-transition);
    font-family: var(--neo-font) !important;
    font-size: 13.5px !important;
}

.sidebar-menu > li > a:hover {
    transform: translateX(3px);
}

.sidebar-menu > li.active > a {
    border-radius: var(--neo-radius-sm);
}

.sidebar-menu .treeview-menu > li > a {
    font-size: 13px !important;
    padding: 6px 5px 6px 20px !important;
    border-radius: var(--neo-radius-sm);
    margin: 1px 4px;
    transition: var(--neo-transition);
}

.sidebar-menu .treeview-menu > li > a:hover {
    padding-left: 24px !important;
}

.sidebar-form .form-control {
    border-radius: var(--neo-radius-sm) !important;
    font-family: var(--neo-font) !important;
    font-size: 13px !important;
}

.sidebar-menu > li > .treeview-menu {
    padding: 4px 0 !important;
}

.sidebar-menu li.header {
    font-family: var(--neo-font) !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    font-size: 11px !important;
    letter-spacing: 0.05em;
}

/* â”€â”€ Content Boxes (Cards) â”€â”€ */
.box {
    border-radius: var(--neo-radius-lg) !important;
    border: 1px solid var(--neo-border) !important;
    box-shadow: var(--neo-shadow-sm) !important;
    transition: var(--neo-transition);
}

.box:hover {
    box-shadow: var(--neo-shadow-md) !important;
}

.box-header {
    border-bottom: 1px solid var(--neo-border) !important;
    padding: 14px 18px !important;
}

.box-header.with-border {
    border-bottom-color: var(--neo-border) !important;
}

.box-title {
    font-size: 15px !important;
    font-weight: 600 !important;
}

.box-body {
    padding: 18px !important;
}

.box-footer {
    border-top: 1px solid var(--neo-border) !important;
    background: #fafbfc !important;
    border-radius: 0 0 var(--neo-radius-lg) var(--neo-radius-lg) !important;
}

/* â”€â”€ Buttons â”€â”€ */
.btn {
    border-radius: var(--neo-radius-sm) !important;
    font-family: var(--neo-font) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    transition: var(--neo-transition);
    border: none !important;
    padding: 7px 16px !important;
    letter-spacing: 0.01em;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--neo-shadow-md);
}

.btn:active {
    transform: translateY(0) scale(0.98);
}

.btn-default {
    background: #f3f4f6 !important;
    color: var(--neo-text-primary) !important;
    border: 1px solid var(--neo-border) !important;
}

.btn-default:hover {
    background: #e5e7eb !important;
}

.btn-flat {
    border-radius: var(--neo-radius-sm) !important;
}

.btn-xs {
    padding: 3px 10px !important;
    font-size: 12px !important;
    border-radius: 5px !important;
}

.btn-sm {
    padding: 5px 12px !important;
    border-radius: var(--neo-radius-sm) !important;
}

/* â”€â”€ Forms â”€â”€ */
.form-control {
    border-radius: var(--neo-radius-sm) !important;
    border: 1.5px solid #d1d5db !important;
    font-family: var(--neo-font) !important;
    font-size: 13.5px !important;
    padding: 7px 12px !important;
    transition: var(--neo-transition);
    box-shadow: none !important;
}

.form-control:focus {
    border-color: var(--neo-accent) !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.12) !important;
}

.input-group-btn .btn {
    border: 1.5px solid #d1d5db !important;
}

select.form-control {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 30px !important;
}

label {
    font-family: var(--neo-font) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    color: var(--neo-text-secondary);
    margin-bottom: 4px !important;
}

/* â”€â”€ Tables â”€â”€ */
.table {
    font-family: var(--neo-font) !important;
    font-size: 13px !important;
}

.table > thead > tr > th {
    font-weight: 600 !important;
    font-size: 12px !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--neo-text-secondary) !important;
    border-bottom: 2px solid var(--neo-border) !important;
    padding: 10px 12px !important;
    background: #fafbfc !important;
}

.table > tbody > tr > td {
    padding: 10px 12px !important;
    vertical-align: middle !important;
    border-top: 1px solid #f3f4f6 !important;
}

.table-striped > tbody > tr:nth-of-type(odd) {
    background-color: #fafbfc !important;
}

.table-hover > tbody > tr:hover {
    background-color: #f0f4ff !important;
    transition: var(--neo-transition);
}

.table > tbody > tr > td .btn {
    padding: 3px 8px !important;
}

/* â”€â”€ Breadcrumb â”€â”€ */
.breadcrumb {
    background: transparent !important;
    font-family: var(--neo-font) !important;
    font-size: 13px !important;
    padding: 8px 0 !important;
    border-radius: 0 !important;
}

.breadcrumb > li > a {
    color: var(--neo-text-secondary) !important;
    transition: var(--neo-transition);
}

.breadcrumb > li > a:hover {
    color: var(--neo-accent) !important;
}

.content-header {
    padding: 10px 15px 0 !important;
}

/* â”€â”€ Modals â”€â”€ */
.modal-content {
    border-radius: var(--neo-radius-lg) !important;
    border: none !important;
    box-shadow: var(--neo-shadow-lg) !important;
    overflow: hidden;
}

.modal-header {
    border-bottom: 1px solid var(--neo-border) !important;
    padding: 16px 20px !important;
}

.modal-header .modal-title {
    font-family: var(--neo-font) !important;
    font-weight: 600 !important;
    font-size: 16px !important;
}

.modal-body {
    padding: 20px !important;
}

.modal-footer {
    border-top: 1px solid var(--neo-border) !important;
    padding: 14px 20px !important;
    background: #fafbfc !important;
}

.modal-backdrop.in {
    opacity: 0.4 !important;
}

/* â”€â”€ Badges & Labels â”€â”€ */
.badge,
.label {
    border-radius: 20px !important;
    font-family: var(--neo-font) !important;
    font-weight: 500 !important;
    font-size: 11px !important;
    padding: 3px 10px !important;
}

/* â”€â”€ Info Boxes â”€â”€ */
.info-box {
    border-radius: var(--neo-radius-md) !important;
    box-shadow: var(--neo-shadow-sm) !important;
    border: 1px solid var(--neo-border) !important;
    min-height: 80px !important;
}

.info-box-icon {
    border-radius: var(--neo-radius-md) 0 0 var(--neo-radius-md) !important;
}

.small-box {
    border-radius: var(--neo-radius-md) !important;
    box-shadow: var(--neo-shadow-sm) !important;
    overflow: hidden;
    transition: var(--neo-transition);
}

.small-box:hover {
    transform: translateY(-2px);
    box-shadow: var(--neo-shadow-md) !important;
}

.small-box .inner h3 {
    font-weight: 700 !important;
}

/* â”€â”€ Alerts & Callouts â”€â”€ */
.alert {
    border-radius: var(--neo-radius-md) !important;
    border: none !important;
    font-family: var(--neo-font) !important;
}

.callout {
    border-radius: var(--neo-radius-md) !important;
}

/* â”€â”€ Tabs â”€â”€ */
.nav-tabs {
    border-bottom: 2px solid var(--neo-border) !important;
}

.nav-tabs > li > a {
    border-radius: var(--neo-radius-sm) var(--neo-radius-sm) 0 0 !important;
    font-family: var(--neo-font) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    transition: var(--neo-transition);
    border: none !important;
    margin-right: 2px;
}

.nav-tabs > li.active > a {
    border-bottom: 2px solid var(--neo-accent) !important;
    color: var(--neo-accent) !important;
    font-weight: 600 !important;
}

/* â”€â”€ Pagination â”€â”€ */
.pagination > li > a,
.pagination > li > span {
    border-radius: var(--neo-radius-sm) !important;
    margin: 0 2px !important;
    font-family: var(--neo-font) !important;
    font-size: 13px !important;
    border: 1px solid var(--neo-border) !important;
    transition: var(--neo-transition);
}

.pagination > li > a:hover {
    transform: translateY(-1px);
}

/* â”€â”€ Progress Bars â”€â”€ */
.progress {
    border-radius: 20px !important;
    height: 8px !important;
    background: #f3f4f6 !important;
    overflow: hidden;
}

.progress-bar {
    border-radius: 20px !important;
}

/* â”€â”€ Footer â”€â”€ */
.main-footer {
    font-family: var(--neo-font) !important;
    font-size: 12.5px !important;
    border-top: 1px solid var(--neo-border) !important;
    background: var(--neo-bg-card) !important;
}

/* â”€â”€ Overlay/Loading â”€â”€ */
.overlay {
    border-radius: var(--neo-radius-lg) !important;
}

.overlay > .fa-spinner {
    font-size: 2em !important;
}

/* â”€â”€ Scrollbar Modern â”€â”€ */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: #a1a1a1;
}

/* â”€â”€ Selection Module Cards (SelecaoEmpresaTreeView) â”€â”€ */
.product-chooser-item {
    border-radius: var(--neo-radius-lg) !important;
    transition: var(--neo-transition);
    border: 2px solid transparent !important;
    cursor: pointer;
}

.product-chooser-item:hover {
    transform: translateY(-4px);
    box-shadow: var(--neo-shadow-lg) !important;
}

.product-chooser-item.selected {
    border: 2px solid rgba(255,255,255,0.6) !important;
    box-shadow: var(--neo-shadow-lg) !important;
}

/* Card icon & text â€” force white for readability on colored bg */
.product-chooser-item i {
    color: rgba(255,255,255,0.9) !important;
}

.product-chooser-item .fa-6x {
    font-size: 3.5em !important;
}

.product-chooser-item h3 {
    color: white !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    font-family: var(--neo-font) !important;
    line-height: 1.3 !important;
    height: 40px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

.itemBoxSelecaoModulo {
    padding: 4px !important;
}

/* Selection page heading */
.boxSelecaoModulo .box-title {
    font-size: 14px !important;
}

/* â”€â”€ TreeView (SeleÃ§Ã£o de Empresas) â”€â”€ */
#tree-view-empresas .list-group-item,
.list-group-item.node-tree-view-empresas {
    border-radius: var(--neo-radius-sm) !important;
    margin-bottom: 2px !important;
    border: 1px solid var(--neo-border) !important;
    transition: var(--neo-transition);
    padding: 7px 12px !important;
    font-size: 13.5px !important;
    font-family: var(--neo-font) !important;
    line-height: 1.5 !important;
    min-height: auto !important;
}

#tree-view-empresas .list-group-item *:not(i):not(.glyphicon):not(.icon):not([class*="fa"]),
.list-group-item.node-tree-view-empresas *:not(i):not(.glyphicon):not(.icon):not([class*="fa"]) {
    font-size: inherit !important;
    font-family: var(--neo-font) !important;
}

#tree-view-empresas .list-group-item .badge,
.list-group-item.node-tree-view-empresas .badge {
    font-size: 11px !important;
    padding: 2px 7px !important;
    font-weight: 500 !important;
    vertical-align: middle;
    border-radius: 10px !important;
}

#tree-view-empresas .list-group-item .icon,
#tree-view-empresas .list-group-item .glyphicon,
#tree-view-empresas .list-group-item > i,
#tree-view-empresas .list-group-item > span > i {
    font-size: 12px !important;
    margin-right: 4px;
}

#tree-view-empresas .list-group-item:hover,
.list-group-item.node-tree-view-empresas:hover {
    background: #f0f4ff !important;
}

/* Item selecionado â€” borda lateral + fundo suave */
#tree-view-empresas .node-selected,
.node-selected {
    border-radius: var(--neo-radius-sm) !important;
    background: #eef4ff !important;
    border-left: 3px solid var(--neo-accent) !important;
    border-color: #c7d8f4 !important;
    border-left-color: var(--neo-accent) !important;
    color: var(--neo-text-primary) !important;
}

#tree-view-empresas .node-selected *,
.node-selected * {
    color: var(--neo-text-primary) !important;
}

/* Empresa expandida (filhos) */
#tree-view-empresas .list-group-item[style*="color: #FFFFFF"],
#tree-view-empresas .list-group-item[style*="background-color"] {
    border-left: 3px solid var(--neo-accent) !important;
    border-radius: var(--neo-radius-sm) !important;
}

/* Box header do treeview */
.boxSelecaoEmpresa .box-title {
    font-size: 14px !important;
}

/* Selection page title */
.content > h2 {
    font-size: 16px !important;
    font-weight: 600 !important;
    font-family: var(--neo-font) !important;
    padding-bottom: 10px !important;
}

/* â”€â”€ Tooltip â”€â”€ */
.tooltip-inner {
    border-radius: var(--neo-radius-sm) !important;
    font-family: var(--neo-font) !important;
    font-size: 12px !important;
    padding: 6px 12px !important;
}

/* â”€â”€ DataTables Override â”€â”€ */
.dataTables_wrapper .dataTables_filter input {
    border-radius: var(--neo-radius-sm) !important;
    border: 1.5px solid #d1d5db !important;
    padding: 5px 10px !important;
    font-family: var(--neo-font) !important;
}

.dataTables_wrapper .dataTables_length select {
    border-radius: var(--neo-radius-sm) !important;
    font-family: var(--neo-font) !important;
}

.dataTables_info,
.dataTables_length,
.dataTables_filter {
    font-family: var(--neo-font) !important;
    font-size: 13px !important;
}

/* â”€â”€ Micro Animation Utilities â”€â”€ */
@keyframes neoFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.content > .row {
    animation: neoFadeIn 0.25s ease-out;
}

.box {
    animation: neoFadeIn 0.3s ease-out;
}

/* â”€â”€ Print â€” keep clean â”€â”€ */
@media print {
    .box { box-shadow: none !important; border: 1px solid #ddd !important; }
    .btn { box-shadow: none !important; }
    .main-header, .main-sidebar, .main-footer { display: none !important; }
}

/* ============================================================
   PREMIUM ENHANCEMENTS â€” Camada Extra de Polimento
   ============================================================ */

/* â”€â”€ Modern Loading Spinner â”€â”€ */
#ajax_loader > div {
    border-radius: var(--neo-radius-lg) !important;
    border: none !important;
    box-shadow: var(--neo-shadow-lg) !important;
    width: 240px !important;
    height: 60px !important;
    background: white !important;
}

#ajax_loader > div .fa-spinner {
    color: var(--neo-accent) !important;
}

#ajax_loader {
    background: rgba(0,0,0,0.25) !important;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

/* â”€â”€ Sidebar Gradient Overlay (skins dark) â”€â”€ */
.skin-black .main-sidebar {
    background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%) !important;
}

.skin-blue .main-sidebar {
    background: linear-gradient(180deg, #1e3a5f 0%, #1a2744 100%) !important;
}

.sidebar-menu > li > a > .fa,
.sidebar-menu > li > a > .fas,
.sidebar-menu > li > a > .far,
.sidebar-menu > li > a > .ion {
    width: 24px !important;
    text-align: center;
    font-size: 15px !important;
}

/* â”€â”€ Sidebar Active Item Accent â”€â”€ */
.sidebar-menu > li.active > a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 60%;
    background: var(--neo-accent);
    border-radius: 0 4px 4px 0;
}

.sidebar-menu > li.active > a {
    position: relative;
}

/* â”€â”€ Semantic Status Colors â”€â”€ */
.label-success, .badge.bg-green, .btn-success {
    background: #10b981 !important;
}
.label-danger, .badge.bg-red, .btn-danger {
    background: #ef4444 !important;
}
.label-warning, .badge.bg-yellow, .btn-warning {
    background: #f59e0b !important;
    color: #1a1a2e !important;
}
.label-info, .badge.bg-aqua, .btn-info {
    background: #06b6d4 !important;
}
.label-primary, .badge.bg-blue, .btn-primary {
    background: #3b82f6 !important;
}
.bg-gray-light {
    background: #f8f9fb !important;
}

/* â”€â”€ Box Header Accent Line â”€â”€ */
.box.box-primary > .box-header { border-top: 3px solid #3b82f6 !important; border-radius: var(--neo-radius-lg) var(--neo-radius-lg) 0 0 !important; }
.box.box-success > .box-header { border-top: 3px solid #10b981 !important; border-radius: var(--neo-radius-lg) var(--neo-radius-lg) 0 0 !important; }
.box.box-danger > .box-header  { border-top: 3px solid #ef4444 !important; border-radius: var(--neo-radius-lg) var(--neo-radius-lg) 0 0 !important; }
.box.box-warning > .box-header { border-top: 3px solid #f59e0b !important; border-radius: var(--neo-radius-lg) var(--neo-radius-lg) 0 0 !important; }
.box.box-info > .box-header    { border-top: 3px solid #06b6d4 !important; border-radius: var(--neo-radius-lg) var(--neo-radius-lg) 0 0 !important; }

/* â”€â”€ Enhanced Form Groups â”€â”€ */
.form-group {
    margin-bottom: 16px !important;
}

.input-group {
    border-radius: var(--neo-radius-sm);
}

.input-group .form-control:first-child {
    border-right: none !important;
}

.input-group .input-group-btn:last-child > .btn {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-left: none !important;
}

.input-group-addon {
    border-radius: var(--neo-radius-sm) !important;
    border: 1.5px solid #d1d5db !important;
    background: #f9fafb !important;
    font-family: var(--neo-font) !important;
}

.bootstrap-select .dropdown-toggle {
    border-radius: var(--neo-radius-sm) !important;
    border: 1.5px solid #d1d5db !important;
    font-family: var(--neo-font) !important;
    font-size: 13.5px !important;
    background: white !important;
    height: auto !important;
    padding: 6px 12px !important;
    transition: var(--neo-transition);
    box-shadow: none !important;
}

.bootstrap-select .dropdown-toggle:focus,
.bootstrap-select.open .dropdown-toggle {
    border-color: var(--neo-accent) !important;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.12) !important;
    outline: none !important;
}

.bootstrap-select .dropdown-toggle .filter-option {
    font-family: var(--neo-font) !important;
    font-size: 13.5px !important;
}

.bootstrap-select .dropdown-toggle .caret {
    border: none !important;
    width: 10px;
    height: 10px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

/* Dropdown menu do combobox */
.bootstrap-select .dropdown-menu {
    border: 1px solid var(--neo-border) !important;
    border-radius: var(--neo-radius-md) !important;
    box-shadow: var(--neo-shadow-lg) !important;
    padding: 4px !important;
    margin-top: 4px !important;
    animation: neoDropdown 0.15s ease-out;
}

.bootstrap-select .dropdown-menu li a {
    font-family: var(--neo-font) !important;
    font-size: 13px !important;
    padding: 8px 12px !important;
    border-radius: var(--neo-radius-sm) !important;
    color: var(--neo-text-primary) !important;
    transition: var(--neo-transition);
    margin: 1px 0;
}

.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu li a:focus {
    background: #f0f4ff !important;
    color: var(--neo-accent) !important;
}

.bootstrap-select .dropdown-menu li.selected a,
.bootstrap-select .dropdown-menu li.active a {
    background: var(--neo-accent) !important;
    color: white !important;
    border-radius: var(--neo-radius-sm) !important;
}

.bootstrap-select .dropdown-menu li.selected a:hover {
    background: #2563eb !important;
}

/* Dividers */
.bootstrap-select .dropdown-menu .divider {
    margin: 4px 8px !important;
    border-top: 1px solid var(--neo-border) !important;
}

/* Optgroup headers */
.bootstrap-select .dropdown-menu .dropdown-header {
    font-family: var(--neo-font) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--neo-text-secondary) !important;
    padding: 8px 12px 4px !important;
}

/* Search input dentro do combobox */
.bootstrap-select .bs-searchbox .form-control {
    border-radius: var(--neo-radius-sm) !important;
    border: 1.5px solid #d1d5db !important;
    font-size: 13px !important;
    padding: 6px 10px !important;
    margin-bottom: 4px;
}

/* No results */
.bootstrap-select .no-results {
    font-family: var(--neo-font) !important;
    font-size: 13px !important;
    color: var(--neo-text-secondary) !important;
    padding: 10px 12px !important;
}

/* Estilo do select nativo (fallback) */
select.form-control {
    height: auto !important;
    padding: 7px 30px 7px 12px !important;
}

/* â”€â”€ Notification Dropdown â”€â”€ */
.notifications-menu .dropdown-menu {
    width: 320px !important;
    padding: 0 !important;
}

.notifications-menu .dropdown-menu > li.header {
    border-radius: var(--neo-radius-md) var(--neo-radius-md) 0 0 !important;
    font-family: var(--neo-font) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 12px 16px !important;
}

.notifications-menu .dropdown-menu > li.footer > a {
    border-radius: 0 0 var(--neo-radius-md) var(--neo-radius-md) !important;
    font-family: var(--neo-font) !important;
}

/* â”€â”€ User Menu Enhancement â”€â”€ */
.user-menu .dropdown-menu {
    width: 300px !important;
    padding: 0 !important;
}

.user-menu .user-body {
    padding: 12px !important;
    border-bottom: 1px solid var(--neo-border) !important;
    border-top: 1px solid var(--neo-border) !important;
}

.user-menu .user-body .btn {
    font-size: 12px !important;
}

.user-menu .user-footer {
    padding: 12px !important;
    background: #f9fafb !important;
    border-radius: 0 0 var(--neo-radius-md) var(--neo-radius-md) !important;
}

/* â”€â”€ Table Action Buttons â”€â”€ */
.table .btn-group > .btn {
    margin: 0 1px !important;
    padding: 3px 8px !important;
    border-radius: 5px !important;
}

.table .btn-group {
    display: inline-flex;
    gap: 3px;
}

/* â”€â”€ Checkbox & Radio modernization â”€â”€ */
input[type="checkbox"],
input[type="radio"] {
    accent-color: var(--neo-accent);
}

/* Empty state removido - conflita com conteudo AJAX */

/* â”€â”€ Selection/Highlight â”€â”€ */
::selection {
    background: rgba(59,130,246,0.2);
    color: inherit;
}

/* â”€â”€ Link Modernization â”€â”€ */
a {
    transition: var(--neo-transition);
}

.box-body a:not(.btn) {
    color: var(--neo-accent);
}

.box-body a:not(.btn):hover {
    color: #2563eb;
}

/* â”€â”€ Session Timer (sidebar) â”€â”€ */
#sessionTimeout {
    font-family: var(--neo-font) !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

/* â”€â”€ Support Button (bottom right) â”€â”€ */
.suporteNeo {
    transition: var(--neo-transition);
    z-index: 1000 !important;
}

.suporteNeo:hover {
    transform: scale(1.1);
    opacity: 1 !important;
}

/* â”€â”€ Control Sidebar (Config Panel) â”€â”€ */
.control-sidebar {
    font-family: var(--neo-font) !important;
}

.control-sidebar-menu > li > a {
    font-size: 13px !important;
    padding: 10px 15px !important;
    transition: var(--neo-transition);
    border-radius: var(--neo-radius-sm);
}

/* â”€â”€ Responsive Mobile Enhancements â”€â”€ */
@media (max-width: 767px) {
    .box {
        border-radius: var(--neo-radius-md) !important;
        margin-bottom: 12px !important;
    }
    
    .box-body {
        padding: 12px !important;
    }

    .box-header {
        padding: 10px 14px !important;
    }

    .content-wrapper {
        padding: 0 !important;
    }

    .content-header {
        padding: 8px 10px 0 !important;
    }
    
    .table {
        font-size: 12px !important;
    }

    .btn {
        padding: 6px 12px !important;
        font-size: 12px !important;
    }

    .product-chooser-item {
        margin-bottom: 8px !important;
    }

    .modal-dialog {
        margin: 10px !important;
    }

    .modal-content {
        border-radius: var(--neo-radius-md) !important;
    }

    .DadosEmpresaMenuSuperior {
        font-size: 11px !important;
    }
}

/* â”€â”€ Tablet tweaks â”€â”€ */
@media (min-width: 768px) and (max-width: 991px) {
    .box-body {
        padding: 14px !important;
    }
}

/* â”€â”€ Focus Visible (Accessibility) â”€â”€ */
.btn:focus-visible,
.form-control:focus-visible,
a:focus-visible {
    outline: 2px solid var(--neo-accent) !important;
    outline-offset: 2px;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   LOGIN PAGE â€” SPLIT SCREEN (Image Left + Panel Right)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

body:has(.login-wrap) {
    background: #060b18 url('/assets/img/login-bg.png') no-repeat center center !important;
    background-size: cover !important;
    height: 100vh !important;
    font-family: var(--neo-font) !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

body:has(.login-wrap)::before {
    content: '';
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(90deg,
        rgba(6,11,24,0.2) 0%, rgba(6,11,24,0.4) 40%,
        rgba(10,16,30,0.9) 60%, rgba(13,26,45,1) 70%);
    pointer-events: none;
    z-index: 0;
}

body:has(.login-wrap)::after {
    content: 'NeoCloud';
    position: fixed;
    top: 36px; left: 44px;
    font-family: var(--neo-font) !important;
    font-size: 32px;
    font-weight: 700;
    color: rgba(255,255,255,0.15);
    letter-spacing: 0.1em;
    z-index: 2;
    pointer-events: none;
}

body:has(.login-wrap) > .col-xs-12 {
    padding: 0 !important; margin: 0 !important;
    width: 100% !important; max-width: 100% !important;
    position: relative; z-index: 1;
    height: 100vh !important; overflow: hidden !important;
}

/* â”€â”€ PANEL â”€â”€ */
.login-wrap {
    position: fixed !important;
    top: 0 !important; right: 0 !important; bottom: 0 !important;
    width: 420px !important; max-width: 100vw;
    margin: 0 !important; padding: 30px 28px !important;
    background: #0d1a2d !important;
    border: none !important;
    border-left: 1px solid rgba(59,130,246,0.1) !important;
    border-radius: 0 !important;
    box-shadow: -20px 0 60px rgba(0,0,0,0.5) !important;
    overflow-y: auto !important; overflow-x: hidden !important;
    z-index: 10;
    display: flex !important; flex-direction: row !important;
    flex-wrap: wrap !important;
    align-content: center !important;
    align-items: stretch !important;
}

.login-wrap::before {
    content: ''; position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, #2563eb, #3b82f6, #60a5fa);
    z-index: 100;
}
.login-wrap::after { display: none; }

/* â”€â”€ Hide logo tile â”€â”€ */
.login-wrap .neo-login-logo,
.login-wrap .metro.double-vertical {
    display: none !important;
    height: 0 !important; min-height: 0 !important;
    margin: 0 !important; padding: 0 !important;
    overflow: hidden !important;
}

/* â”€â”€ ALL TILES â€” uniform cards â”€â”€ */
.login-wrap .metro {
    float: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 54px !important;
    margin: 4px 0 !important;
    box-sizing: border-box !important;
    border-radius: 4px !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
    transition: filter 0.2s ease;
}

.login-wrap .metro.double-size {
    width: 100% !important;
    height: 50px !important;
}

/* â•â•â• INPUTS â•â•â• */
.login-wrap .neo-login-input {
    background: #142035 !important;
    padding: 6px 14px !important;
}
.login-wrap .neo-login-input p,
.login-wrap .neo-login-input .pretty {
    display: none !important; height: 0 !important;
    margin: 0 !important; padding: 0 !important;
}
.login-wrap .neo-login-input:hover,
.login-wrap .neo-login-input:focus-within {
    border-color: rgba(59,130,246,0.3) !important;
}
.login-wrap .neo-login-input .lock-input,
.login-wrap .neo-login-input .input-append {
    display: flex !important; align-items: center;
    gap: 10px; margin: 0 !important; padding: 0 !important; width: 100%;
}
.login-wrap .neo-login-input input[type="text"],
.login-wrap .neo-login-input input[type="password"] {
    font-family: var(--neo-font) !important;
    font-size: 14px !important;
    border: none !important;
    background: transparent !important;
    color: #e2e8f0 !important;
    padding: 6px 8px !important;
    width: 100% !important; height: auto !important; margin: 0 !important;
}
.login-wrap .neo-login-input input::placeholder {
    color: rgba(148,163,184,0.5) !important; font-size: 13px !important;
}
.login-wrap .neo-login-input input:focus {
    outline: none !important; box-shadow: none !important;
}
.login-wrap .neo-login-input .fa {
    color: #3b82f6 !important; opacity: 0.7; font-size: 16px !important;
    margin: 0 !important; padding: 0 !important;
}

/* â•â•â• BUTTONS â•â•â• */
.login-wrap .metro a.social-link,
.login-wrap .metro a.neo-link {
    margin: 0 !important; padding: 0 !important;
    display: flex !important; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 3px; width: 100%;
}
.login-wrap .metro a i {
    font-size: 18px !important; display: block !important;
    padding: 0 !important; margin: 0 !important; line-height: 1 !important;
}
.login-wrap .metro:hover { filter: brightness(1.15); }

/* Login CTA */
.login-wrap #btnLogin,
.login-wrap .metro.terques {
    background: linear-gradient(135deg, #2563eb, #3b82f6) !important;
    border: 1px solid rgba(59,130,246,0.3) !important;
    box-shadow: 0 2px 12px rgba(59,130,246,0.2) !important;
    height: 54px !important;
}
.login-wrap #btnLogin:hover { box-shadow: 0 4px 20px rgba(59,130,246,0.35) !important; }

/* Esqueci — Vermelho */
.login-wrap .metro.deep-red,
.login-wrap #btnEsqueci.metro {
    background: linear-gradient(135deg, #7f1d1d, #991b1b) !important;
    border: 1px solid rgba(239,68,68,0.25) !important;
}
.login-wrap #btnEsqueci.metro:hover {
    background: linear-gradient(135deg, #991b1b, #b91c1c) !important;
}
/* Contato — Dourado/Gold */
.login-wrap #btnEntreEmContato.metro {
    background: linear-gradient(135deg, #b45309, #d97706) !important;
    border: 1px solid rgba(251,191,36,0.3) !important;
}
.login-wrap #btnEntreEmContato.metro:hover {
    background: linear-gradient(135deg, #d97706, #f59e0b) !important;
}
/* Planos — Verde/Teal discreto */
.login-wrap #btnPlanosPrecos.metro {
    background: linear-gradient(135deg, #064e3b, #065f46) !important;
    border: 1px solid rgba(16,185,129,0.25) !important;
}
.login-wrap #btnPlanosPrecos.metro:hover {
    background: linear-gradient(135deg, #065f46, #047857) !important;
}

/* Bottom 3 â€” SAME SIZE, in a row */
.login-wrap #btnEsqueci,
.login-wrap #btnEntreEmContato,
.login-wrap #btnPlanosPrecos {
    display: flex !important;
    float: none !important;
    flex: 0 0 31.33% !important;
    width: 31.33% !important;
    height: 64px !important;
    margin: 4px 1% !important;
    padding: 0 !important;
}

/* Fonts */
.login-wrap .metro a {
    font-family: var(--neo-font) !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    color: #e2e8f0 !important;
}
.login-wrap .metro a span {
    font-family: var(--neo-font) !important;
    font-size: 11px !important;
    color: #e2e8f0 !important;
}
.login-wrap .metro.terques span,
.login-wrap .metro.terques i { color: #fff !important; }

/* Footer */
.login-footer {
    position: fixed !important;
    bottom: 0 !important; right: 0 !important;
    width: 420px !important;
    background: #0a1525 !important;
    font-family: var(--neo-font) !important;
    color: rgba(148,163,184,0.3) !important;
    font-size: 10px !important;
    padding: 8px 28px !important;
    text-align: center; text-transform: uppercase;
    z-index: 11;
    border-top: 1px solid rgba(255,255,255,0.04);
    margin: 0 !important;
}

/* Mobile */
@media (max-width: 768px) {
    .login-wrap {
        position: relative !important; width: 100% !important;
        min-height: 100vh; border-left: none !important;
        padding: 24px 20px !important;
    }
    .login-footer { position: relative !important; width: 100% !important; }
    body:has(.login-wrap)::after { display: none; }
    .login-wrap #btnEsqueci,
    .login-wrap #btnEntreEmContato,
    .login-wrap #btnPlanosPrecos {
        width: 100% !important; float: none !important;
        display: flex !important; height: 56px !important;
    }
}

