/*
 * Big Bold Guides 8.2
 * Practical planner interaction layer.
 *
 * Presentation and interaction shell only. Storage remains schema version 2.
 */

.bbg-planner-app > .bbg-planner-topbar {
  z-index: 820;
}

.bbg-planner-app > .bbg-planner-topbar.bbg-planner-topbar--menu-open,
.bbg-planner-app > .bbg-planner-topbar:has(.bbg-planner-trip-setup[open]) {
  z-index: 980;
}

.bbg-planner-app > .bbg-planner-commandbar {
  z-index: 900;
}

.bbg-planner-app > .bbg-planner-daybar {
  z-index: 120;
}

.bbg-planner-app > .bbg-planner-workspace {
  z-index: 10;
}

.bbg-planner-has-inspector .bbg-planner-workspace {
  z-index: 1200;
}

.bbg-planner-has-inspector .bbg-planner-item {
  transform: none !important;
}

.bbg-planner-more-menu[open] {
  z-index: 950;
}

.bbg-planner-more-menu > div {
  z-index: 960;
}

.bbg-planner-history-tools {
  display: inline-flex;
  align-items: center;
  gap: .1rem;
  padding-right: .3rem;
  border-right: 1px solid rgb(30 31 34 / 12%);
}

.bbg-planner-output-tools .bbg-planner-history-tools button {
  min-width: 4.25rem;
}

.bbg-planner-output-tools .bbg-planner-history-tools button:disabled {
  cursor: not-allowed;
  opacity: .35;
}

