/* BL Desk - polimento visual global
   Escopo: somente CSS. Nao altera rotas, APIs, banco, sessoes ou regras. */

:root {
  --blp-bg: #0b0f14;
  --blp-shell: #101821;
  --blp-panel: #151d27;
  --blp-panel-2: #1b2530;
  --blp-line: rgba(255,255,255,.10);
  --blp-line-strong: rgba(255,255,255,.16);
  --blp-text: #f6f8fb;
  --blp-muted: rgba(246,248,251,.66);
  --blp-accent: #b8ff00;
  --blp-danger: #ff4f7b;
  --blp-radius: 8px;
}

html,
body.bd-app {
  overflow-x: hidden;
}

body.bd-app {
  background: var(--blp-bg) !important;
  color: var(--blp-text);
}

body.bd-app * {
  letter-spacing: 0 !important;
}

body.bd-app .main {
  min-width: 0;
  padding: clamp(16px, 2vw, 26px) !important;
}

body.bd-app .topbar {
  min-height: auto !important;
  align-items: flex-start !important;
  gap: 16px !important;
  margin-bottom: 18px !important;
}

body.bd-app .topbar h1 {
  font-size: clamp(26px, 2.2vw, 34px) !important;
  line-height: 1.08 !important;
  margin: 0 !important;
}

body.bd-app .topbar p {
  max-width: 760px;
  color: var(--blp-muted) !important;
}

body.bd-app .topbar-actions {
  gap: 8px !important;
}

body.bd-app .card-panel,
body.bd-app .public-card,
body.bd-app .metric,
body.bd-app .bl-client-card,
body.bd-app .bl-client-row,
body.bd-app .bl-client-metric,
body.bd-app .bl-client-modal-card,
body.bd-app .bl-dash-card,
body.bd-app .bl-dash-panel,
body.bd-app .bl-rel-panel,
body.bd-app .bl-rec-panel,
body.bd-app .bl-sup-panel,
body.bd-app .bl-side-section,
body.bd-app .bl-detail-box {
  border: 1px solid var(--blp-line) !important;
  border-radius: var(--blp-radius) !important;
  background: var(--blp-panel) !important;
  box-shadow: none !important;
}

body.bd-app .card-panel {
  padding: clamp(14px, 1.6vw, 20px) !important;
}

body.bd-app .card-panel h2,
body.bd-app .card-panel h3,
body.bd-app .bl-client-title,
body.bd-app .bl-dash-title {
  line-height: 1.18 !important;
  margin-top: 0 !important;
}

body.bd-app .btn,
body.bd-app .btn-brand,
body.bd-app .btn-citric,
body.bd-app .btn-outline-light,
body.bd-app button:not(.blc-send-btn):not(.blc-icon-btn):not(.blc-tab):not(.blc-row-menu-btn) {
  border-radius: var(--blp-radius) !important;
  box-shadow: none !important;
  min-height: 38px;
  line-height: 1.15;
  font-weight: 800;
}

body.bd-app .btn-citric,
body.bd-app .btn-success {
  background: var(--blp-accent) !important;
  border-color: var(--blp-accent) !important;
  color: #101410 !important;
}

body.bd-app .btn-brand,
body.bd-app .btn-primary {
  background: #7c2bd9 !important;
  border-color: #7c2bd9 !important;
  color: #fff !important;
}

body.bd-app .btn-danger {
  background: var(--blp-danger) !important;
  border-color: var(--blp-danger) !important;
}

body.bd-app .form-control,
body.bd-app .custom-select,
body.bd-app input,
body.bd-app textarea,
body.bd-app select {
  min-height: 42px;
  border-radius: var(--blp-radius) !important;
  border-color: var(--blp-line-strong) !important;
  background-color: var(--blp-panel-2) !important;
  color: var(--blp-text) !important;
  box-shadow: none !important;
}

body.bd-app textarea.form-control,
body.bd-app textarea {
  min-height: 96px;
  resize: vertical;
}

body.bd-app .form-control:focus,
body.bd-app .custom-select:focus,
body.bd-app input:focus,
body.bd-app textarea:focus,
body.bd-app select:focus {
  border-color: var(--blp-accent) !important;
  box-shadow: 0 0 0 2px rgba(184,255,0,.16) !important;
  outline: none !important;
}

body.bd-app .form-control::placeholder,
body.bd-app input::placeholder,
body.bd-app textarea::placeholder {
  color: rgba(246,248,251,.46) !important;
}

body.bd-app label {
  color: rgba(246,248,251,.86) !important;
  font-size: 13px;
  font-weight: 850;
}

