/* Dock.css — Liquid Glass edition + Responsive */

/* ── Outer wrapper ──────────────────────────────────── */
.dock-outer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 200;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
  padding-bottom: 0.5rem;
}

@media screen and (min-width: 480px) {
  .dock-outer { padding-bottom: 0.65rem; }
}
@media screen and (min-width: 768px) {
  .dock-outer { padding-bottom: 0.85rem; }
}
@media screen and (min-width: 1000px) {
  .dock-outer { padding-bottom: 1rem; }
}

/* ── Panel ──────────────────────────────────────────── */
.dock-panel {
  pointer-events: all;
  position: relative;
  display: flex;
  align-items: flex-end;
  width: fit-content;
  max-width: calc(100vw - 1.5rem);

  /* 340px base */
  border-radius: 1.1rem;
  padding: 0.3rem 0.4rem 0.45rem;
  gap: 0.3rem;

  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(40px) saturate(2.2) brightness(1.08);
  -webkit-backdrop-filter: blur(40px) saturate(2.2) brightness(1.08);
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-bottom-color: rgba(255, 255, 255, 0.15);
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.70),
    inset 0 -1px  0 rgba(0, 0, 0, 0.06),
    0 12px 40px rgba(0, 0, 0, 0.14),
    0 2px  8px  rgba(0, 0, 0, 0.08);
}

@media screen and (min-width: 480px) {
  .dock-panel {
    border-radius: 1.25rem;
    padding: 0.35rem 0.5rem 0.55rem;
    gap: 0.4rem;
    max-width: calc(100vw - 2rem);
  }
}
@media screen and (min-width: 768px) {
  .dock-panel {
    border-radius: 1.45rem;
    padding: 0.4rem 0.6rem 0.6rem;
    gap: 0.5rem;
  }
}
@media screen and (min-width: 1000px) {
  .dock-panel {
    border-radius: 1.6rem;
    padding: 0.45rem 0.65rem 0.65rem;
    gap: 0.55rem;
  }
}

html.dark-theme .dock-panel {
  background: rgba(20, 20, 35, 0.38);
  backdrop-filter: blur(40px) saturate(2.0) brightness(0.95);
  -webkit-backdrop-filter: blur(40px) saturate(2.0) brightness(0.95);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom-color: rgba(0, 0, 0, 0.25);
  box-shadow:
    inset 0 1.5px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px  0 rgba(0, 0, 0, 0.30),
    0 12px 48px rgba(0, 0, 0, 0.55),
    0 2px  10px rgba(0, 0, 0, 0.30);
}

/* ── Items ──────────────────────────────────────────── */
.dock-item {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  flex-shrink: 0;
  text-decoration: none;

  /* 340px base */
  border-radius: 0.65rem;

  background: rgba(255, 255, 255, 0.30);
  border: 1px solid rgba(255, 255, 255, 0.60);
  border-bottom-color: rgba(255, 255, 255, 0.20);
  color: #1a1a2e;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.80),
    inset 0 -1px 0 rgba(0, 0, 0, 0.05),
    0 2px 8px rgba(0, 0, 0, 0.10);
  transition:
    background   0.22s ease,
    border-color 0.22s ease,
    box-shadow   0.22s ease,
    color        0.22s ease,
    transform    0.15s ease;
}

@media screen and (min-width: 480px) {
  .dock-item { border-radius: 0.75rem; }
}
@media screen and (min-width: 768px) {
  .dock-item { border-radius: 0.85rem; }
}
@media screen and (min-width: 1000px) {
  .dock-item { border-radius: 0.9rem; }
}

.dock-item:hover,
.dock-item:focus-visible {
  background: rgba(196, 18, 48, 0.82);
  border-color: rgba(255, 255, 255, 0.50);
  border-bottom-color: rgba(196, 18, 48, 0.40);
  color: #ffffff;
  outline: none;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.12),
    0 4px 20px rgba(196, 18, 48, 0.38),
    0 1px 4px  rgba(196, 18, 48, 0.20);
}

