body[data-public-mode="pending"] > :not(.public-runtime-status):not(script),
body[data-public-mode="error"] > :not(.public-runtime-status):not(script) {
  display: none !important;
}

[hidden] {
  display: none !important;
}

.public-runtime-status {
  box-sizing: border-box;
  width: min(720px, calc(100% - 32px));
  margin: clamp(32px, 10vh, 96px) auto;
  padding: clamp(24px, 5vw, 44px);
  border: 1px solid #ddd4db;
  border-radius: 24px;
  background: #fff;
  color: #0b0928;
  box-shadow: 0 18px 50px rgb(27 18 31 / 10%);
  font: 500 16px/1.55 Manrope, sans-serif;
}

.public-runtime-status h1 {
  margin: 0 0 12px;
  font-size: clamp(24px, 5vw, 34px);
  line-height: 1.15;
}

.public-runtime-status p {
  margin: 0;
}

.public-runtime-status a {
  display: inline-flex;
  margin-top: 20px;
  color: #ca0061;
  font-weight: 750;
}

.public-runtime-return {
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border: 1px solid #ca0061;
  border-radius: 12px;
  text-decoration: none;
}

.menu-button {
  min-width: 44px !important;
  min-height: 44px !important;
}

body[data-public-mode="ready"] > .public-runtime-status,
body[data-public-mode="demo"] > .public-runtime-status {
  display: none;
}

.public-contract-warning {
  margin: 16px 0;
  padding: 16px 18px;
  border: 1px solid #e9b84d;
  border-radius: 14px;
  background: #fff7df;
  color: #5e4300;
  font-size: 15px;
  line-height: 1.5;
}

.public-date-range {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 16px;
}

.public-date-range label {
  display: grid;
  gap: 7px;
  font-size: 14px;
  font-weight: 750;
}

.public-date-range input,
.public-parcelshop-code {
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid #d7ced5;
  border-radius: 12px;
  background: #fff;
  color: #0b0928;
  font: inherit;
}

.public-availability-status {
  min-height: 24px;
  margin: 0 16px 16px;
  font-size: 15px;
  font-weight: 650;
}

.public-availability-status[data-state="available"] { color: #006b55; }
.public-availability-status[data-state="unavailable"],
.public-availability-status[data-state="error"] { color: #a80036; }

[data-public-transport-price] {
  font-size: 14px !important;
  font-weight: 650 !important;
}

/* Produkční runtime označí pouze skutečně vykreslený text, jehož vypočtená
   velikost ze starších sdílených stylů klesla pod společné minimum. Větší
   nadpisy ani ikonografii nepřepisujeme plošným selektorem. */
.public-readable-text {
  font-size: 14px !important;
}

#parcelshop-cart-note:has(.ppl-point-picker) { display: block; }
#parcelshop-cart-note[hidden] { display: none !important; }
.ppl-point-picker { width: 100%; min-width: 0; display: grid; gap: 14px; text-align: left; }
.ppl-point-picker h3, .ppl-point-picker p { margin: 0; }
.ppl-point-picker input, .ppl-point-picker select { width: 100%; min-width: 0; min-height: 46px; padding: 12px; border: 1px solid #ddd1dc; border-radius: 12px; color: #151128; background: #fff; font: inherit; }
.ppl-point-picker__selected[data-selected="true"] { padding: 12px; border: 1px solid #88cbb7; border-radius: 12px; background: #ebfaf4; color: #075745; }
.ppl-point-picker__map-button { display: block; width: 100%; min-height: 50px; padding: 12px 16px; border: 0; border-radius: 12px; background: #004b93; color: #fff; font: 700 16px/1.4 Montserrat, sans-serif; cursor: pointer; }
.ppl-point-picker__map-button:focus-visible { outline: 3px solid #ff0083; outline-offset: 3px; }
.ppl-point-picker__hint { font-size: 14px; line-height: 1.6; color: #514a5d; }
.ppl-point-picker__fallback > summary { padding: 12px 0; cursor: pointer; font-size: 14px; }
.ppl-point-picker__fallback[open] { display: grid; gap: 12px; }
.ppl-map-dialog { box-sizing: border-box; width: min(1180px,calc(100% - 32px)); max-width: none; height: min(850px,calc(100dvh - 32px)); max-height: none; margin: auto; padding: 0; border: 1px solid #d2e1ef; border-radius: 18px; color: #172334; background: #fff; overflow: hidden; box-shadow: 0 20px 80px #11182755; }
.ppl-map-dialog[open] { display: flex; flex-direction: column; }
.ppl-map-dialog::backdrop { background: #11182799; }
.ppl-map-dialog__header { flex: none; display: flex; align-items: center; gap: 12px; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #dae2ec; }
.ppl-map-dialog__header > div { min-width: 0; display: grid; gap: 3px; }
.ppl-map-dialog__header strong { color: #004b93; font: 700 20px/1.3 Montserrat,sans-serif; }
.ppl-map-dialog__header span { font: 14px/1.4 Montserrat,sans-serif; }
.ppl-map-dialog__header button { flex: none; width: 44px; height: 44px; border: 1px solid #c5d4e0; border-radius: 10px; background: #fff; color: #004b93; font: 28px Montserrat,sans-serif; cursor: pointer; }
.ppl-map-dialog__header button:focus-visible { outline: 3px solid #ff0083; outline-offset: 2px; }
.ppl-map-dialog__status { flex: none; margin: 0; padding: 10px 18px; color: #004b93; background: #edf7ff; font: 14px/1.5 Montserrat,sans-serif; }
.ppl-map-dialog__status:empty { display: none; }
.ppl-map-dialog__frame { display: block; flex: 1 1 auto; width: 100%; min-height: 0; border: 0; background: #fff; }
@media (max-width: 640px) {
  .ppl-map-dialog { width: 100%; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
  .ppl-map-dialog__header { padding: max(10px,env(safe-area-inset-top)) 12px 10px; }
  .ppl-map-dialog__header strong { font-size: 18px; }
}
.ppl-point-picker__results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; max-height: 420px; overflow: auto; padding: 3px; overscroll-behavior: contain; }
.ppl-point-picker__point { display: grid; gap: 6px; padding: 14px; min-width: 0; text-align: left; border: 1px solid #ddd1dc; border-radius: 14px; background: #fff; color: #151128; font: inherit; cursor: pointer; overflow-wrap: anywhere; }
.ppl-point-picker__point[aria-pressed="true"] { border: 2px solid #ff0083; background: #fff2f8; }
.ppl-point-picker__point:hover, .ppl-point-picker__point:focus-visible { outline: 3px solid #00b5d5; outline-offset: 1px; }
.ppl-point-picker__point span, .ppl-point-picker__point small { font-size: 14px; line-height: 1.5; }
@media (max-width: 620px) { .ppl-point-picker__results { grid-template-columns: 1fr; } }

@media (max-width: 620px) {
  .public-date-range { grid-template-columns: 1fr; }
  .public-runtime-status { width: min(100% - 20px, 720px); border-radius: 18px; }
}