body.bd-app .table-responsive,
body.bd-app .bl-table-wrap,
body.bd-app .bl-report-table-wrap,
body.bd-app .bl-sup-table-wrap,
body.bd-app .bl-rec-table-wrap,
body.bd-app .bl-master-table-wrap,
body.bd-app .bl-profile-table-wrap {
  border: 1px solid var(--blp-line) !important;
  border-radius: var(--blp-radius) !important;
  overflow: auto !important;
  box-shadow: none !important;
}

body.bd-app .table,
body.bd-app table,
body.bd-app .bl-table,
body.bd-app .bl-report-table,
body.bd-app .bl-sup-table,
body.bd-app .bl-rec-table,
body.bd-app .bl-master-table,
body.bd-app .bl-profile-table {
  margin-bottom: 0;
  color: var(--blp-text) !important;
  background: transparent !important;
}

body.bd-app .table th,
body.bd-app table th,
body.bd-app .table td,
body.bd-app table td {
  border-color: rgba(255,255,255,.08) !important;
  vertical-align: middle !important;
}

body.bd-app .table thead th,
body.bd-app table thead th {
  color: rgba(246,248,251,.62) !important;
  font-size: 12px !important;
  text-transform: uppercase;
}

body.bd-app .badge,
body.bd-app .pill,
body.bd-app .status-badge {
  border-radius: 999px !important;
  box-shadow: none !important;
}

body.bd-app .modal-content,
body.bd-app .dropdown-menu,
body.bd-app .bl-user-dropdown {
  border: 1px solid var(--blp-line-strong) !important;
  border-radius: var(--blp-radius) !important;
  background: var(--blp-panel) !important;
  box-shadow: none !important;
}

/* Menu lateral: retratil limpo, sem sombras e com area previsivel. */
@media (min-width: 901px) {
  body.bd-app.bl-sidebar-global-compact .app-shell,
  body.bd-app.sidebar-collapsed .app-shell {
    grid-template-columns: 80px minmax(0, 1fr) !important;
  }

  body.bd-app.bl-sidebar-global-compact.bl-sidebar-hovering .app-shell,
  body.bd-app.sidebar-collapsed.bl-sidebar-hovering .app-shell {
    grid-template-columns: 248px minmax(0, 1fr) !important;
  }

  body.bd-app .sidebar {
    background: #0e1218 !important;
    border-right: 1px solid var(--blp-line) !important;
    box-shadow: none !important;
  }

  body.bd-app.bl-sidebar-global-compact .sidebar,
  body.bd-app.sidebar-collapsed .sidebar {
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
    padding: 16px 12px !important;
  }

  body.bd-app.bl-sidebar-global-compact.bl-sidebar-hovering .sidebar,
  body.bd-app.sidebar-collapsed.bl-sidebar-hovering .sidebar {
    width: 248px !important;
    min-width: 248px !important;
    max-width: 248px !important;
  }

  body.bd-app .brand-mark {
    width: 42px !important;
    height: 42px !important;
    border-radius: var(--blp-radius) !important;
    box-shadow: none !important;
  }

  body.bd-app .side-nav {
    gap: 6px !important;
  }

  body.bd-app .side-nav a {
    border-radius: var(--blp-radius) !important;
    box-shadow: none !important;
  }

  body.bd-app .side-nav a:hover,
  body.bd-app .side-nav a.active {
    background: rgba(184,255,0,.10) !important;
    border-color: rgba(184,255,0,.28) !important;
    box-shadow: none !important;
  }

  body.bd-app .side-nav .nav-icon {
    border-radius: var(--blp-radius) !important;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: none !important;
  }
}

@media (max-width: 980px) {
  body.bd-app .app-shell {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.bd-app .main {
    padding: 14px !important;
  }

  body.bd-app .topbar {
    flex-direction: column;
    align-items: stretch !important;
  }

  body.bd-app .topbar-actions {
    justify-content: flex-start !important;
  }

  body.bd-app .sidebar {
    height: auto !important;
    position: relative !important;
    padding: 12px !important;
  }

  body.bd-app .side-nav {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding-bottom: 6px;
  }

  body.bd-app .side-nav a {
    min-width: 132px !important;
    min-height: 42px !important;
  }

  body.bd-app .card-panel {
    margin-bottom: 12px !important;
  }
}

@media (max-width: 640px) {
  body.bd-app .main {
    padding: 10px !important;
  }

  body.bd-app .topbar h1 {
    font-size: 24px !important;
  }

  body.bd-app .card-panel {
    padding: 12px !important;
  }

  body.bd-app .btn,
  body.bd-app button {
    max-width: 100%;
    white-space: normal;
  }
}
