/* Announcement surfaces for the embedded Vue application, version 1.0.0. */
.ovo-ann-overlay {
  --ann-bg: var(--ovo-surface, #fff);
  --ann-soft: var(--ovo-surface-muted, #f5f5f5);
  --ann-ink: var(--ovo-text, #202124);
  --ann-muted: var(--ovo-muted, #64666e);
  --ann-line: var(--ovo-border, #e5e5e7);
  --ann-focus: var(--ovo-focus, #2563eb);
  --ann-accent: var(--ovo-accent, #191919);
  --ann-on-accent: var(--ovo-on-accent, #fff);
  --ann-info: #2563eb;
  --ann-info-soft: #eff6ff;
  --ann-glass: rgba(255, 255, 255, .97);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  overflow: hidden;
  overscroll-behavior: contain;
  background: rgba(20, 21, 24, .4);
  background-image: none;
  backdrop-filter: blur(4px);
  color: var(--ann-ink);
  letter-spacing: 0;
}
html.dark .ovo-ann-overlay {
  --ann-info: #93c5fd;
  --ann-info-soft: #253446;
  --ann-glass: rgba(27, 28, 32, .97);
  background: rgba(0, 0, 0, .56);
}
.ovo-ann-overlay[data-ovo-covered="true"] { visibility: hidden; pointer-events: none; }
.ovo-ann-overlay * { letter-spacing: 0; }
.ovo-ann-overlay .ovo-ann-dialog {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 620px;
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--ann-line);
  border-radius: 8px;
  background: var(--ann-bg);
  color: var(--ann-ink);
  box-shadow: 0 20px 64px rgba(0, 0, 0, .18);
  --tw-ring-shadow: 0 0 #0000;
  animation: ovo-ann-enter 180ms ease-out;
}
.ovo-ann-overlay:not([data-ovo-announcement="list"]) .ovo-ann-dialog { max-width: 720px; }
.ovo-ann-overlay .ovo-ann-header {
  flex: 0 0 auto;
  padding: 22px 24px;
  border-bottom: 1px solid var(--ann-line);
  background: var(--ann-glass);
  background-image: none;
}
.ovo-ann-header > .absolute, .ovo-ann-native-summary, .ovo-ann-decoration { display: none; }
.ovo-ann-header-line { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ovo-ann-heading-block { min-width: 0; }
[data-ovo-announcement="list"] .ovo-ann-heading-block {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 2px 12px;
}
.ovo-ann-title-line { display: contents; }
.ovo-ann-overlay .ovo-ann-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: var(--ann-accent);
  background-image: none;
  color: var(--ann-on-accent);
  box-shadow: none;
}
.ovo-ann-title-line > .ovo-ann-icon { grid-row: 1 / 3; align-self: center; }
.ovo-ann-overlay .ovo-ann-icon :is(span, svg) { width: 18px; height: 18px; }
.ovo-ann-overlay h2 { color: var(--ann-ink); font-size: 18px; line-height: 24px; font-weight: 600; overflow-wrap: anywhere; }
.ovo-ann-total { display: flex; flex-wrap: wrap; gap: 2px 10px; margin: 0; font-size: 12px; line-height: 18px; color: var(--ann-muted); font-variant-numeric: tabular-nums; }
.ovo-ann-summary-unread { color: var(--ann-info); }
.ovo-ann-total > [hidden] { display: none; }
.ovo-ann-actions { display: flex; align-items: center; flex: 0 0 auto; gap: 8px; }
.ovo-ann-overlay .ovo-ann-close {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ann-muted);
  box-shadow: none;
  backdrop-filter: none;
  cursor: pointer;
  transition: none;
}
.ovo-ann-overlay .ovo-ann-close:hover { background: var(--ann-soft); color: var(--ann-ink); box-shadow: none; }
.ovo-ann-overlay .ovo-ann-close :is(span, svg) { width: 18px; height: 18px; }
.ovo-ann-overlay .ovo-ann-mark-all {
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid var(--ann-line);
  border-radius: 8px;
  color: var(--ann-ink);
  background: transparent;
  box-shadow: none;
  font-size: 12px;
  line-height: 20px;
  white-space: nowrap;
  cursor: pointer;
  transition: none;
}
.ovo-ann-overlay .ovo-ann-mark-all:hover:not(:disabled) { background: var(--ann-soft); box-shadow: none; }
.ovo-ann-overlay .ovo-ann-mark-all:disabled { opacity: .5; cursor: wait; }
.ovo-ann-overlay .ovo-ann-body { flex: 1 1 auto; min-height: 0; max-height: none; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--ann-line) transparent; }
[data-ovo-announcement="list"] .ovo-ann-body { padding: 4px 0; }
.ovo-ann-overlay .ovo-ann-row {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 78px !important;
  padding: 16px 24px;
  border-bottom: 1px solid var(--ann-line);
  background: transparent;
  color: var(--ann-ink);
  cursor: pointer;
  transition: none;
}
.ovo-ann-overlay .ovo-ann-row:last-child { border-bottom: 0; }
.ovo-ann-overlay .ovo-ann-row:hover { background: var(--ann-soft); }
.ovo-ann-row > .absolute { display: none; }
.ovo-ann-overlay .ovo-ann-row-icon, .ovo-ann-overlay .ovo-ann-row-icon > div { width: 36px; height: 36px; flex: 0 0 36px; }
.ovo-ann-overlay .ovo-ann-row-icon > div { border-radius: 8px; background: var(--ann-soft); background-image: none; color: var(--ann-muted); box-shadow: none; }
.ovo-ann-overlay .ovo-ann-row-unread .ovo-ann-row-icon > div { background: var(--ann-info-soft); color: var(--ann-info); }
.ovo-ann-row-icon .animate-ping { display: none; }
.ovo-ann-row-icon svg { width: 18px; height: 18px; stroke-width: 1.5; }
.ovo-ann-overlay .ovo-ann-row h3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: var(--ann-ink); font-size: 14px; line-height: 22px; font-weight: 500; white-space: normal; overflow-wrap: anywhere; }
.ovo-ann-row-unread h3 { font-weight: 600 !important; }
.ovo-ann-overlay .ovo-ann-row time { color: var(--ann-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.ovo-ann-overlay .ovo-ann-unread-badge { padding: 0; border-radius: 0; background: transparent; color: var(--ann-info); font-size: 11px; line-height: 16px; }
.ovo-ann-unread-badge .animate-ping { display: none; }
.ovo-ann-overlay .ovo-ann-row > div:last-of-type > div:last-child > svg { width: 16px; height: 16px; color: var(--ann-muted); transform: none; transition: none; }
.ovo-ann-overlay .ovo-ann-state { padding: 44px 24px; color: var(--ann-muted); }
.ovo-ann-state :is(p, svg) { color: var(--ann-muted); }
.ovo-ann-overlay:not([data-ovo-announcement="list"]) .ovo-ann-header-line { align-items: flex-start; }
[data-ovo-announcement="popup"] .ovo-ann-header-line { display: block; }
.ovo-ann-kicker { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
.ovo-ann-overlay .ovo-ann-kicker .ovo-ann-icon { flex-basis: 28px; width: 28px; height: 28px; background: var(--ann-soft); color: var(--ann-muted); border-radius: 6px; }
.ovo-ann-overlay .ovo-ann-kicker .ovo-ann-icon svg { width: 16px; height: 16px; }
.ovo-ann-overlay .ovo-ann-kicker > div:last-child > span, .ovo-ann-overlay .ovo-ann-kicker > span { padding: 0; border-radius: 0; background: transparent; background-image: none; color: var(--ann-muted); box-shadow: none; font-size: 12px; line-height: 18px; }
.ovo-ann-overlay[data-ovo-announcement="popup"] .ovo-ann-kicker > span { color: var(--ann-info); }
.ovo-ann-kicker .animate-ping { display: none; }
.ovo-ann-overlay:not([data-ovo-announcement="list"]) .ovo-ann-heading-block > h2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0 0 10px; font-size: 22px; line-height: 30px; }
.ovo-ann-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--ann-muted); font-size: 12px; line-height: 20px; font-variant-numeric: tabular-nums; }
.ovo-ann-meta > div { min-width: 0; }
.ovo-ann-meta > div:nth-child(2) { display: none; }
.ovo-ann-meta svg { flex: 0 0 14px; width: 14px; height: 14px; stroke-width: 1.5; }
.ovo-ann-meta time { overflow-wrap: anywhere; }
.ovo-ann-overlay:not([data-ovo-announcement="list"]) .ovo-ann-body { padding: 24px; background: var(--ann-bg); }
.ovo-ann-copy { padding-left: 0; min-width: 0; }
.ovo-ann-overlay .ovo-ann-markdown { color: var(--ann-ink); font-size: 14px; line-height: 1.85; overflow-wrap: anywhere; }
.ovo-ann-markdown :is(p, ul, ol, pre, blockquote, table) { margin: 0 0 16px; }
.ovo-ann-markdown > :last-child { margin-bottom: 0; }
.ovo-ann-markdown :is(h1, h2, h3, h4) { margin: 24px 0 10px; color: var(--ann-ink); font-size: 18px; line-height: 1.5; font-weight: 600; }
.ovo-ann-markdown > :first-child { margin-top: 0; }
.ovo-ann-markdown :is(strong, b) { color: inherit; }
.ovo-ann-markdown :is(ul, ol) { padding-left: 22px; }
.ovo-ann-markdown li { padding-left: 2px; margin: 4px 0; }
.ovo-ann-markdown a { color: var(--ann-info); text-decoration: underline; text-underline-offset: 3px; }
.ovo-ann-markdown pre { max-width: 100%; overflow: auto; border-radius: 6px; padding: 12px 14px; background: var(--ann-soft); color: var(--ann-ink); font-size: 12px; line-height: 1.7; }
.ovo-ann-markdown code { border-radius: 4px; background: var(--ann-soft); color: var(--ann-ink); padding: 2px 5px; font-size: .9em; }
.ovo-ann-markdown pre code { padding: 0; background: transparent; font-size: inherit; white-space: pre; overflow-wrap: normal; }
.ovo-ann-markdown blockquote { padding: 4px 0 4px 14px; border-left: 2px solid var(--ann-line); color: var(--ann-muted); }
.ovo-ann-markdown blockquote > :last-child { margin-bottom: 0; }
.ovo-ann-markdown table { display: block; max-width: 100%; overflow: auto; border-collapse: collapse; font-size: 12px; }
.ovo-ann-markdown :is(th, td) { padding: 10px 12px; border: 1px solid var(--ann-line); }
.ovo-ann-markdown th { background: var(--ann-soft); color: var(--ann-ink); }
.ovo-ann-markdown img { max-width: 100%; height: auto; border-radius: 6px; }
.ovo-ann-overlay .ovo-ann-footer { flex: 0 0 auto; padding: 16px 24px; border-top: 1px solid var(--ann-line); background: var(--ann-soft); }
.ovo-ann-footer-line { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.ovo-ann-footer-line > div:first-child { color: var(--ann-muted); font-size: 12px; }
.ovo-ann-footer-line > div:first-child svg { width: 14px; height: 14px; flex: 0 0 14px; stroke-width: 1.5; }
.ovo-ann-footer-line > div:last-child { margin-left: auto; gap: 8px; }
.ovo-ann-overlay .ovo-ann-footer button { min-height: 36px; padding: 7px 16px; border: 1px solid var(--ann-line); border-radius: 8px; background: var(--ann-bg); background-image: none; color: var(--ann-ink); box-shadow: none; font-size: 12px; line-height: 20px; cursor: pointer; transition: none; }
.ovo-ann-overlay .ovo-ann-footer button:hover:not(:disabled) { background: var(--ann-soft); box-shadow: none; }
.ovo-ann-overlay .ovo-ann-footer button + button { border-color: transparent; background: var(--ann-accent); color: var(--ann-on-accent); }
.ovo-ann-overlay .ovo-ann-footer button + button:hover:not(:disabled) { opacity: .85; }
.ovo-ann-footer button:disabled { opacity: .5; cursor: wait; }
.ovo-ann-overlay[data-ovo-announcement="popup"] .ovo-ann-footer-line { justify-content: flex-end; }
.ovo-ann-overlay[data-ovo-announcement="popup"] .ovo-ann-footer button { border-color: transparent; background: var(--ann-accent); color: var(--ann-on-accent); }
.ovo-ann-overlay[data-ovo-announcement="popup"] .ovo-ann-footer button:hover:not(:disabled) { transform: none; opacity: .85; }
.ovo-ann-overlay .ovo-ann-body::-webkit-scrollbar { width: 6px; }
.ovo-ann-overlay .ovo-ann-body::-webkit-scrollbar-thumb { background: var(--ann-line); border-radius: 3px; }
.ovo-ann-overlay :is(button, a, [tabindex]):focus-visible { outline: 2px solid var(--ann-focus); outline-offset: 3px; }
.ovo-ann-overlay .ovo-ann-row:focus-visible { outline-offset: -3px; }
.ovo-ann-overlay h2[tabindex="-1"]:focus { outline: none; }
@keyframes ovo-ann-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 639px) {
  .ovo-ann-overlay { padding: 12px; }
  .ovo-ann-overlay .ovo-ann-dialog { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .ovo-ann-overlay .ovo-ann-header { padding: 18px 16px; }
  .ovo-ann-header-line { gap: 12px; }
  [data-ovo-announcement="list"] .ovo-ann-heading-block { grid-template-columns: 32px minmax(0, 1fr); column-gap: 10px; }
  .ovo-ann-title-line > .ovo-ann-icon { width: 32px; height: 32px; }
  .ovo-ann-overlay h2 { font-size: 16px; line-height: 22px; }
  .ovo-ann-total { font-size: 11px; line-height: 16px; gap: 2px 8px; }
  .ovo-ann-actions { gap: 6px; }
  .ovo-ann-overlay .ovo-ann-mark-all { padding-inline: 10px; font-size: 11px; }
  .ovo-ann-overlay .ovo-ann-row { padding: 14px 16px; gap: 12px; }
  .ovo-ann-overlay:not([data-ovo-announcement="list"]) .ovo-ann-heading-block > h2 { font-size: 20px; line-height: 28px; }
  .ovo-ann-overlay:not([data-ovo-announcement="list"]) .ovo-ann-body { padding: 20px 16px; }
  .ovo-ann-overlay .ovo-ann-footer { padding: 14px 16px; }
  .ovo-ann-footer-line > div:first-child { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .ovo-ann-overlay, .ovo-ann-overlay *, .ovo-ann-overlay *::before, .ovo-ann-overlay *::after { animation: none !important; transition: none !important; }
}