.dock-item.active {
  background: rgba(196, 18, 48, 0.78);
  border-color: rgba(255, 255, 255, 0.45);
  border-bottom-color: rgba(196, 18, 48, 0.35);
  color: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.50),
    inset 0 -1px 0 rgba(0, 0, 0, 0.10),
    0 4px 18px rgba(196, 18, 48, 0.32),
    0 1px 4px  rgba(196, 18, 48, 0.18);
}

html.dark-theme .dock-item {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-bottom-color: rgba(0, 0, 0, 0.20);
  color: #d8d8f0;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px 0 rgba(0, 0, 0, 0.20),
    0 2px 8px rgba(0, 0, 0, 0.30);
}

html.dark-theme .dock-item:hover,
html.dark-theme .dock-item:focus-visible {
  background: rgba(196, 18, 48, 0.75);
  border-color: rgba(255, 255, 255, 0.22);
  border-bottom-color: rgba(0, 0, 0, 0.20);
  color: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    inset 0 -1px 0 rgba(0, 0, 0, 0.20),
    0 4px 22px rgba(196, 18, 48, 0.45),
    0 1px 6px  rgba(196, 18, 48, 0.25);
}

html.dark-theme .dock-item.active {
  background: rgba(196, 18, 48, 0.70);
  border-color: rgba(255, 255, 255, 0.20);
  border-bottom-color: rgba(0, 0, 0, 0.18);
  color: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    inset 0 -1px 0 rgba(0, 0, 0, 0.18),
    0 4px 20px rgba(196, 18, 48, 0.40),
    0 1px 6px  rgba(196, 18, 48, 0.22);
}

/* ── Icon ───────────────────────────────────────────── */
.dock-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

/* 340px base */
.dock-icon .material-icons-round {
  font-size: 16px;
  line-height: 1;
  display: block;
  color: inherit;
  user-select: none;
}

@media screen and (min-width: 480px) {
  .dock-icon .material-icons-round { font-size: 18px; }
}
@media screen and (min-width: 768px) {
  .dock-icon .material-icons-round { font-size: 20px; }
}
@media screen and (min-width: 1000px) {
  .dock-icon .material-icons-round { font-size: 22px; }
}

/* No tooltips on touch devices */
@media (hover: none) {
  .dock-label { display: none; }
}

/* ── Tooltip label ──────────────────────────────────── */
.dock-label {
  position: absolute;
  top: -2.2rem;
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  width: fit-content;
  white-space: nowrap;
  border-radius: 0.5rem;
  padding: 0.18rem 0.6rem;
  font-size: 0.65rem;
  font-weight: 500;
  font-family: 'Space Grotesk', sans-serif;
  letter-spacing: 0.02em;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease, transform 0.15s ease;

  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.80);
  border-bottom-color: rgba(0, 0, 0, 0.06);
  color: #0d0d0d;
  backdrop-filter: blur(16px) saturate(1.8);
  -webkit-backdrop-filter: blur(16px) saturate(1.8);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.90),
    0 4px 14px rgba(0, 0, 0, 0.10);
}

@media screen and (min-width: 768px) {
  .dock-label {
    top: -2.4rem;
    font-size: 0.68rem;
    padding: 0.2rem 0.65rem;
  }
}
@media screen and (min-width: 1000px) {
  .dock-label {
    top: -2.5rem;
    font-size: 0.7rem;
    padding: 0.2rem 0.7rem;
  }
}

html.dark-theme .dock-label {
  background: rgba(20, 20, 36, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-bottom-color: rgba(0, 0, 0, 0.30);
  color: #ebebf5;
  backdrop-filter: blur(16px) saturate(1.8);
  -webkit-backdrop-filter: blur(16px) saturate(1.8);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 4px 14px rgba(0, 0, 0, 0.40);
}