/* =============================================
   Partner Offer Pages
   Estilos para Create, Index e Details de Ofertas
   ============================================= */



/* Componente: doc-upload hover */
.doc-upload-item {
  transition: background-color 0.15s ease;
}

.doc-upload-item:hover {
  background-color: var(--color-bs-gray-100);
}

.offer-modal-content {
  border: 0;
  border-radius: 12px;
}

.offer-modal-icon {
  display: flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
}

.offer-modal-icon i {
  font-size: 1.75rem;
}

.offer-modal-icon-lg {
  width: 80px;
  height: 80px;
}

.offer-modal-icon-lg i {
  font-size: 2.5rem;
}

.offer-modal-icon-warning {
  background: var(--bs-warning-bg-subtle, rgba(255, 193, 7, 0.1));
  color: var(--bs-warning, var(--color-warning-bs));
}

.offer-modal-icon-success {
  background: var(--bs-success-bg-subtle, rgba(25, 135, 84, 0.1));
  color: var(--bs-success, var(--color-success-bs));
}

.offer-field-badge {
  font-size: 0.6875rem;
  font-weight: 500;
}

.banner-upload-area {
  border-radius: 12px !important;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

.banner-upload-area:hover {
  border-color: var(--color-primary, var(--color-primary)) !important;
}

.banner-upload-icon {
  display: flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  background: color-mix(in srgb, var(--color-primary, var(--color-primary)) 10%, white);
  color: var(--color-primary, var(--color-primary));
}

.banner-upload-icon i {
  font-size: 1.1rem;
}

.banner-preview-shell {
  max-width: 100%;
}

.banner-preview-image {
  max-width: 100%;
  max-height: 200px;
  border: 1px solid var(--color-gray-200);
  border-radius: 12px !important;
}

.banner-preview-clear {
  top: 6px;
  right: 6px;
  padding: 2px 8px;
}

.doc-row-action-spacer {
  width: 36px;
  flex: 0 0 36px;
}

.review-section-title {
  font-size: 0.6875rem;
  letter-spacing: 0;
}

/* Componente: offer-card (Index) */
.offer-card {
  transition: background-color 0.15s ease;
}

.offer-card:hover {
  background-color: var(--bs-gray-50, var(--color-bs-gray-100));
}

/* Componente: offer status tabs — ver components/_tabs.css (.tabs) */
.partner-dashboard .partner-offers-summary-grid {
  row-gap: var(--spacing-sm);
}

.partner-dashboard .partner-offers-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.partner-dashboard .partner-offers-filter-panel .partner-offers-panel-header,
.partner-dashboard .partner-offers-card .partner-offers-panel-header {
  gap: 0.875rem;
}

/* Tabs de status: sem fundo (mesmo padrão underline das demais áreas). */
.partner-dashboard .partner-offers-filter-panel .partner-offers-panel-header {
  background: transparent;
  padding: 0;
}

.partner-dashboard .partner-offers-card .partner-offers-panel-header {
  background: var(--color-white);
  padding: var(--spacing-sm) var(--dashboard-card-padding-lg, 1.125rem) 0.875rem;
  border-bottom: 1px solid var(--color-surface-500);
}

.partner-dashboard .partner-offers-panel-title {
  min-height: 1.5rem;
}

.partner-dashboard .partner-offers-tabs-row {
  width: 100%;
  padding-top: 0.25rem;
}

.partner-dashboard .partner-offers-tabs-row .responsive-tabs-shell {
  margin-bottom: 0 !important;
}

.partner-dashboard .partner-offers-tabs-row .tabs {
  border-bottom-color: var(--color-gray-200);
}

.partner-dashboard .partner-offers-tabs-row .tabs .nav-link {
  min-height: 2.75rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.partner-dashboard .partner-offers-card-body {
  border-top: 0;
  background: var(--color-white);
}

.partner-dashboard #offerListContainer {
  width: 100%;
  margin-inline: 0;
  padding: 1.25rem !important;
}

.partner-dashboard #offerListContainer .ui-offer-card {
  --offer-card-body-gap: 0.725rem;
  --offer-card-row-gap: 0.375rem;
  --offer-card-inline-gap: 0.875rem;
  --offer-card-section-offset: 0.75rem;
  --offer-card-progress-gap: 0.375rem;
  min-height: 0;
}

