/* OngVietPOS Fix164 - Admin announcement editor layout repair.
   CSS-only hotfix: restores a wide, scroll-safe multi-announcement editor. */

.ov-announcement-modal.modal-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 100000 !important;
  display: grid !important;
  place-items: center !important;
  padding: 18px !important;
  background: rgba(15, 23, 42, .58) !important;
  backdrop-filter: blur(2px) !important;
  overflow: auto !important;
}

.ov-announcement-dialog.ov-announcement-dialog-multi {
  width: min(1500px, calc(100vw - 36px)) !important;
  min-width: 0 !important;
  max-width: none !important;
  height: min(820px, calc(100dvh - 36px)) !important;
  max-height: calc(100dvh - 36px) !important;
  margin: 0 !important;
  padding: 18px !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 28px 70px rgba(15, 23, 42, .28) !important;
  display: grid !important;
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  gap: 12px !important;
  overflow: hidden !important;
  color: #172033 !important;
}

.ov-announcement-dialog-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 16px !important;
  min-width: 0 !important;
}
.ov-announcement-dialog-head > div { min-width: 0 !important; }
.ov-announcement-dialog-head span {
  display: block !important;
  color: #64748b !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: .06em !important;
}
.ov-announcement-dialog-head h2 {
  margin: 3px 0 0 !important;
  color: #1e293b !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
}
.ov-announcement-dialog-head > button {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 10px !important;
  background: #f8fafc !important;
  color: #475569 !important;
  display: grid !important;
  place-items: center !important;
  cursor: pointer !important;
}

.ov-announcement-help {
  margin: 0 !important;
  color: #64748b !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.ov-announcement-manager {
  min-width: 0 !important;
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: 320px minmax(0, 1fr) !important;
  gap: 16px !important;
  overflow: hidden !important;
}

