/* NPN Panel Dock v1 */

.npn-panel-dock {
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translate(-50%, 120%);
  width: min(760px, calc(100vw - 28px));
  max-height: 34vh;
  z-index: 31000;

  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  background: rgba(7, 15, 25, .94);
  box-shadow: 0 18px 46px rgba(0,0,0,.45);
  color: rgba(255,255,255,.94);
  padding: 10px;

  opacity: 0;
  pointer-events: none;
  transition: transform .18s ease, opacity .18s ease;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.npn-panel-dock.npn-panel-dock-visible {
  transform: translate(-50%, 0);
  opacity: 1;
  pointer-events: auto;
}

.npn-panel-dock-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 30px;
  padding: 0 2px 8px;
  border-bottom: 1px solid rgba(255,255,255,.12);
  margin-bottom: 8px;
}

.npn-panel-dock-head span {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
}

.npn-panel-dock-head button {
  height: 28px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.9);
  padding: 0 10px;
  font-size: 11px;
  font-weight: 850;
  cursor: pointer;
}

.npn-panel-dock-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-height: calc(34vh - 58px);
  overflow: auto;
  padding: 1px;
}

.npn-panel-dock-chip {
  flex: 0 1 auto;
  min-width: 180px;
  max-width: 245px;
  height: 38px;

  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;

  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  background: rgba(255,255,255,.09);
  color: rgba(255,255,255,.94);
  padding: 0 10px;
  cursor: pointer;
}

.npn-panel-dock-chip:hover {
  background: rgba(255,255,255,.16);
}

.npn-panel-dock-icon {
  flex: 0 0 auto;
  color: rgba(255, 198, 87, .95);
  font-size: 13px;
}

.npn-panel-dock-label {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 850;
  text-align: left;
}

.npn-panel-dock-action {
  flex: 0 0 auto;
  color: rgba(255,255,255,.58);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

@media (max-width: 760px) {
  .npn-panel-dock {
    bottom: 10px;
    width: calc(100vw - 14px);
    max-height: 42vh;
    border-radius: 16px;
  }

  .npn-panel-dock-list {
    display: grid;
    grid-template-columns: 1fr;
    max-height: calc(42vh - 58px);
  }

  .npn-panel-dock-chip {
    width: 100%;
    max-width: none;
  }
}

/* NPN HOME SPACEWX DOCK COMPAT */
.npn-panel-dock,
.npn-minimized-panel-dock,
.npn-minimize-dock,
#npn-panel-dock,
#npn-minimized-panel-dock,
#npn-minimize-dock,
#npn-ts-panel-dock {
  z-index: 2147481500 !important;
}

/* NPN HOME SPACEWX V3 DOCK CARD COMPAT */
.npn-panel-dock,
.npn-minimized-panel-dock,
.npn-minimize-dock,
#npn-panel-dock,
#npn-minimized-panel-dock,
#npn-minimize-dock,
#npn-ts-panel-dock,
[data-npn-panel-dock],
[data-panel-dock] {
  z-index: 2147483000 !important;
}

#npn-home-spacewx-dock-chip.npn-home-spacewx-dock-chip {
  box-sizing: border-box !important;
}

/* NPN TARGETED COMPACT PANEL DOCK v4 BEGIN */

/*
  Compact version of the real minimized panel dock.
  Scope is intentionally limited to #npn-panel-dock / .npn-panel-dock.
*/

#npn-panel-dock.npn-panel-dock,
.npn-panel-dock {
  width: min(520px, calc(100vw - 18px)) !important;
  max-height: 118px !important;
  bottom: 12px !important;
  padding: 6px !important;
  border-radius: 13px !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.38) !important;
}

#npn-panel-dock .npn-panel-dock-head,
.npn-panel-dock .npn-panel-dock-head {
  min-height: 20px !important;
  gap: 6px !important;
  padding: 0 1px 4px !important;
  margin-bottom: 5px !important;
}

#npn-panel-dock .npn-panel-dock-head span,
.npn-panel-dock .npn-panel-dock-head span {
  font-size: 8px !important;
  letter-spacing: .07em !important;
  line-height: 1 !important;
}

#npn-panel-dock .npn-panel-dock-head button,
.npn-panel-dock .npn-panel-dock-head button {
  height: 20px !important;
  min-height: 20px !important;
  padding: 0 7px !important;
  font-size: 8px !important;
  line-height: 1 !important;
  border-radius: 999px !important;
}

#npn-panel-dock .npn-panel-dock-list,
.npn-panel-dock .npn-panel-dock-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px !important;
  max-height: 84px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding: 0 !important;
}

#npn-panel-dock .npn-panel-dock-chip,
.npn-panel-dock .npn-panel-dock-chip {
  min-width: 118px !important;
  max-width: 168px !important;
  height: 25px !important;
  min-height: 25px !important;
  padding: 0 6px !important;
  gap: 4px !important;
  border-radius: 9px !important;
}

