/* Application-wide finishing layer. Loaded after legacy page styles. */

/* Consistent page canvas and hierarchy */
body:not(.partner-login-page):not(.terms-page) .main-content {
  background:
    radial-gradient(circle at 100% 0, rgba(239, 143, 127, .09), transparent 24rem),
    var(--bm-canvas);
}
body:not(.partner-login-page):not(.terms-page) .main-content > .container,
body:not(.partner-login-page):not(.terms-page) .main-content > .container-fluid {
  padding-inline: clamp(4px, 1.4vw, 20px);
}
.main-content h1, .main-content .h1 { font-size: clamp(1.55rem, 2.3vw, 2rem); }
.main-content h2, .main-content .h2 { font-size: clamp(1.25rem, 1.8vw, 1.55rem); }
.main-content h3, .main-content .h3 { font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.main-content > :first-child { animation: bm-page-in .28s ease-out both; }
@keyframes bm-page-in { from { opacity: 0; transform: translateY(5px); } }

/* Headers, breadcrumbs and action rows */
.page-header, .content-header, .title-row, .section-header,
.main-content .d-flex.justify-content-between.align-items-center {
  gap: 14px;
}
.page-header, .content-header, .title-row {
  margin-bottom: 22px;
}
.page-title, .uploads-title, .main-content h1:first-child {
  color: var(--bm-ink-strong);
  letter-spacing: -.035em;
}
.section-subtitle, .page-subtitle, .helper-text, .form-text {
  color: var(--bm-muted);
  font-size: .875rem;
}
.breadcrumb {
  --bs-breadcrumb-divider-color: #9aaba8;
  margin-bottom: 16px;
  font-size: .82rem;
}
.breadcrumb-item a { color: var(--bm-muted); text-decoration: none; }
.breadcrumb-item.active { color: var(--bm-ink); font-weight: 600; }

/* Surfaces */
.main-content .card, .main-content .accordion-item,
.main-content .list-group, .main-content .table-responsive {
  overflow: hidden;
}
.main-content .card { margin-bottom: 20px; }
.main-content .card-body { padding: clamp(18px, 2.2vw, 26px); }
.main-content .card-footer {
  padding: 14px 20px;
  background: var(--bm-surface-muted);
  border-top: 1px solid var(--bm-border);
}
.main-content .shadow, .main-content .shadow-sm {
  box-shadow: var(--bm-shadow-sm) !important;
}
.main-content hr { margin-block: 22px; border-color: var(--bm-border); opacity: 1; }

/* Forms and grouped controls */
.bm-field-shell { position: relative; width: 100%; }
.bm-field-shell > .bm-control-icon {
  position: absolute; z-index: 4; top: 50%; left: 13px; transform: translateY(-50%);
  color: #829793; font-size: .93rem; pointer-events: none; transition: color .16s ease;
}
.bm-field-shell:focus-within > .bm-control-icon { color: var(--bm-coral-dark); }
.bm-field-shell > .form-control, .bm-field-shell > .form-select,
.bm-field-shell > .form-control-custom, .bm-field-shell > .service-input,
.bm-field-shell > .search-input { padding-left: 40px !important; }
.bm-field-shell > textarea.form-control { padding-top: 11px; }
.bm-field-shell > textarea.form-control + .bm-control-icon,
.bm-field-shell > .bm-control-icon:has(+ textarea.form-control) { top: 15px; transform: none; }
.bm-generated-icon { min-width: 42px; justify-content: center; color: var(--bm-ink-soft); }
.btn .bm-button-icon, button .bm-button-icon { margin-right: 7px; }
.btn.icon-only .bm-button-icon { margin-right: 0; }
.bm-submit-shell { position: relative; display: inline-flex; align-items: center; }
.bm-submit-shell > .bm-button-icon { position: absolute; z-index: 2; left: 15px; color: currentColor; pointer-events: none; }
.bm-submit-shell > input.btn { padding-left: 38px; }
.main-content form .row { --bs-gutter-x: 1.25rem; --bs-gutter-y: .35rem; }
.main-content .form-label { margin-bottom: 7px; }
.main-content .form-control, .main-content .form-select,
.main-content .input-group-text { transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.main-content textarea.form-control { min-height: 112px; resize: vertical; }
.main-content .input-group > :not(:first-child) { border-left-color: #e7edeb; }
.main-content .input-group:focus-within .input-group-text { border-color: var(--bm-coral); color: var(--bm-ink); }
.main-content input[type=file].form-control { padding: 7px; }
.main-content input[type=file].form-control::file-selector-button {
  margin: -7px 12px -7px -7px;
  padding: 9px 13px;
  color: var(--bm-ink);
  background: var(--bm-surface-muted);
  border: 0;
  border-right: 1px solid var(--bm-border);
  font-weight: 650;
}
.main-content .form-check { min-height: 1.35rem; }
.main-content .form-check-label { font-weight: 500; }
.main-content .form-check.p-2.rounded.border,
.main-content .form-check.p-3.rounded.border {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border-color: var(--bm-border) !important;
  border-radius: 10px !important;
}
.main-content .form-check.p-2.rounded.border:has(.form-check-input:checked),
.main-content .form-check.p-3.rounded.border:has(.form-check-input:checked) {
  background: var(--bm-coral-soft);
  border-color: var(--bm-coral) !important;
}
.required, .text-danger { text-decoration-thickness: from-font; }

/* Accordions and segmented navigation */
.main-content .accordion { display: grid; gap: 12px; }
.main-content .accordion-item {
  background: #fff;
  border: 1px solid var(--bm-border);
  border-radius: var(--bm-radius) !important;
  box-shadow: var(--bm-shadow-sm);
}
.main-content .accordion-button {
  min-height: 56px;
  padding: 15px 18px;
  color: var(--bm-ink-strong);
  background: #fff;
  font-weight: 700;
  box-shadow: none;
}
.main-content .accordion-button:not(.collapsed) { color: var(--bm-ink); background: var(--bm-coral-soft); }
.main-content .accordion-button:focus { box-shadow: inset 0 0 0 2px rgba(239,143,127,.35); }
.main-content .accordion-body { padding: clamp(18px, 2.4vw, 26px); border-top: 1px solid var(--bm-border); }
.main-content .nav-tabs { gap: 5px; border-bottom-color: var(--bm-border); }
.main-content .nav-tabs .nav-link, .main-content .nav-pills .nav-link {
  color: var(--bm-muted);
  border-radius: 9px 9px 0 0;
  font-weight: 650;
}
.main-content .nav-tabs .nav-link.active, .main-content .nav-pills .nav-link.active {
  color: var(--bm-ink-strong);
  background: var(--bm-coral-soft);
  border-color: var(--bm-border) var(--bm-border) #fff;
}

/* Data, status, filters */
.filter-bar, .search-bar, .filter-section, .toolbar {
  margin-bottom: 18px;
  padding: 14px;
  background: rgba(255,255,255,.82);
  border: 1px solid var(--bm-border);
  border-radius: var(--bm-radius);
}
.table-responsive { box-shadow: var(--bm-shadow-sm); }
.table td { color: #334745; }
.table .btn { min-height: 34px; padding: 6px 10px; }
.table caption { padding: 12px 14px; color: var(--bm-muted); }
.pagination { gap: 5px; }
.page-link {
  min-width: 38px;
  min-height: 38px;
  display: grid;
  place-items: center;
  color: var(--bm-ink);
  border-color: var(--bm-border);
  border-radius: 9px !important;
}
.page-link:hover, .page-item.active .page-link { color: #fff; background: var(--bm-ink); border-color: var(--bm-ink); }
.badge { letter-spacing: .015em; }
.badge.bg-primary { background: var(--bm-ink) !important; }
.badge.bg-success { background: var(--bm-success) !important; }
.badge.bg-warning { color: #71470d !important; background: #ffedbd !important; }
.badge.bg-danger { background: var(--bm-danger) !important; }
.progress { height: 8px; background: #eaf0ee; border-radius: 99px; }
.progress-bar { background: linear-gradient(90deg, var(--bm-ink), #2b716d); }

/* Uploads, previews, gallery and selectable items */
.upload-area, .upload-zone, .drop-zone, .image-upload-box {
  padding: clamp(24px, 4vw, 42px);
  color: var(--bm-muted);
  background: var(--bm-surface-muted);
  border: 1.5px dashed #a9bdb9;
  border-radius: var(--bm-radius);
  text-align: center;
  transition: border-color .16s ease, background .16s ease;
}
.upload-area:hover, .upload-zone:hover, .drop-zone:hover, .image-upload-box:hover {
  background: var(--bm-coral-soft);
  border-color: var(--bm-coral);
}
.gallery-grid, .media-grid, .uploads-grid { gap: 16px; }
.gallery-item, .media-card, .upload-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--bm-border);
  border-radius: var(--bm-radius);
  box-shadow: var(--bm-shadow-sm);
}
.gallery-item img, .media-card img, .upload-card img { width: 100%; object-fit: cover; }

/* Lists, summaries and subscription cards */
.main-content .list-group-item {
  padding: 14px 16px;
  background: transparent;
  border-color: var(--bm-border);
}
.main-content .list-group-item-action:hover { color: var(--bm-ink); background: var(--bm-surface-muted); }
.detail-row, .info-row, .summary-row {
  padding-block: 11px;
  border-bottom: 1px solid #eaf0ee;
}
.detail-row:last-child, .info-row:last-child, .summary-row:last-child { border-bottom: 0; }
.plan-card, .pricing-card, .subscription-card {
  height: 100%;
  background: #fff;
  border: 1px solid var(--bm-border);
  border-radius: var(--bm-radius-lg);
  box-shadow: var(--bm-shadow-sm);
}
.plan-card.featured, .pricing-card.featured, .subscription-card.active {
  border-color: var(--bm-coral);
  box-shadow: 0 14px 36px rgba(239,143,127,.16);
}

/* Feedback, modals and empty states */
.alert { padding: 13px 16px; box-shadow: 0 1px 2px rgba(11,41,40,.03); }
.alert-success { color: #155e45; background: #e9f8f1; border-color: #bce8d4; }
.alert-danger { color: #8f3038; background: #fff0f1; border-color: #f1c7cb; }
.alert-warning { color: #7b5011; background: #fff8e8; border-color: #f1ddb1; }
.alert-info { color: #285b66; background: #edf8fa; border-color: #c7e5ea; }
.modal-backdrop.show { opacity: .58; }
.modal-header { padding: 18px 20px; background: var(--bm-surface-muted); }
.modal-body { padding: 22px 20px; }
.modal-footer { padding: 14px 20px; background: var(--bm-surface-muted); }
.btn-close:focus { box-shadow: var(--bm-focus); }
.empty-state, .empty-table, .no-data, .no-results {
  min-height: 220px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 8px;
}
.empty-state i, .no-data i, .no-results i { color: #a7b7b4; font-size: 2.2rem; }

/* Focus, disabled state and responsive polish */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid rgba(239,143,127,.32);
  outline-offset: 2px;
}
.btn:disabled, .form-control:disabled, .form-select:disabled { cursor: not-allowed; opacity: .62; }
@media (max-width: 767.98px) {
  .page-header, .content-header, .title-row,
  .main-content .d-flex.justify-content-between.align-items-center { align-items: flex-start !important; flex-wrap: wrap; }
  .page-header .btn, .content-header .btn, .title-row .btn { width: 100%; }
  .filter-bar, .search-bar, .filter-section, .toolbar { padding: 12px; }
  .main-content .card-body, .main-content .accordion-body { padding: 16px; }
  .table-responsive .table { min-width: 660px; }
  .modal-dialog { margin: 10px; }
}
@media (max-width: 480px) {
  .main-content .btn-group { width: 100%; flex-wrap: wrap; }
  .main-content .btn-group > .btn { flex: 1 1 auto; border-radius: 8px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .main-content > :first-child { animation: none; }
}