.ov-announcement-list-pane {
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 12px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  gap: 10px !important;
  overflow: hidden !important;
}
.ov-announcement-list-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}
.ov-announcement-list-head strong { font-size: 14px !important; }
.ov-announcement-list-head .primary-command {
  min-height: 34px !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #2563eb !important;
  color: #fff !important;
  font-weight: 800 !important;
}
.ov-announcement-list {
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: grid !important;
  align-content: start !important;
  gap: 8px !important;
  padding-right: 2px !important;
}
.ov-announcement-list-item {
  min-width: 0 !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  overflow: hidden !important;
}
.ov-announcement-list-item.selected {
  border-color: #60a5fa !important;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .12) !important;
}
.ov-announcement-list-main {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 66px !important;
  padding: 9px 10px !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
  text-align: left !important;
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr) auto !important;
  align-items: start !important;
  gap: 8px !important;
  cursor: pointer !important;
}
.ov-announcement-order {
  color: #2563eb !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}
.ov-announcement-list-main > div { min-width: 0 !important; }
.ov-announcement-list-main strong,
.ov-announcement-list-main small {
  display: block !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.ov-announcement-list-main strong {
  color: #0f172a !important;
  font-size: 13px !important;
  white-space: normal !important;
  line-height: 1.35 !important;
}
.ov-announcement-list-main small {
  margin-top: 4px !important;
  color: #64748b !important;
  font-size: 11px !important;
  white-space: nowrap !important;
}
.ov-announcement-list-main em {
  white-space: nowrap !important;
  font-style: normal !important;
  color: #475569 !important;
  font-size: 11px !important;
}
.ov-announcement-list-tools {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 7px !important;
}
.ov-announcement-list-tools button {
  min-height: 34px !important;
  padding: 0 9px !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #334155 !important;
  font-weight: 700 !important;
}
.ov-announcement-list-tools button.danger { color: #b91c1c !important; border-color: #fecaca !important; }

.ov-announcement-editor-pane {
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  padding: 14px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  background: #fff !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: block !important;
  scrollbar-gutter: stable !important;
}
.ov-announcement-editor-pane > * + * { margin-top: 12px !important; }

.ov-announcement-editor-title {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid #eef2f7 !important;
}
.ov-announcement-editor-title > div { min-width: 0 !important; }
.ov-announcement-editor-title strong { display: block !important; font-size: 15px !important; }
.ov-announcement-editor-title span { color: #64748b !important; font-size: 12px !important; white-space: nowrap !important; }

.ov-announcement-presets,
.ov-announcement-editor-toolbar,
.ov-audience-mode,
.ov-audience-branches,
.ov-announcement-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 7px !important;
  min-width: 0 !important;
}
.ov-announcement-presets button,
.ov-announcement-editor-toolbar button,
.ov-audience-mode button {
  min-height: 32px !important;
  padding: 0 9px !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 7px !important;
  background: #fff !important;
  color: #334155 !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
}
.ov-announcement-presets button.active,
.ov-announcement-editor-toolbar button.active,
.ov-audience-mode button.active {
  border-color: #60a5fa !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
}
.ov-announcement-editor-toolbar label {
  min-width: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  color: #475569 !important;
  font-size: 12px !important;
  white-space: nowrap !important;
}
.ov-announcement-editor-toolbar select,
.ov-announcement-editor-toolbar input[type="color"] {
  height: 32px !important;
  min-width: 68px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 7px !important;
  background: #fff !important;
}
.ov-announcement-editor-toolbar input[type="color"] { width: 42px !important; min-width: 42px !important; padding: 2px !important; }

.ov-announcement-pro-textarea {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 112px !important;
  resize: vertical !important;
  padding: 11px 12px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 9px !important;
  background: #fff !important;
  color: #0f172a !important;
  font: inherit !important;
  line-height: 1.45 !important;
}

.ov-announcement-options-grid.ov-announcement-options-grid-multi {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(180px, 1fr)) !important;
  gap: 10px !important;
  min-width: 0 !important;
}
.ov-announcement-options-grid-multi > label {
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 5px !important;
  color: #475569 !important;
  font-size: 12px !important;
}
.ov-announcement-options-grid-multi select,
.ov-announcement-options-grid-multi input {
  width: 100% !important;
  min-width: 0 !important;
  height: 36px !important;
  padding: 0 9px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #0f172a !important;
}

.ov-announcement-audience {
  min-width: 0 !important;
  padding: 12px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  background: #f8fafc !important;
}
.ov-announcement-audience-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 9px !important;
}
.ov-announcement-audience-head > div { min-width: 0 !important; }
.ov-announcement-audience-head strong { display: block !important; font-size: 13px !important; }
.ov-announcement-audience-head small { display: block !important; margin-top: 2px !important; color: #64748b !important; font-size: 11px !important; }
.ov-audience-summary { white-space: nowrap !important; color: #2563eb !important; font-size: 11px !important; font-weight: 800 !important; }
.ov-audience-check-grid,
.ov-audience-user-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 7px !important;
  margin-top: 9px !important;
  max-height: 190px !important;
  overflow-y: auto !important;
}
.ov-audience-check-grid label,
.ov-audience-user-grid label,
.ov-audience-branches label,
.ov-announcement-meta label {
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
}
.ov-audience-user-grid label {
  padding: 7px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 8px !important;
  background: #fff !important;
}
.ov-audience-user-grid label > span { min-width: 0 !important; }
.ov-audience-user-grid b,
.ov-audience-user-grid small { display: block !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.ov-audience-user-grid small { color: #64748b !important; font-size: 10px !important; }
.ov-audience-branches { margin-top: 9px !important; }
.ov-audience-branches > span { color: #64748b !important; font-size: 11px !important; }

.ov-announcement-meta {
  justify-content: space-between !important;
  padding: 8px 10px !important;
  border-radius: 8px !important;
  background: #f8fafc !important;
  color: #475569 !important;
  font-size: 12px !important;
}

.ov-announcement-preview {
  min-width: 0 !important;
  padding: 10px 12px !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}
.ov-announcement-preview > strong { display: block !important; margin-bottom: 6px !important; font-size: 12px !important; }
.ov-announcement-preview-line { min-width: 0 !important; display: flex !important; align-items: center !important; gap: 8px !important; }
.ov-announcement-preview-text { min-width: 0 !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.ov-announcement-reset-format { min-height: 34px !important; padding: 0 12px !important; border-radius: 8px !important; }

.ov-announcement-actions.ov-announcement-actions-multi {
  min-width: 0 !important;
  min-height: 44px !important;
  padding-top: 10px !important;
  border-top: 1px solid #e2e8f0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.ov-announcement-actions-multi > span {
  margin-right: auto !important;
  min-width: 240px !important;
  color: #64748b !important;
  font-size: 12px !important;
}
.ov-announcement-actions-multi button {
  min-height: 36px !important;
  padding: 0 13px !important;
  border-radius: 8px !important;
  font-weight: 800 !important;
}
.ov-announcement-actions-multi .primary-command {
  border: 0 !important;
  background: #2563eb !important;
  color: #fff !important;
}

@media (max-width: 1180px) {
  .ov-announcement-dialog.ov-announcement-dialog-multi {
    height: calc(100dvh - 24px) !important;
    width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    padding: 12px !important;
  }
  .ov-announcement-manager { grid-template-columns: 260px minmax(0, 1fr) !important; gap: 10px !important; }
  .ov-announcement-options-grid.ov-announcement-options-grid-multi { grid-template-columns: repeat(2, minmax(170px, 1fr)) !important; }
  .ov-audience-check-grid, .ov-audience-user-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 820px) {
  .ov-announcement-modal.modal-backdrop { padding: 8px !important; }
  .ov-announcement-dialog.ov-announcement-dialog-multi {
    width: calc(100vw - 16px) !important;
    height: calc(100dvh - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    border-radius: 12px !important;
  }
  .ov-announcement-manager {
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(150px, 30vh) minmax(0, 1fr) !important;
  }
  .ov-announcement-list-pane { min-height: 150px !important; }
  .ov-announcement-options-grid.ov-announcement-options-grid-multi,
  .ov-audience-check-grid,
  .ov-audience-user-grid { grid-template-columns: 1fr !important; }
  .ov-announcement-actions-multi > span { width: 100% !important; margin-right: 0 !important; }
}
