/* BB105.6 Pixel Perfect Polish Pass
   Uses design tokens only. Shell/component polish only; module-specific CSS still owns internals. */
:root{
  --bc-icon-box: 44px;
  --bc-icon-box-sm: 36px;
  --bc-title-icon: 42px;
  --bc-action-height: 36px;
  --bc-row-height: 48px;
  --bc-card-min: 92px;
  --bc-header-strip: linear-gradient(90deg, color-mix(in srgb, var(--bc-card-bg, #161d28) 96%, #ffffff 4%), color-mix(in srgb, var(--bc-card-bg, #161d28) 88%, #000000 12%));
}

/* Page/module title bars */
.page-title-box,
.panel-page-heading,
.module-title-row,
.badger-page-title,
.nxt-page-title,
.dashboard-ref-header{
  min-height: 56px;
  padding: 12px 18px !important;
  gap: 12px !important;
  align-items: center !important;
  background: var(--bc-header-strip) !important;
  border-bottom: 1px solid var(--bc-border, rgba(148,163,184,.22)) !important;
}
.page-title-box img,
.panel-page-heading img,
.module-title-row img,
.badger-page-title img,
.nxt-page-title img,
.page-title-box .module-icon,
.module-title-row .module-icon{
  width: var(--bc-title-icon) !important;
  height: var(--bc-title-icon) !important;
  min-width: var(--bc-title-icon) !important;
  object-fit: contain !important;
  border-radius: 12px !important;
  margin: 0 10px 0 0 !important;
}
.page-title-box h1,.page-title-box h2,.page-title-box h3,.page-title-box h4,
.panel-page-heading h1,.panel-page-heading h2,.panel-page-heading h3,.panel-page-heading h4,
.module-title-row h1,.module-title-row h2,.module-title-row h3,.module-title-row h4{
  margin: 0 !important;
  line-height: 1.15 !important;
}

/* Consistent icon containers across cards/lists without touching API Helper duplicate logic */
.module-icon-box,.module-card-icon,.module-list-icon,.bc-module-icon,.badger-module-icon,
.api-module-icon,.endpoint-module-icon,.sidebar-module-icon,
.dashboard-launch-icon,.quick-launch-icon{
  width: var(--bc-icon-box) !important;
  height: var(--bc-icon-box) !important;
  min-width: var(--bc-icon-box) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: var(--bc-radius-md, 12px) !important;
  overflow: hidden !important;
}
.module-icon-box img,.module-card-icon img,.module-list-icon img,.bc-module-icon img,.badger-module-icon img,
.api-module-icon img,.endpoint-module-icon img,.sidebar-module-icon img,
.dashboard-launch-icon img,.quick-launch-icon img{
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}

/* Action bars / topbar buttons */
.topbar-actions .btn,.badger-top-actions .btn,.topbar-shortcut,.header-action,.panel-action-pill,
.btn-action,.quick-action-btn{
  min-height: var(--bc-action-height) !important;
  padding: 0 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border-radius: 999px !important;
  white-space: nowrap !important;
}

/* Cards */
.card,.badger-card,.dashboard-card,.module-card,.dashboard-ref-panel,.nxt-module-installer-widget{
  border-radius: var(--bc-radius-lg, 16px) !important;
}
.card-header,.badger-card-header,.module-card-header,.dashboard-card-header{
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px !important;
}
.card-body,.badger-card-body,.module-card-body,.dashboard-card-body{
  padding: var(--bc-card-padding, 16px) !important;
}

/* Buttons/forms */
button,.btn,input[type="button"],input[type="submit"]{
  min-height: 34px;
}
.form-control,.form-select,select,input[type="text"],input[type="url"],input[type="password"],input[type="email"],input[type="number"],textarea{
  border-radius: var(--bc-radius-md, 12px) !important;
}
.form-group,.mb-3,.input-group{
  margin-bottom: 12px;
}
label,.form-label{
  margin-bottom: 6px !important;
}

/* Tables: single professional header separator */
.table-responsive{ border-radius: var(--bc-radius-md, 12px); overflow: auto; }
table.table, .dataTable, .badger-table, .module-table{
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
table.table thead th,.dataTable thead th,.badger-table thead th,.module-table thead th{
  height: 38px !important;
  padding: 9px 12px !important;
  vertical-align: middle !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--bc-border-strong, rgba(148,163,184,.32)) !important;
  box-shadow: none !important;
}
table.table thead,.dataTable thead,.badger-table thead,.module-table thead{
  box-shadow: none !important;
}
table.table tbody td,.dataTable tbody td,.badger-table tbody td,.module-table tbody td{
  min-height: var(--bc-row-height);
  padding: 10px 12px !important;
  vertical-align: middle !important;
}

/* Status pills / badges */
.badge,.pill,.status-pill,.module-status,.health-pill,.theme-state-info,.theme-state-success,.theme-state-warning,.theme-state-danger{
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 999px !important;
  padding: 4px 10px !important;
  line-height: 1 !important;
}

/* Preview panes */
.media-preview,.preview-pane,.module-preview,.layout-preview,.tmdb-preview,.webview-preview{
  border-radius: var(--bc-radius-lg, 16px) !important;
  overflow: hidden !important;
}
.media-preview img,.preview-pane img,.module-preview img,.layout-preview img,
.media-preview video,.preview-pane video,.module-preview video,.layout-preview video{
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
}

/* Module Manager list/card rhythm */
.module-manager .module-row,
.module-manager-row,
.modules-list .module-row,
.modules-list .module-card{
  min-height: 64px !important;
  align-items: center !important;
}
.module-manager .module-row .actions,
.module-manager-row .actions,
.modules-list .module-row .actions{
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* Dashboard rhythm */
.dashboard-shell{ gap: 16px; }
.dashboard-shell .row{ --bs-gutter-x: 16px; --bs-gutter-y: 16px; }
.dashboard-owner-card,.dashboard-owner-information,.owner-information-card{
  margin-bottom: 16px !important;
}

@media (max-width: 768px){
  :root{ --bc-icon-box: 38px; --bc-title-icon: 36px; }
  .page-title-box,.panel-page-heading,.module-title-row{ padding: 10px 12px !important; }
  .topbar-actions .btn,.badger-top-actions .btn,.topbar-shortcut,.header-action,.panel-action-pill{ padding: 0 10px !important; }
}