@media (max-width: 35rem) {
  .bbg-planner-output-tools {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bbg-planner-history-tools {
    display: contents;
  }

  .bbg-planner-output-tools .bbg-planner-history-tools button {
    min-width: 0;
  }
}

/* Compact trip summary */
.bbg-planner-topbar {
  grid-template-columns: minmax(12rem, 18rem) minmax(18rem, 1fr);
  align-items: end;
}

.bbg-planner-trip-picker {
  align-self: stretch;
}

.bbg-planner-trip-picker select {
  height: 100%;
}

.bbg-planner-trip-setup {
  position: relative;
  min-width: 0;
}

.bbg-planner-trip-setup[open] {
  z-index: 990;
}

.bbg-planner-trip-setup[open] > summary {
  border-color: rgb(40 99 233 / 38%);
  box-shadow: 0 0 0 3px rgb(40 99 233 / 9%), inset 0 1px 0 #fff;
}

.bbg-planner-trip-setup > summary {
  display: flex;
  min-height: 3.5rem;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .55rem .75rem;
  border: 1px solid rgb(20 21 24 / 9%);
  border-radius: .82rem;
  background: rgb(255 255 255 / 86%);
  box-shadow: inset 0 1px 0 #fff;
  color: var(--bbg-v81-ink);
  cursor: pointer;
  list-style: none;
}

.bbg-planner-trip-setup > summary::-webkit-details-marker {
  display: none;
}

.bbg-planner-trip-setup > summary > span:first-child {
  display: grid;
  min-width: 0;
  gap: .1rem;
}

.bbg-planner-trip-setup > summary strong,
.bbg-planner-trip-setup > summary small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bbg-planner-trip-setup > summary strong {
  font-size: .84rem;
}

.bbg-planner-trip-setup > summary small {
  color: #666970;
  font-size: .65rem;
}

.bbg-planner-trip-setup__edit {
  flex: 0 0 auto;
  color: #4f5258;
  font-size: .65rem;
  font-weight: 760;
}

.bbg-planner-trip-setup__edit > span {
  display: inline-block;
  transition: transform 160ms ease;
}

.bbg-planner-trip-setup[open] .bbg-planner-trip-setup__edit > span {
  transform: rotate(180deg);
}

.bbg-planner-trip-setup__body {
  position: fixed;
  z-index: 100001;
  inset: clamp(1rem, 4vw, 3rem) clamp(1rem, 4vw, 3rem) auto auto;
  display: grid;
  width: min(48rem, calc(100vw - 2rem));
  max-width: none;
  max-height: calc(100dvh - 2rem);
  gap: .65rem;
  margin: 0;
  padding: .8rem;
  overflow: auto;
  border: 1px solid rgb(255 255 255 / 92%);
  border-radius: 1rem;
  background: var(--bbg-v81-glass-strong);
  box-shadow: 0 24px 70px rgb(20 21 24 / 17%), inset 0 1px 0 #fff;
  backdrop-filter: blur(28px) saturate(125%);
  -webkit-backdrop-filter: blur(28px) saturate(125%);
}

.bbg-planner-trip-setup__body:not([open]) {
  display: none;
}

.bbg-planner-trip-setup__body[open] {
  display: grid;
}

.bbg-planner-trip-setup__body::backdrop {
  background: rgb(20 21 24 / 18%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.bbg-planner-trip-setup__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.bbg-planner-trip-setup__actions button {
  min-height: 2.55rem;
  padding: .5rem .8rem;
  border-radius: .68rem;
  background: #17181b;
  color: #fff;
  font-size: .68rem;
  font-weight: 780;
}

.bbg-planner-trip-setup .bbg-planner-trip-fields {
  grid-template-columns: minmax(12rem, 1.3fr) minmax(10rem, .75fr) minmax(12rem, 1fr);
}

.bbg-planner-trip-setup .bbg-planner-save-status {
  justify-self: end;
}

.bbg-planner-side-heading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .55rem;
}

.bbg-planner-side-heading__icon {
  display: inline-grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  place-items: center;
  border-radius: .62rem;
  background: var(--bbg-v81-blue-soft);
  color: #2457b8;
}

.bbg-planner-side-heading__icon--ideas {
  background: var(--bbg-v81-yellow-soft);
  color: #6b5200;
  box-shadow: 0 0 0 1px rgb(255 200 0 / 20%), 0 6px 18px rgb(255 200 0 / 17%);
}

.bbg-planner-side-heading__icon svg {
  width: 1.1rem;
  height: 1.1rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

/* One add control */
.bbg-planner-palette {
  z-index: 300;
}

.bbg-planner-palette > p {
  margin: 0;
  color: #5c5f66;
  font-size: .65rem;
  font-weight: 760;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.bbg-planner-add-menu {
  position: relative;
}

.bbg-planner-add-menu > summary {
  display: inline-flex;
  min-height: 2.7rem;
  align-items: center;
  gap: .4rem;
  padding: .45rem .85rem;
  border: 1px solid #15161a;
  border-radius: .78rem;
  background: #15161a;
  color: #fff;
  box-shadow: 0 7px 20px rgb(20 21 24 / 14%);
  cursor: pointer;
  font-size: .7rem;
  font-weight: 780;
  list-style: none;
}

.bbg-planner-add-menu > summary::-webkit-details-marker {
  display: none;
}

.bbg-planner-add-menu[open] {
  z-index: 700;
}

.bbg-planner-add-menu[open] > summary {
  background: #303136;
}

.bbg-planner-add-menu__surface {
  position: absolute;
  z-index: 710;
  top: calc(100% + .45rem);
  right: 0;
  display: grid;
  width: min(50rem, calc(100vw - 1.5rem));
  max-height: min(36rem, 76vh);
  grid-template-columns: 1.35fr .65fr 1.2fr;
  gap: .8rem;
  overflow: auto;
  padding: .85rem;
  border: 1px solid rgb(255 255 255 / 94%);
  border-radius: 1.1rem;
  background: var(--bbg-v81-glass-strong);
  box-shadow: 0 26px 80px rgb(20 21 24 / 19%), inset 0 1px 0 #fff;
  backdrop-filter: blur(30px) saturate(125%);
  -webkit-backdrop-filter: blur(30px) saturate(125%);
}

.bbg-planner-add-menu__surface > header {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .15rem .15rem .65rem;
  border-bottom: 1px solid var(--bbg-v81-line);
}

.bbg-planner-add-menu__surface h3,
.bbg-planner-add-menu__surface h4,
.bbg-planner-add-menu__surface p {
  margin: 0;
}

.bbg-planner-add-menu__surface h3 {
  font-family: var(--bbg-final-serif, Georgia, serif);
  font-size: 1.35rem;
  letter-spacing: -.03em;
}

.bbg-planner-add-menu__surface header p {
  margin-top: .25rem;
  color: #64676e;
  font-size: .68rem;
}

.bbg-planner-add-menu__surface > header > button {
  width: auto;
  min-height: 2.55rem;
  padding: .4rem .7rem;
  border: 1px solid #17181b;
  border-radius: .68rem;
  background: #17181b;
  color: #fff;
  font-size: .65rem;
  font-weight: 780;
}

.bbg-planner-add-menu__surface section {
  min-width: 0;
}

.bbg-planner-add-menu__surface h4 {
  margin-bottom: .4rem;
  color: #63666d;
  font-size: .6rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.bbg-planner-add-menu .bbg-planner-palette-buttons,
.bbg-planner-add-menu .bbg-planner-reminder-presets {
  position: static;
  display: grid;
  width: auto;
  max-height: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .3rem;
  overflow: visible;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.bbg-planner-add-menu .bbg-planner-palette-buttons button,
.bbg-planner-add-menu .bbg-planner-reminder-presets button,
.bbg-planner-add-menu .bbg-planner-add-transport {
  display: flex;
  width: 100%;
  min-height: 2.65rem;
  align-items: center;
  justify-content: flex-start;
  padding: .45rem .6rem;
  border: 1px solid transparent;
  border-radius: .66rem;
  background: var(--bbg-v81-canvas);
  color: #303238;
  font-size: .65rem;
  font-weight: 700;
  text-align: left;
}

.bbg-planner-add-menu .bbg-planner-palette-buttons button:hover,
.bbg-planner-add-menu .bbg-planner-reminder-presets button:hover {
  border-color: var(--bbg-v81-line-strong);
  background: #fff;
}

.bbg-planner-add-menu .bbg-planner-add-transport {
  min-height: 3.2rem;
  background: var(--bbg-v81-blue-soft);
  color: #234d9e;
}

/* Remove repeated day language */
.bbg-planner-day-heading .bbg-kicker {
  display: none;
}

.bbg-planner-day-header {
  grid-template-columns: minmax(12rem, 1fr) minmax(19rem, .85fr);
}

.bbg-planner-timeline-heading h2 {
  letter-spacing: -.035em;
}

/* One conflict explanation, with affected times still marked */
.bbg-planner-card__conflict {
  display: none;
}

.bbg-planner-item.has-time-conflict {
  border-color: rgb(217 45 32 / 38%);
  box-shadow: var(--bbg-v81-shadow-row), inset .18rem 0 0 var(--bbg-v81-coral);
}

.bbg-planner-item.has-time-conflict::after {
  display: none;
}

/* Hide manipulation controls until the traveler asks for them */
.bbg-planner-drag-handle {
  opacity: 0;
}

.bbg-planner-item:hover .bbg-planner-drag-handle,
.bbg-planner-drag-handle:focus-visible,
.bbg-planner-drag-handle[aria-pressed="true"] {
  opacity: 1;
}

/* Desktop inspector and mobile bottom sheet */
body.bbg-planner-inspector-open {
  overflow: hidden;
}

[data-bbg-live-region] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.bbg-planner-card__drawer:not([open]) > .bbg-planner-card__drawer-body {
  display: none;
}

.bbg-planner-card__drawer[open] > .bbg-planner-card__drawer-body {
  display: block;
}

.bbg-planner-card__drawer[open]::before {
  display: none;
}

.bbg-planner-card__drawer-body::backdrop {
  background: rgb(20 21 24 / 26%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.bbg-planner-card__drawer-body {
  position: fixed;
  z-index: 100001;
  inset: 0 0 0 auto;
  width: min(31rem, calc(100vw - 1rem));
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0 1rem max(1.25rem, env(safe-area-inset-bottom));
  overflow: auto;
  border: 0;
  border-left: 1px solid rgb(255 255 255 / 92%);
  background: var(--bbg-v81-glass-strong);
  box-shadow: -24px 0 70px rgb(20 21 24 / 18%), inset 1px 0 0 #fff;
  backdrop-filter: blur(30px) saturate(125%);
  -webkit-backdrop-filter: blur(30px) saturate(125%);
  overscroll-behavior: contain;
}

.bbg-planner-inspector__header {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-inline: -1rem;
  padding: max(.9rem, env(safe-area-inset-top)) 1rem .85rem;
  border-bottom: 1px solid var(--bbg-v81-line);
  background: rgb(255 255 255 / 92%);
  backdrop-filter: blur(24px) saturate(120%);
  -webkit-backdrop-filter: blur(24px) saturate(120%);
}

.bbg-planner-inspector__header > div {
  display: grid;
  min-width: 0;
  gap: .1rem;
}

.bbg-planner-inspector__header span {
  color: #6a6d73;
  font-size: .58rem;
  font-weight: 760;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.bbg-trip-planner .bbg-planner-inspector__title {
  overflow: hidden;
  min-height: 1.6rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--bbg-v81-ink);
  font-size: .9rem;
  font-weight: 760;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bbg-trip-planner .bbg-planner-inspector__title:focus {
  border: 0;
  box-shadow: 0 2px 0 var(--bbg-v81-blue);
  outline: 0;
}

.bbg-planner-inspector__close {
  width: auto;
  min-height: 2.65rem;
  padding: .45rem .75rem;
  border: 1px solid #17181b;
  border-radius: .7rem;
  background: #17181b;
  color: #fff;
  font-size: .68rem;
  font-weight: 780;
}

.bbg-planner-card__drawer-body > .bbg-planner-card__quick-fields {
  margin-top: 1rem;
}

.bbg-planner-card__drawer-body .bbg-planner-card__quick-fields,
.bbg-planner-card__drawer-body .bbg-planner-card__details-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}

.bbg-planner-card__drawer-body .bbg-planner-card__details {
  margin-top: .9rem;
}

.bbg-planner-card__drawer-body .bbg-planner-card__actions {
  margin-top: 1rem;
  padding-top: .75rem;
}

.bbg-planner-card__drawer-body .bbg-planner-card__actions button {
  min-height: 2.7rem;
}

/* Empty utility boxes should remain available without dominating the page */
.bbg-planner-checklist:has(ul:empty),
.bbg-planner-idea-dock:has(ul:empty) {
  min-height: 0;
  padding-bottom: .75rem;
}

.bbg-planner-checklist:has(ul:empty) > p,
.bbg-planner-idea-dock:has(ul:empty) > p {
  margin-bottom: 0;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .bbg-planner-trip-setup__body,
  .bbg-planner-add-menu__surface,
  .bbg-planner-card__drawer-body,
  .bbg-planner-inspector__header {
    background: #fff;
  }
}

@media (max-width: 68rem) {
  .bbg-planner-add-menu__surface {
    grid-template-columns: 1.2fr .65fr 1fr;
  }
}

@media (max-width: 48rem) {
  .bbg-planner-topbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .bbg-planner-trip-picker select {
    height: auto;
  }

  .bbg-planner-trip-setup__body {
    inset: auto 0 0;
    width: 100%;
    max-height: min(84vh, 84dvh);
    padding: .9rem max(.9rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(.9rem, env(safe-area-inset-left));
    border-radius: 1.15rem 1.15rem 0 0;
  }

  .bbg-planner-trip-setup .bbg-planner-trip-fields {
    grid-template-columns: 1fr 1fr;
  }

  .bbg-planner-trip-setup .bbg-planner-trip-fields label:last-child {
    grid-column: 1 / -1;
  }

  .bbg-planner-add-menu__surface {
    position: fixed;
    z-index: 100001;
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: min(84vh, 84dvh);
    grid-template-columns: 1fr;
    padding: .85rem max(.85rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(.85rem, env(safe-area-inset-left));
    border-radius: 1.15rem 1.15rem 0 0;
  }

  .bbg-planner-add-menu[open]::before {
    position: fixed;
    z-index: 100000;
    inset: 0;
    background: rgb(20 21 24 / 28%);
    content: "";
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .bbg-planner-add-menu__surface > header {
    position: sticky;
    z-index: 1;
    top: -.85rem;
    padding-top: .85rem;
    background: rgb(255 255 255 / 94%);
  }

  .bbg-planner-add-menu .bbg-planner-palette-buttons,
  .bbg-planner-add-menu .bbg-planner-reminder-presets {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bbg-planner-day-heading .bbg-kicker {
    display: none;
  }

  .bbg-planner-card__drawer-body {
    inset: auto 0 0;
    width: 100%;
    height: auto;
    max-height: min(88vh, 88dvh);
    border: 0;
    border-top: 1px solid rgb(255 255 255 / 92%);
    border-radius: 1.15rem 1.15rem 0 0;
    box-shadow: 0 -24px 70px rgb(20 21 24 / 18%), inset 0 1px 0 #fff;
  }

  .bbg-planner-inspector__header {
    border-radius: 1.15rem 1.15rem 0 0;
  }

  .bbg-planner-drag-handle {
    opacity: .35;
  }
}

@media (max-width: 35rem) {
  .bbg-planner-trip-setup__body {
    right: 0;
    width: 100%;
  }

  .bbg-planner-trip-setup .bbg-planner-trip-fields {
    grid-template-columns: 1fr;
  }

  .bbg-planner-trip-setup .bbg-planner-trip-fields label:last-child {
    grid-column: auto;
  }

  .bbg-planner-day-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .bbg-planner-day-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bbg-planner-day-meta label:last-child {
    grid-column: 1 / -1;
  }

  .bbg-planner-palette {
    align-items: center;
    flex-direction: row;
  }

  .bbg-planner-add-menu {
    margin-left: auto;
  }

  .bbg-planner-add-menu > summary {
    min-height: 2.65rem;
    padding-inline: .7rem;
  }

  .bbg-planner-card__drawer-body .bbg-planner-card__quick-fields,
  .bbg-planner-card__drawer-body .bbg-planner-card__details-grid {
    grid-template-columns: 1fr;
  }

  .bbg-planner-card__drawer-body .bbg-planner-card__details-grid label:last-child {
    grid-column: auto;
  }
}

@media (forced-colors: active) {
  .bbg-planner-card__drawer-body,
  .bbg-planner-trip-setup__body,
  .bbg-planner-add-menu__surface {
    border: 2px solid CanvasText;
    box-shadow: none;
  }
}

@media (max-width: 22rem) {
  .bbg-planner-day-meta {
    grid-template-columns: minmax(0, 1fr);
  }

  .bbg-planner-day-meta label:last-child {
    grid-column: auto;
  }
}

.bbg-planner-idea-dock .bbg-planner-card {
  padding: .35rem;
}

.bbg-planner-idea-dock .bbg-planner-card__header {
  min-height: 2.7rem;
  grid-template-columns: minmax(0, 1fr) 1.65rem;
  grid-template-areas: "heading handle";
  gap: .35rem;
  padding: .25rem 2.35rem .25rem .4rem;
}

.bbg-planner-idea-dock .bbg-planner-card__icon,
.bbg-planner-idea-dock .bbg-planner-card__time {
  display: none;
}

.bbg-planner-idea-dock .bbg-planner-card__heading {
  grid-area: heading;
  min-width: 0;
}

.bbg-trip-planner .bbg-planner-idea-dock .bbg-planner-card__heading input {
  width: 100%;
  min-width: 0;
  padding-inline: .55rem;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bbg-planner-idea-dock .bbg-planner-drag-handle {
  grid-area: handle;
  width: 1.65rem;
  min-width: 1.65rem;
  opacity: .4;
}

/* Borderless planner language. Spacing, tone and depth create hierarchy. */
.bbg-trip-planner button,
.bbg-trip-planner input:not([type="checkbox"]):not([type="radio"]),
.bbg-trip-planner select,
.bbg-trip-planner textarea,
.bbg-planner-app,
.bbg-planner-topbar,
.bbg-planner-commandbar,
.bbg-planner-daybar,
.bbg-planner-day-panel,
.bbg-planner-checklist,
.bbg-planner-idea-dock,
.bbg-planner-checklist li,
.bbg-planner-trip-setup > summary,
.bbg-planner-trip-setup__body,
.bbg-planner-add-menu__surface,
.bbg-planner-more-menu > div,
.bbg-planner-card__drawer-body,
.bbg-planner-modal__surface {
  border: 0;
}

.bbg-trip-planner input:not([type="checkbox"]):not([type="radio"]),
.bbg-trip-planner select,
.bbg-trip-planner textarea {
  background-color: rgb(247 247 245 / 86%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 82%);
}

.bbg-planner-item:not(.has-time-conflict),
.bbg-planner-checklist li {
  border: 0 !important;
}

.bbg-planner-trip-setup[open] > summary {
  border: 0;
  box-shadow: 0 8px 24px rgb(40 99 233 / 10%), inset 0 1px 0 #fff;
}

.bbg-trip-planner .bbg-planner-day-conflict,
.bbg-trip-planner .bbg-planner-item.has-time-conflict {
  border: 1px solid var(--bbg-planner-v8-conflict);
}

.bbg-trip-planner .bbg-planner-day-conflict button {
  border: 1px solid var(--bbg-planner-v8-conflict);
}

@media print {
  .bbg-planner-card__drawer[open]::before,
  .bbg-planner-card__drawer-body,
  .bbg-planner-add-menu__surface,
  .bbg-planner-trip-setup__body {
    display: none !important;
  }
}