#npn-panel-dock .npn-panel-dock-icon,
.npn-panel-dock .npn-panel-dock-icon {
  font-size: 9px !important;
}

#npn-panel-dock .npn-panel-dock-label,
.npn-panel-dock .npn-panel-dock-label {
  font-size: 9px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}

#npn-panel-dock .npn-panel-dock-action,
.npn-panel-dock .npn-panel-dock-action {
  display: none !important;
}

/* Mobile/tablet: make it a short horizontal chip rail above the bottom nav. */
@media (max-width: 760px) {
  #npn-panel-dock.npn-panel-dock,
  .npn-panel-dock {
    width: calc(100vw - 14px) !important;
    max-height: 64px !important;
    bottom: calc(58px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 5px !important;
    border-radius: 12px !important;
  }

  #npn-panel-dock .npn-panel-dock-head,
  .npn-panel-dock .npn-panel-dock-head {
    min-height: 17px !important;
    padding: 0 1px 3px !important;
    margin-bottom: 3px !important;
  }

  #npn-panel-dock .npn-panel-dock-head span,
  .npn-panel-dock .npn-panel-dock-head span {
    font-size: 7px !important;
  }

  #npn-panel-dock .npn-panel-dock-head button,
  .npn-panel-dock .npn-panel-dock-head button {
    height: 17px !important;
    min-height: 17px !important;
    padding: 0 6px !important;
    font-size: 7px !important;
  }

  #npn-panel-dock .npn-panel-dock-list,
  .npn-panel-dock .npn-panel-dock-list {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 3px !important;
    max-height: 30px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
  }

  #npn-panel-dock .npn-panel-dock-list::-webkit-scrollbar,
  .npn-panel-dock .npn-panel-dock-list::-webkit-scrollbar {
    display: none !important;
  }

  #npn-panel-dock .npn-panel-dock-chip,
  .npn-panel-dock .npn-panel-dock-chip {
    flex: 0 0 auto !important;
    width: 100px !important;
    min-width: 100px !important;
    max-width: 100px !important;
    height: 22px !important;
    min-height: 22px !important;
    padding: 0 5px !important;
    gap: 3px !important;
    border-radius: 8px !important;
  }

  #npn-panel-dock .npn-panel-dock-icon,
  .npn-panel-dock .npn-panel-dock-icon {
    font-size: 8px !important;
  }

  #npn-panel-dock .npn-panel-dock-label,
  .npn-panel-dock .npn-panel-dock-label {
    font-size: 7.5px !important;
  }
}

/* Very small phones */
@media (max-width: 420px) {
  #npn-panel-dock.npn-panel-dock,
  .npn-panel-dock {
    max-height: 56px !important;
    bottom: calc(52px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 4px !important;
  }

  #npn-panel-dock .npn-panel-dock-head,
  .npn-panel-dock .npn-panel-dock-head {
    min-height: 15px !important;
    margin-bottom: 2px !important;
  }

  #npn-panel-dock .npn-panel-dock-chip,
  .npn-panel-dock .npn-panel-dock-chip {
    width: 88px !important;
    min-width: 88px !important;
    max-width: 88px !important;
    height: 20px !important;
    min-height: 20px !important;
  }

  #npn-panel-dock .npn-panel-dock-label,
  .npn-panel-dock .npn-panel-dock-label {
    font-size: 7px !important;
  }
}

/* NPN TARGETED COMPACT PANEL DOCK v4 END */

/* NPN PANEL DOCK TIGHT FIX v5 BEGIN */

/*
  Tight final pass for the real minimized panel dock.
  Keeps the dock in its native system, but makes it much smaller.
  Also normalizes odd external dock chips such as home-spacewx.
*/

#npn-panel-dock.npn-panel-dock,
.npn-panel-dock {
  width: min(455px, calc(100vw - 18px)) !important;
  max-height: 78px !important;
  bottom: 8px !important;
  padding: 5px !important;
  border-radius: 12px !important;
}

/* Collapse header height instead of letting it dominate the dock */
#npn-panel-dock .npn-panel-dock-head,
.npn-panel-dock .npn-panel-dock-head {
  min-height: 15px !important;
  height: 15px !important;
  padding: 0 1px 3px !important;
  margin-bottom: 3px !important;
  gap: 5px !important;
}

#npn-panel-dock .npn-panel-dock-head span,
.npn-panel-dock .npn-panel-dock-head span {
  font-size: 7px !important;
  letter-spacing: .06em !important;
  line-height: 1 !important;
}

#npn-panel-dock .npn-panel-dock-head button,
.npn-panel-dock .npn-panel-dock-head button,
#npn-panel-dock-restore-all {
  height: 15px !important;
  min-height: 15px !important;
  max-height: 15px !important;
  padding: 0 5px !important;
  font-size: 7px !important;
  line-height: 1 !important;
  border-radius: 999px !important;
}

/* Chip rail */
#npn-panel-dock .npn-panel-dock-list,
.npn-panel-dock .npn-panel-dock-list {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 3px !important;
  max-height: 52px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  padding: 0 !important;
}

/* Real chips */
#npn-panel-dock .npn-panel-dock-chip,
.npn-panel-dock .npn-panel-dock-chip {
  flex: 0 0 auto !important;
  width: 132px !important;
  min-width: 132px !important;
  max-width: 132px !important;
  height: 21px !important;
  min-height: 21px !important;
  max-height: 21px !important;
  padding: 0 5px !important;
  margin: 0 !important;
  gap: 3px !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

#npn-panel-dock .npn-panel-dock-icon,
.npn-panel-dock .npn-panel-dock-icon {
  font-size: 8px !important;
  width: 9px !important;
  min-width: 9px !important;
  max-width: 9px !important;
  line-height: 1 !important;
}

#npn-panel-dock .npn-panel-dock-label,
.npn-panel-dock .npn-panel-dock-label {
  font-size: 8px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  max-height: 10px !important;
}

/* This is what caused the giant S.. RESTORE look. Hide action text entirely. */
#npn-panel-dock .npn-panel-dock-action,
.npn-panel-dock .npn-panel-dock-action,
#npn-panel-dock [class*="restore"],
.npn-panel-dock [class*="restore"],
#npn-panel-dock [class*="Restore"],
.npn-panel-dock [class*="Restore"] {
  display: none !important;
}

/* But keep the restore-all button visible */
#npn-panel-dock #npn-panel-dock-restore-all,
.npn-panel-dock #npn-panel-dock-restore-all {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Normalize the Space Weather minimized chip if it gets inserted into/near the dock */
#npn-home-spacewx-dock-chip,
#npn-home-spacewx-dock-chip.npn-home-spacewx-dock-chip,
.npn-home-spacewx-dock-chip {
  width: 132px !important;
  min-width: 132px !important;
  max-width: 132px !important;
  height: 21px !important;
  min-height: 21px !important;
  max-height: 21px !important;
  padding: 0 5px !important;
  margin: 0 !important;
  gap: 3px !important;
  border-radius: 8px !important;
  font-size: 8px !important;
  line-height: 1 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

#npn-home-spacewx-dock-chip *,
.npn-home-spacewx-dock-chip * {
  font-size: 8px !important;
  line-height: 1 !important;
  max-height: 10px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Hide redundant restore text in the SpaceWX chip too */
#npn-home-spacewx-dock-chip [class*="restore"],
#npn-home-spacewx-dock-chip [class*="Restore"],
.npn-home-spacewx-dock-chip [class*="restore"],
.npn-home-spacewx-dock-chip [class*="Restore"] {
  display: none !important;
}

/* Mobile/tablet: one-row dock above bottom nav */
@media (max-width: 760px) {
  #npn-panel-dock.npn-panel-dock,
  .npn-panel-dock {
    width: calc(100vw - 14px) !important;
    max-height: 44px !important;
    bottom: calc(50px + env(safe-area-inset-bottom, 0px)) !important;
    padding: 4px !important;
  }

  #npn-panel-dock .npn-panel-dock-head,
  .npn-panel-dock .npn-panel-dock-head {
    min-height: 13px !important;
    height: 13px !important;
    padding: 0 1px 2px !important;
    margin-bottom: 2px !important;
  }

  #npn-panel-dock .npn-panel-dock-head span,
  .npn-panel-dock .npn-panel-dock-head span {
    font-size: 6.5px !important;
  }

  #npn-panel-dock .npn-panel-dock-head button,
  .npn-panel-dock .npn-panel-dock-head button,
  #npn-panel-dock-restore-all {
    height: 13px !important;
    min-height: 13px !important;
    max-height: 13px !important;
    padding: 0 4px !important;
    font-size: 6.5px !important;
  }

  #npn-panel-dock .npn-panel-dock-list,
  .npn-panel-dock .npn-panel-dock-list {
    flex-wrap: nowrap !important;
    max-height: 22px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
  }

  #npn-panel-dock .npn-panel-dock-list::-webkit-scrollbar,
  .npn-panel-dock .npn-panel-dock-list::-webkit-scrollbar {
    display: none !important;
  }

  #npn-panel-dock .npn-panel-dock-chip,
  .npn-panel-dock .npn-panel-dock-chip,
  #npn-home-spacewx-dock-chip,
  .npn-home-spacewx-dock-chip {
    width: 98px !important;
    min-width: 98px !important;
    max-width: 98px !important;
    height: 19px !important;
    min-height: 19px !important;
    max-height: 19px !important;
    padding: 0 4px !important;
  }

  #npn-panel-dock .npn-panel-dock-label,
  .npn-panel-dock .npn-panel-dock-label,
  #npn-home-spacewx-dock-chip *,
  .npn-home-spacewx-dock-chip * {
    font-size: 7px !important;
  }
}

/* NPN PANEL DOCK TIGHT FIX v5 END */