.partner-dashboard #offerListContainer .ui-offer-card__media {
  /* Banner um pouco mais compacto: mantém o card de oferta abaixo do limite de altura. */
  height: 6rem;
}

.partner-dashboard #offerListContainer .ui-offer-card__body {
  gap: var(--offer-card-body-gap);
  padding: 0.8rem;
}

.partner-dashboard #offerListContainer .ui-offer-card__metric {
  padding: var(--spacing-xs);
}

.partner-dashboard #offerListContainer .ui-offer-card__info {
  gap: var(--offer-card-row-gap);
  padding-top: var(--offer-card-section-offset);
}

.partner-dashboard #offerListContainer .ui-offer-card__progress {
  gap: var(--offer-card-progress-gap);
  padding-top: var(--offer-card-section-offset);
}

.partner-dashboard #offerListContainer .ui-offer-card__footer {
  padding: 0 0.875rem 0.875rem;
}

.partner-dashboard .partner-offers-empty-shell {
  display: flex;
  min-height: clamp(10rem, 18vh, 12.5rem);
  align-items: center;
  justify-content: center;
  padding: var(--spacing-md) 1.25rem;
}

.partner-dashboard .partner-offers-empty-shell .ui-empty-state {
  width: 100%;
  max-width: 34rem;
  min-height: 0;
  padding: 0.25rem !important;
}

.partner-dashboard .partner-offers-card .table-pagination-footer {
  display: flex;
  min-height: 4.25rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-sm);
  background: var(--color-white);
}

@media (max-width: 767.98px) {
  .partner-dashboard .partner-offers-card .partner-offers-panel-header {
    padding: var(--spacing-sm) var(--spacing-sm) 0.75rem;
  }

  .partner-dashboard .partner-offers-tabs-row {
    margin-top: 0;
    padding-top: var(--spacing-xs);
  }

  .partner-dashboard .partner-offers-empty-shell {
    min-height: 10rem;
    padding: 1.25rem 0.875rem;
  }

  .partner-dashboard #offerListContainer {
    padding: var(--spacing-sm) !important;
  }

  .partner-dashboard #offerListContainer .ui-offer-card {
    --offer-card-body-gap: 0.6rem;
    --offer-card-row-gap: 0.25rem;
    --offer-card-section-offset: 0.625rem;
    --offer-card-progress-gap: 0.25rem;
    min-height: 0;
  }

  .partner-dashboard .partner-offers-card .table-pagination-footer {
    align-items: flex-start;
    flex-direction: column;
    padding-right: var(--spacing-sm) !important;
    padding-left: var(--spacing-sm) !important;
  }
}

/* Utilitário: font monospace (Details) */
.font-monospace {
  font-family: "Courier New", monospace;
}

/* Utilitário: stat label uppercase (Index e Details) */
.stat-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.offer-hero-icon {
  width: 3.5rem;
  height: 3.5rem;
}

.offer-days-remaining {
  color: var(--color-primary, var(--color-primary));
  font-size: 3rem;
  line-height: 1;
}

.offer-period-progress {
  height: 0.5rem;
}

.offer-timeline-icon {
  width: 2rem;
  height: 2rem;
}

.offer-timeline-meta {
  font-size: 0.6875rem;
}

.offer-support-text {
  font-size: 0.75rem;
}

/* Componente: seletor de empresa (Create Offer) */
.partner-select-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: 0.75rem var(--spacing-sm);
  border: 1px solid var(--color-gray-200);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.partner-select-item:hover {
  border-color: var(--color-primary, var(--color-primary));
  background: color-mix(in srgb, var(--color-primary, var(--color-primary)) 8%, var(--color-white));
}

.partner-select-item:has(.partner-radio:checked) {
  border-color: var(--color-primary, var(--color-primary));
  background: color-mix(in srgb, var(--color-primary, var(--color-primary)) 10%, var(--color-white));
  box-shadow: 0 0 0 1px var(--color-primary, var(--color-primary));
}

.partner-radio {
  accent-color: var(--color-primary, var(--color-primary));
}

.partner-select-info {
  flex: 1;
}
