/* WRS GEMPA: desktop contrast, clock readability and catalog card styling. */
:root {
  --wrs-desktop-text: #f3f7ff;
  --wrs-desktop-muted: #c3d2e3;
  --wrs-desktop-faint: #9fb3c9;
  --wrs-desktop-border: rgba(143, 180, 215, .38);
  --wrs-desktop-surface: rgba(5, 15, 28, .96);
}

@media (min-width: 1201px) {
  body { color: var(--wrs-desktop-text) !important; }
  .glass-panel {
    color: var(--wrs-desktop-text) !important;
    background: rgba(5, 15, 28, .94) !important;
    border-color: var(--wrs-desktop-border) !important;
    box-shadow: 0 14px 38px rgba(0, 0, 0, .46), inset 0 1px rgba(255,255,255,.06) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.2) !important;
    backdrop-filter: blur(18px) saturate(1.2) !important;
  }
  .panel-header-title, .rp-mag-info b, .rp-mag-info span,
  .rp-stats b, .rp-desc, .rp-pot, .rp-instr, .disc b, .leg-h {
    color: var(--wrs-desktop-text) !important;
  }
  .panel-sub, #rtFilter, #rtDate, #rtAgo, #rtCoord, #rtDist,
  #rtPlace, #rtSrc, .rp-mode, .rp-mag-info small, .rp-stats small,
  .rp-quick-status, .rp-foot, .disc, .leg-row, .leg-lab,
  .depth-leg, .map-overlay-label, .wrs-health time {
    color: var(--wrs-desktop-muted) !important;
    opacity: 1 !important;
  }
  .panel-sub { font-size: 11px !important; line-height: 1.45 !important; }
  #rtFilter { color: #d2deed !important; font-size: 10px !important; line-height: 1.45 !important; }
  #rtDate { color: #f4f8ff !important; font-size: 12px !important; font-weight: 750 !important; }
  #rtAgo { color: #c5d4e5 !important; font-size: 11px !important; }
  #rtCoord, #rtDist { color: #dce8f6 !important; font-size: 11px !important; line-height: 1.5 !important; }
  #rtPlace { color: #f2f7ff !important; font-size: 12px !important; font-weight: 720 !important; line-height: 1.45 !important; }
  #rtSrc { color: #cbd8e8 !important; font-size: 10px !important; }
  .rp-mode { color: #bfeaff !important; font-size: 10px !important; }
  .rp-stats small { color: #bdcde0 !important; font-size: 10px !important; }
  .rp-stats b { color: #f3f7ff !important; font-size: 12px !important; overflow-wrap: anywhere !important; }
  .rp-desc, .rp-instr span { color: #e0eafa !important; font-size: 12px !important; line-height: 1.55 !important; }
  .rp-quick-status, .rp-foot { color: #bdcde0 !important; font-size: 10px !important; line-height: 1.5 !important; }
  .rp-links .ext-link { color: #8ee6ff !important; font-weight: 750 !important; }
  .tb-btn { color: #f5f8ff !important; border-color: rgba(148, 181, 218, .45) !important; }
  .bm-opt { color: #e1ebf7 !important; }
  .bm-opt:hover, .bm-opt.active { color: #8ce8ff !important; }

  /* Dates and clocks were present but too tiny and muted on desktop. */
  #cardRealtime #worldClockPanel.world-clock-panel {
    padding: 10px 11px !important;
    margin: 8px 10px 12px !important;
    width: calc(100% - 20px) !important;
    border-color: rgba(76, 207, 244, .48) !important;
    background: linear-gradient(140deg, rgba(7, 34, 53, .98), rgba(5, 19, 34, .98)) !important;
    box-shadow: inset 0 0 12px rgba(0, 183, 255, .06), 0 6px 18px rgba(0,0,0,.2) !important;
  }
  #cardRealtime .world-clock-head {
    color: #8cecff !important;
    font-size: 9px !important;
    font-weight: 900 !important;
    letter-spacing: .11em !important;
    margin: 0 0 8px !important;
    text-shadow: none !important;
  }
  #cardRealtime .world-clock-led {
    width: 6px !important;
    height: 6px !important;
    box-shadow: 0 0 7px rgba(24, 223, 255, .7) !important;
  }
  #cardRealtime .world-clock-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
    align-items: start !important;
  }
  #cardRealtime .world-clock-grid > .world-clock-time {
    min-width: 0 !important;
    padding: 2px 8px 7px !important;
    border-right: 1px solid rgba(122, 199, 229, .22) !important;
  }
  #cardRealtime .world-clock-grid > .world-clock-time:nth-child(2) {
    border-right: 0 !important;
    padding-left: 12px !important;
  }
  #cardRealtime .world-clock-grid > .world-clock-time small {
    color: #b7d6e8 !important;
    font-size: 8.5px !important;
    font-weight: 850 !important;
    line-height: 1.35 !important;
    letter-spacing: .05em !important;
  }
  #cardRealtime .world-clock-grid > .world-clock-time strong {
    color: #a0efff !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .015em !important;
    margin: 4px 0 !important;
    text-shadow: none !important;
    font-variant-numeric: tabular-nums !important;
  }
  #cardRealtime .world-clock-grid > .world-clock-time time {
    display: block !important;
    color: #f0f7ff !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  #cardRealtime .world-clock-grid > .world-clock-param {
    grid-column: 1 / -1 !important;
    margin: 3px 0 0 !important;
    padding: 8px 8px 1px !important;
    border-left: 0 !important;
    border-top: 1px solid rgba(122, 199, 229, .22) !important;
    min-width: 0 !important;
  }
  #cardRealtime .world-clock-param small { color: #b7d6e8 !important; font-size: 8.5px !important; }
  #cardRealtime .world-clock-param strong { color: #ffffff !important; font-size: 18px !important; }
  #cardRealtime .world-clock-param span { color: #d4e2f1 !important; font-size: 10px !important; line-height: 1.45 !important; }
  #cardRealtime .rt-param-revision { color: #a9e9ff !important; font-weight: 750 !important; }
  #worldClockRevision { color: #f3f7ff !important; }
  #worldClockRevision .clock-revision-detail, #worldClockRevision .clock-revision-meta {
    color: #c8d8e9 !important; font-size: 10px !important; line-height: 1.5 !important;
  }
  #worldClockRevision .clock-revision-main { color: #ffffff !important; font-size: 12px !important; font-weight: 800 !important; }

  /* A real desktop catalog button and accessible high-contrast search drawer. */
  #tbCatalog { display: inline-flex !important; align-items: center; justify-content: center; }
  .wrs-desktop-catalog-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
    background: rgba(1, 7, 15, .78) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    backdrop-filter: blur(8px) !important;
  }
  .wrs-desktop-catalog-overlay.hidden { display: none !important; }
  .wrs-desktop-catalog-panel {
    display: flex !important;
    flex-direction: column !important;
    width: min(820px, calc(100vw - 40px)) !important;
    max-height: min(88dvh, 920px) !important;
    min-height: 300px !important;
    overflow: hidden !important;
    color: #f3f7ff !important;
    background: #081625 !important;
    border: 1px solid rgba(139, 179, 217, .48) !important;
    border-radius: 20px !important;
    box-shadow: 0 30px 90px rgba(0,0,0,.55) !important;
  }
  .wrs-desktop-catalog-header {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding: 20px 22px 15px !important;
    border-bottom: 1px solid rgba(139, 179, 217, .22) !important;
    background: linear-gradient(110deg, rgba(20, 53, 79, .96), rgba(7, 22, 37, .98)) !important;
  }
  .wrs-desktop-catalog-brand { display: flex !important; align-items: center !important; gap: 13px !important; min-width: 0 !important; }
  .wrs-desktop-catalog-symbol {
    display: grid !important; place-items: center !important; flex: 0 0 44px !important; width: 44px !important; height: 44px !important;
    color: #9aeeff !important; background: rgba(43, 167, 211, .18) !important; border: 1px solid rgba(95, 210, 241, .4) !important;
    border-radius: 13px !important; font-size: 28px !important; font-weight: 700 !important;
  }
  .wrs-desktop-catalog-brand small { display: block !important; color: #97e9ff !important; font-size: 10px !important; font-weight: 900 !important; letter-spacing: .14em !important; }
  .wrs-desktop-catalog-brand h2 { margin: 4px 0 !important; color: #ffffff !important; font-size: 24px !important; line-height: 1.2 !important; letter-spacing: -.025em !important; }
  .wrs-desktop-catalog-brand p { margin: 0 !important; color: #d1deec !important; font-size: 12px !important; line-height: 1.5 !important; }
  .wrs-desktop-catalog-close {
    display: grid !important; place-items: center !important; flex: 0 0 40px !important; width: 40px !important; height: 40px !important;
    border: 1px solid rgba(139, 179, 217, .38) !important; border-radius: 12px !important; color: #f3f7ff !important;
    background: rgba(3, 11, 20, .7) !important; font-size: 26px !important; cursor: pointer !important;
  }
  .wrs-desktop-catalog-search {
    display: flex !important; align-items: center !important; gap: 10px !important; margin: 16px 22px 12px !important; padding: 0 12px !important;
    min-height: 48px !important; border: 1px solid rgba(139, 179, 217, .44) !important; border-radius: 12px !important;
    background: #0b2033 !important; color: #bfeaff !important;
  }
  .wrs-desktop-catalog-search input {
    flex: 1 1 auto !important; min-width: 0 !important; height: 46px !important; outline: none !important;
    color: #ffffff !important; caret-color: #7feaff !important; background: transparent !important; border: 0 !important;
    font-size: 14px !important;
  }
  .wrs-desktop-catalog-search input::placeholder { color: #a3b7cb !important; opacity: 1 !important; }
  .wrs-desktop-catalog-search button { color: #e8f5ff !important; background: transparent !important; border: 0 !important; font-size: 22px !important; cursor: pointer !important; }
  .wrs-desktop-catalog-filters { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; padding: 0 22px 14px !important; }
  .wrs-desktop-catalog-filters label { display: flex !important; flex-direction: column !important; gap: 5px !important; color: #c5d5e7 !important; font-size: 11px !important; font-weight: 800 !important; }
  .wrs-desktop-catalog-filters select {
    width: 100% !important; min-height: 40px !important; padding: 7px 9px !important; color: #f3f7ff !important;
    background: #10263a !important; border: 1px solid rgba(139, 179, 217, .42) !important; border-radius: 9px !important;
    font-size: 12px !important; outline-offset: 2px !important;
  }
  .wrs-desktop-catalog-status { display: grid !important; grid-template-columns: 1fr auto !important; align-items: center !important; column-gap: 12px !important; row-gap: 3px !important; padding: 12px 22px !important; border-top: 1px solid rgba(139,179,217,.18) !important; border-bottom: 1px solid rgba(139,179,217,.18) !important; background: rgba(10, 29, 46, .7) !important; }
  .wrs-desktop-catalog-status b { color: #f5f9ff !important; font-size: 13px !important; }
  .wrs-desktop-catalog-status small { color: #b8cadc !important; font-size: 10px !important; line-height: 1.4 !important; }
  .wrs-desktop-catalog-status button { grid-column: 2; grid-row: 1 / span 2; width: 38px !important; height: 38px !important; color: #bfefff !important; background: #0d2a3d !important; border: 1px solid rgba(88, 206, 239, .38) !important; border-radius: 10px !important; font-size: 24px !important; cursor: pointer !important; }
  .wrs-desktop-catalog-results { display: flex !important; flex-direction: column !important; gap: 10px !important; overflow: auto !important; overscroll-behavior: contain !important; padding: 14px 22px 18px !important; min-height: 0 !important; }
  .wrs-desktop-catalog-event { display: grid !important; grid-template-columns: 56px minmax(0, 1fr) !important; gap: 13px !important; padding: 13px !important; color: #f3f7ff !important; background: #0b1c2d !important; border: 1px solid rgba(139, 179, 217, .3) !important; border-radius: 13px !important; cursor: pointer !important; }
  .wrs-desktop-catalog-event:hover { border-color: rgba(93, 214, 245, .64) !important; background: #0e2437 !important; }
  .wrs-desktop-catalog-mag { display: flex !important; align-items: center !important; justify-content: center !important; align-self: start !important; min-height: 48px !important; border: 2px solid var(--wrs-mag-color, #60a5fa) !important; border-radius: 12px !important; color: #ffffff !important; background: color-mix(in srgb, var(--wrs-mag-color, #60a5fa) 72%, #081625) !important; font-size: 18px !important; font-weight: 950 !important; font-variant-numeric: tabular-nums !important; }
  .wrs-desktop-catalog-detail { display: flex !important; flex-direction: column !important; gap: 5px !important; min-width: 0 !important; }
  .wrs-desktop-catalog-place { color: #ffffff !important; font-size: 14px !important; font-weight: 850 !important; line-height: 1.4 !important; overflow-wrap: anywhere !important; }
  .wrs-desktop-catalog-time { color: #d2e0ee !important; font-size: 11px !important; font-weight: 650 !important; }
  .wrs-desktop-catalog-source, .wrs-desktop-catalog-distance { color: #b9cde1 !important; font-size: 11px !important; line-height: 1.45 !important; overflow-wrap: anywhere !important; }
  .wrs-desktop-catalog-distance { color: #a8e7f7 !important; }
  .wrs-desktop-catalog-revision {
    display: flex !important; flex-direction: column !important; gap: 4px !important; margin-top: 5px !important; padding: 9px 10px !important;
    color: #e4edf7 !important; border: 1px solid rgba(139,179,217,.3) !important; border-radius: 9px !important; background: rgba(77, 97, 120, .18) !important;
  }
  .wrs-desktop-catalog-revision b { color: #dce9f7 !important; font-size: 10px !important; font-weight: 900 !important; letter-spacing: .04em !important; }
  .wrs-desktop-catalog-revision span { color: #e0eaf5 !important; font-size: 11px !important; line-height: 1.45 !important; overflow-wrap: anywhere !important; }
  .wrs-desktop-catalog-revision-time { color: #bacfe2 !important; font-size: 10px !important; font-weight: 700 !important; }
  .wrs-desktop-catalog-revision.is-major { background: rgba(127, 29, 29, .32) !important; border-color: rgba(255, 92, 104, .62) !important; }
  .wrs-desktop-catalog-revision.is-major b { color: #ffb4bc !important; }
  .wrs-desktop-catalog-revision.is-updated { background: rgba(115, 78, 8, .3) !important; border-color: rgba(234, 179, 8, .48) !important; }
  .wrs-desktop-catalog-revision.is-updated b { color: #ffe18b !important; }
  .wrs-desktop-catalog-card-footer { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 10px !important; margin-top: 5px !important; color: #adbfce !important; font-size: 10px !important; }
  .wrs-desktop-catalog-open { display: inline-flex !important; align-items: center !important; justify-content: center !important; min-height: 34px !important; padding: 7px 12px !important; color: #071521 !important; background: #82e7ff !important; border: 1px solid #a8f0ff !important; border-radius: 9px !important; font-size: 11px !important; font-weight: 900 !important; cursor: pointer !important; white-space: nowrap !important; }
  .wrs-desktop-catalog-open:hover { background: #b8f3ff !important; }
  .wrs-desktop-catalog-footer { display: flex !important; justify-content: space-between !important; align-items: center !important; flex-wrap: wrap !important; gap: 10px !important; padding: 12px 22px 16px !important; border-top: 1px solid rgba(139,179,217,.2) !important; color: #aebfd0 !important; font-size: 10px !important; }
  .wrs-desktop-catalog-footer button { padding: 8px 11px !important; color: #bdeeff !important; background: transparent !important; border: 1px solid rgba(139,179,217,.38) !important; border-radius: 9px !important; font-size: 11px !important; font-weight: 800 !important; cursor: pointer !important; }
  .wrs-catalog-empty { color: #c3d3e5 !important; background: rgba(45, 66, 89, .32) !important; border: 1px dashed rgba(139,179,217,.42) !important; border-radius: 12px !important; padding: 18px !important; font-size: 12px !important; line-height: 1.6 !important; }
  .wrs-catalog-distance { color: #9de8fb !important; font-weight: 750 !important; font-size: 10px !important; line-height: 1.4 !important; }
  .wrs-catalog-revision { display: flex !important; flex-direction: column !important; gap: 4px !important; }
  .wrs-catalog-revision-time { display: block !important; color: #bed0e3 !important; font-size: 9px !important; font-weight: 750 !important; line-height: 1.4 !important; }
  .wrs-catalog-revision.is-normal { color: #a8bbcf !important; }
  .wrs-catalog-revision.is-major b { color: #ffc5ca !important; }
  .wrs-catalog-revision.is-updated b { color: #ffe39a !important; }
}

@media (max-width: 1200px) {
  #tbCatalog { display: none !important; }
  .wrs-desktop-catalog-overlay { display: none !important; }
}

/* Preserve readability when the optional light theme is selected. */
@media (min-width: 1201px) {
  html[data-wrs-theme="light"] .glass-panel {
    color: #142236 !important;
    background: rgba(248, 251, 255, .97) !important;
    border-color: rgba(88, 116, 148, .35) !important;
  }
  html[data-wrs-theme="light"] .panel-header-title,
  html[data-wrs-theme="light"] #rtDate,
  html[data-wrs-theme="light"] #rtPlace,
  html[data-wrs-theme="light"] .rp-stats b,
  html[data-wrs-theme="light"] .rp-desc,
  html[data-wrs-theme="light"] .rp-instr span,
  html[data-wrs-theme="light"] .disc b,
  html[data-wrs-theme="light"] .leg-h {
    color: #142236 !important;
  }
  html[data-wrs-theme="light"] .panel-sub,
  html[data-wrs-theme="light"] #rtFilter,
  html[data-wrs-theme="light"] #rtAgo,
  html[data-wrs-theme="light"] #rtCoord,
  html[data-wrs-theme="light"] #rtDist,
  html[data-wrs-theme="light"] #rtSrc,
  html[data-wrs-theme="light"] .rp-mode,
  html[data-wrs-theme="light"] .rp-stats small,
  html[data-wrs-theme="light"] .rp-quick-status,
  html[data-wrs-theme="light"] .rp-foot,
  html[data-wrs-theme="light"] .disc,
  html[data-wrs-theme="light"] .leg-row,
  html[data-wrs-theme="light"] .leg-lab {
    color: #344b63 !important;
  }
  html[data-wrs-theme="light"] #cardRealtime #worldClockPanel.world-clock-panel {
    background: linear-gradient(140deg, #eefaff, #f8fcff) !important;
    border-color: rgba(48, 139, 171, .45) !important;
  }
  html[data-wrs-theme="light"] #cardRealtime .world-clock-grid > .world-clock-time strong { color: #075878 !important; }
  html[data-wrs-theme="light"] #cardRealtime .world-clock-grid > .world-clock-time small,
  html[data-wrs-theme="light"] #cardRealtime .world-clock-param small { color: #315d73 !important; }
  html[data-wrs-theme="light"] #cardRealtime .world-clock-grid > .world-clock-time time { color: #142d43 !important; }
  html[data-wrs-theme="light"] #cardRealtime .world-clock-param span { color: #2b4d64 !important; }
}

/* Mobile shell can render these appended catalog styles as well, without forcing desktop layout. */
.wrs-catalog-distance { display: block; }
.wrs-catalog-revision-time { display: block; }


/* Readable date, distance and revision timestamp inside the mobile catalog too. */
.wrs-catalog-distance {
  display:block!important;
  color:#9de8fb!important;
  font-size:10px!important;
  font-weight:750!important;
  line-height:1.45!important;
  overflow-wrap:anywhere!important;
  margin-top:2px!important;
}
.wrs-catalog-revision-time {
  display:block!important;
  color:#c3d3e5!important;
  font-size:9px!important;
  font-weight:750!important;
  line-height:1.45!important;
  margin-top:2px!important;
  overflow-wrap:anywhere!important;
}
