/* =========================
   DM Travel Widget — Apple Glass + Palette
   ========================= */

:root {
  /* 🎨 Palette (navy → teal → mint) */
  --navy-900: #0a0754; /* very dark navy */
  --navy-800: #0b1e72;
  --navy-700: #0a3a84;
  --blue-600: #07679d;
  --teal-500: #00a7b3; /* primary accent */
  --teal-400: #0fb3be;
  --teal-300: #31c2c3;
  --mint-300: #69d9b3;
  --mint-200: #8fe2b9;
  --mint-150: #a9eabf;
  --mint-100: #c9f2d0;

  --accent: var(--teal-500);
  --ink: var(--navy-900);
  --muted: #2f3c4d;

  /* 🍎 Apple Glass */
  --glass-bg: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.58),
    rgba(255, 255, 255, 0.62)
  );
  --glass-brd: rgba(255, 255, 255, 0.9);
  --glass-shadow: 0 20px 45px rgba(3, 8, 24, 0.22),
    0 2px 8px rgba(3, 8, 24, 0.08);
  --glass-tint: radial-gradient(
    1200px 200px at 30% -20%,
    rgba(0, 167, 179, 0.12),
    transparent 60%
  );

  /* Solid fallback */
  --solid-bg: #f3f7fa;
  --solid-panel: #ffffff;
  --solid-bd: rgba(0, 0, 0, 0.08);
}

* {
  box-sizing: border-box;
}

html {
  background: transparent !important;
}
body {
  font-family: system-ui, -apple-system, Open Sans, Roboto, Arial, sans-serif;
  background: transparent !important;
  margin: 0;
  padding: 16px;
  color: var(--ink);
}

/* Container */
.dm-wrap {
  max-width: 980px;
  margin: 0 auto;
  padding: 16px;
  border-radius: 20px;
  background: var(--glass-bg);
  border: 1px solid var(--glass-brd);
  box-shadow: var(--glass-shadow);
  backdrop-filter: saturate(180%) blur(18px);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  position: relative;
  overflow: hidden;
}
.dm-wrap::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--glass-tint);
  pointer-events: none;
}

/* Tabs */
.dm-tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 14px;
}
.dm-tab {
  appearance: none;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.22),
    rgba(255, 255, 255, 0.08)
  );
  color: var(--ink);
  padding: 10px 18px;
  border-radius: 14px;
  cursor: pointer;
  font-weight: 700;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset,
    0 6px 16px rgba(16, 24, 40, 0.12);
  transition: transform 0.12s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.dm-tab:hover {
  transform: translateY(-1px);
}
.dm-tab.active {
  background: linear-gradient(180deg, var(--teal-400), var(--teal-500));
  color: white;
  border-color: rgba(255, 255, 255, 0.6);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 10px 24px rgba(0, 167, 179, 0.35), 0 0 0 4px rgba(0, 167, 179, 0.12);
}

/* Form grid */
.dm-form {
  display: grid;
  gap: 16px;
}
.dm-grid {
  display: grid;
  gap: 14px;
}
.dm-grid-2 {
  grid-template-columns: 1fr 1fr;
}
.dm-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.dm-field > label {
  font-size: 0.95rem;
  color: var(--muted);
}
.dm-label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Link (high contrast) */
.dm-link {
  color: #f5a400;
  text-decoration: none;
  font-size: 0.9rem;
}
.dm-link:hover {
  text-decoration: underline;
}

/* Inputs & selects */
input[type="text"],
select {
  height: 46px;
  padding: 0 14px;
  font-size: 16px;
  color: var(--ink);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.1),
    rgba(255, 255, 255, 0.06)
  );
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 12px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 4px 12px rgba(16, 24, 40, 0.12);
}
input::placeholder {
  color: #8ea4b5;
}
input:focus,
select:focus {
  outline: none;
  border-color: rgba(0, 167, 179, 0.6);
  box-shadow: 0 0 0 2px rgba(0, 167, 179, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.26);
}

/* Inline group */
.dm-inline {
  display: flex;
  gap: 10px;
  align-items: center;
}

/* Button */
.dm-submit {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, var(--teal-400), var(--teal-500));
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: 12px 18px;
  font-weight: 800;
  letter-spacing: 0.2px;
  cursor: pointer;
  box-shadow: 0 8px 26px rgba(0, 167, 179, 0.35);
  width: auto;
  justify-self: end;
}
.dm-submit:hover {
  box-shadow: 0 10px 32px rgba(0, 167, 179, 0.46);
  filter: saturate(1.05);
}
.dm-submit:active {
  transform: scale(0.995);
}

/* Helpers */
.dm-hidden {
  display: none;
}
.dm-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--accent);
  font-weight: 600;
}

/* Autocomplete */
.dm-autocomplete {
  position: relative;
}
.dm-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  font-size: 18px;
  line-height: 1;
  color: #94a3b8;
  cursor: pointer;
  display: none;
}
.dm-autocomplete.has-value .dm-clear {
  display: block;
}
.dm-ac-list {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 9999;
  background: rgba(255, 255, 255, 0.98) !important;
  border: 1px solid var(--glass-brd);
  border-radius: 12px;
  margin-top: 6px;
  max-height: 220px;
  overflow: auto;
  padding: 6px 0;
  display: none;
  box-shadow: var(--glass-shadow);
}
.dm-ac-list.show {
  display: block;
}
.dm-ac-item {
  padding: 10px;
  display: flex;
  justify-content: space-between;
  gap: 2px;
  cursor: pointer;
}
.dm-ac-item[aria-selected="true"] {
  background: rgba(0, 167, 179, 0.1);
}
.dm-ac-item small {
  color: #2f3b4b;
  font-size: 0.85em;
}
.dm-type {
  font-size: 0.55rem;
  padding: 2px 6px;
  color: #17869a;
}

/* Responsive */
@media (max-width: 760px) {
  .dm-grid-2 {
    grid-template-columns: 1fr;
  }
  .dm-submit {
    width: 100%;
    justify-self: stretch;
  }
}
