/* Темите v2, етап 1в (docs/spec/themes-v2-editor.ux.md): редакторът „Покана и сайт“ на булката (planner-theme.js) –
   галерията, темата отблизо, „Взехме от планера“, редакторът с 4 раздела, листът на частта, центърът на снимките,
   прегледът като гост, проверката и публикуваното. Токените са от style.css :root и theme.css; прегледът е истинският
   рендер (dz2), смален със zoom (CSSOM). Телефон първо (390), две колони от 1024 px. */

/* ---------- Редакторът ---------- */
.plt {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 96px;
}
.plt-top {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0 10px;
  border-bottom: 1px solid var(--line);
}
.plt-title {
  flex: 1;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(18px, 5vw, 24px);
  white-space: nowrap;
  font-weight: 500;
  text-align: center;
}
.plt-saved {
  min-width: 0;
  color: var(--success);
  font-size: 13px;
}
.plt-saved.is-error {
  color: var(--gold-ink);
}
.plt-more {
  position: relative;
}
.plt-more > summary {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-pill);
  cursor: pointer;
  list-style: none;
  font-size: 20px;
}
.plt-more > summary::-webkit-details-marker {
  display: none;
}
.plt-more > div {
  position: absolute;
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  min-width: 240px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper);
  box-shadow: var(--shadow-pop);
}
.plt-more > div button {
  justify-content: flex-start;
  min-height: 44px;
  border: 0;
  background: none;
  text-align: left;
}
.plt-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 14px;
  border: 1px solid var(--gold-line);
  border-radius: var(--radius-card);
  background: var(--cream);
}
.plt-banner p {
  flex: 1;
  margin: 0;
}
.plt-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.plt-pv {
  position: relative;
}
.plt-pv-hint {
  margin: 0 0 6px;
  color: var(--ink-muted);
  font-size: 13px;
}
/* VT2E-02: телефонът на госта – прегледът е рендиран на 390 px и смален в рамката (pldFit, zoom). */
.plt-pv-frame {
  width: min(392px, 100%);
  height: min(46vh, 420px);
  margin-inline: auto;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper-sunk);
}
.plt-pv-doc {
  min-height: 100%;
}
/* VT2E-03: след първия рендер прегледът е неподвижен – при всяка промяна без входните анимации и преходи на темата
   (те остават в „Цял екран“ и у госта). !important – за да е над всички правила на рендера, само тук. */
.plt-pv-frame.is-still :is(*, *::before, *::after) {
  animation: none !important;
  transition: none !important;
}
.plt-pv-doc [data-dz2-sheet] {
  cursor: pointer;
}
.plt-pv-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 6px;
}
.plt-ghost {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: calc(100% - 32px);
  margin: 12px 16px;
  padding: 18px;
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius-card);
  background: color-mix(in srgb, var(--paper) 80%, transparent);
  color: var(--ink-muted);
  text-align: center;
}
.plt-ghost-t {
  font-family: var(--font-display);
  font-size: 20px;
  color: var(--ink);
}
/* VT2E-04 / UX-T2E-02: правото подчертаване (правилото за бутоните в #planner иначе го извива) и 4-те раздела се
   събират на 288–360 px (мащаб 1,25) – колоните могат да се свиват, текстът е по-малък на тесен екран. */
.plt-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}
#planner .plt-tabs [role='tab'] {
  min-width: 0;
  min-height: 48px;
  padding: 10px 4px;
  overflow: hidden;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: none;
  color: var(--ink-muted);
  font-size: clamp(13px, 3.6vw, 16px);
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
}
#planner .plt-tabs [aria-selected='true'] {
  border-bottom-color: var(--gold);
  color: var(--ink);
  font-weight: 600;
}
.plt-pane {
  padding: 14px 0;
}
.plt-bar {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 0 12px;
  border-top: 1px solid var(--line);
  background: var(--bg);
}
.plt-bar p {
  margin: 0;
  font-size: 13px;
}
.plt-bar .primary {
  min-height: 52px;
}

/* ---------- Части ---------- */
.plt-progress {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 12px;
}
.plt-meter {
  flex: 1;
  height: 6px;
  border-radius: var(--radius-pill);
  background: var(--paper-sunk);
  overflow: hidden;
}
.plt-meter i {
  display: block;
  height: 100%;
  background: var(--gold);
}
.plt-parts {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper);
}
/* VT2E-15: колоните на реда – текст, статус (икона + дума), превключвател / „винаги“. */
.plt-part {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 52px;
  align-items: center;
  gap: 10px;
  min-height: 64px;
  padding: 6px 12px;
  border-top: 1px solid var(--line);
}
.plt-part:first-child {
  border-top: 0;
}
.plt-part.is-off .plt-part-main strong {
  color: var(--ink-muted);
}
#planner button.plt-part-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
  min-height: 52px;
  padding: 4px 0;
  border: 0;
  border-radius: 0;
  background: none;
  font-weight: 400;
  text-align: left;
}
/* VT2E-05: заглавие 600, подзаглавие 400 (strong в бутона иначе е 900). */
#planner .plt-part-main strong {
  font-size: 15px;
  font-weight: 600;
}
#planner .plt-part-main small {
  font-size: 13px;
  font-weight: 400;
  color: var(--ink-muted);
}
.plt-always {
  justify-self: center;
  color: var(--ink-muted);
  font-size: 12px;
}
.plt-st {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  white-space: nowrap;
}
.plt-st b {
  font-weight: 700;
}
.plt-st-ok {
  color: var(--success);
}
.plt-st-warn,
.plt-st-empty {
  color: var(--gold-ink);
}
.plt-st-off {
  color: var(--ink-muted);
}
.plt-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 44px;
  min-height: 44px;
  cursor: pointer;
}
.plt-switch input {
  position: absolute;
  opacity: 0;
  width: 44px;
  height: 44px;
}
.plt-switch input + span,
.plt-switch span[aria-hidden] {
  position: relative;
  width: 44px;
  height: 26px;
  border-radius: var(--radius-pill);
  background: var(--line-strong);
}
.plt-switch span[aria-hidden]::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--paper);
  transition: transform 200ms ease-out;
}
.plt-switch input:checked ~ span[aria-hidden] {
  background: var(--gold-deep);
}
.plt-switch input:checked ~ span[aria-hidden]::after {
  transform: translateX(18px);
}
.plt-switch input:focus-visible ~ span[aria-hidden] {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}
.plt-order-note {
  margin-top: 8px;
  font-size: 13px;
}

/* ---------- Листът на частта (отдолу на телефон, панел на компютър) ---------- */
.plt-sheet-dlg {
  width: 100vw;
  max-width: 100vw;
  max-height: 92vh;
  margin: auto 0 0;
  padding: 0;
  border: 0;
  border-radius: var(--radius-card) var(--radius-card) 0 0;
  background: var(--paper);
  color: var(--ink);
  box-shadow: var(--shadow-pop);
}
/* VT2E-28: фонът зад листа – общото dialog::backdrop от theme.css. */
.plt-sheet {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 10px 18px 22px;
}
.plt-grip {
  align-self: center;
  width: 40px;
  height: 4px;
  border-radius: var(--radius-pill);
  background: var(--line-strong);
}
.plt-sheet-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.plt-sheet-h h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 500;
}
.plt-sheet-note {
  margin: 0;
  padding: 8px 12px;
  border-radius: var(--radius-field);
  background: var(--cream);
}
.plt-mini {
  max-height: 260px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
}
.plt-mini-empty {
  margin: 0;
  padding: 18px;
  color: var(--ink-muted);
  text-align: center;
}
.plt-fields {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.plt-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.plt-field > span {
  font-size: 13px;
  font-weight: 600;
}
.plt-field > label {
  font-size: 13px;
  font-weight: 600;
}
/* „Адрес, парола и достъп“ (CR-T2E-03): паролата с „Покажи“, после „Достъп“ – смяната на линковете и „Спри сайта“. */
.plt-pw {
  display: flex;
  gap: 8px;
}
.plt-pw input {
  flex: 1;
  min-width: 0;
}
.plt-pw button {
  min-height: 44px;
}
.plt-addr > .check {
  margin-top: 10px;
}
.plt-access {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.plt-access h3 {
  margin: 0 0 6px;
  font-size: 15px;
}
.plt-access [data-box] + [data-box] {
  margin-top: 14px;
}
.plt-access .plt-stop {
  color: var(--danger);
}
.plt-bc form {
  margin-top: 10px;
}
.plt-ro {
  margin: 0;
}
.plt-sub {
  margin: 8px 0 4px;
  font-weight: 600;
}
.plt-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.plt-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  flex-wrap: wrap;
}
.plt-row input,
.plt-row textarea {
  flex: 1 1 140px;
  min-width: 0;
}
.plt-row input[type='color'] {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  padding: 2px;
}
.plt-steps {
  margin: 0;
  padding: 0;
  list-style: none;
}
/* VT2E-09: името горе, иконата под него, „За гостите“ – превключвател вдясно на двата реда. */
.plt-steps li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px 12px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
}
.plt-steps select {
  grid-column: 1;
  width: auto;
  max-width: 100%;
  min-height: 44px;
}
.plt-steps li.is-hidden .plt-step-l {
  color: var(--ink-muted);
  text-decoration: line-through;
}
.plt-step-l {
  font-weight: 500;
}
.plt-eye {
  grid-column: 2;
  grid-row: 1 / span 2;
  font-size: 13px;
  white-space: nowrap;
}
.plt-sheet-nav {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.plt-done {
  min-height: 52px;
}

/* ---------- Снимки ---------- */
.plt-ph-sec h3,
.plt-h {
  margin: 18px 0 4px;
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 500;
}
/* VT2E-11: мрежа от 3 колони; действията са кръгли бутони върху снимката (≥ 44 px – UX-T2E-10). */
.plt-ph {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.plt-ph-item {
  position: relative;
  margin: 0;
}
.plt-ph-item img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--radius-field);
}
.plt-ph[data-shape='wide'] .plt-ph-item,
.plt-ph[data-shape='wide'] .plt-ph-add {
  grid-column: 1 / -1;
}
.plt-ph[data-shape='wide'] .plt-ph-item img,
.plt-ph[data-shape='wide'] .plt-ph-add {
  aspect-ratio: 16 / 9;
}
.plt-ph[data-shape='arch'] .plt-ph-item:first-child img {
  border-radius: var(--radius-arch);
}
.plt-ph[data-shape='sq'] .plt-ph-item img {
  aspect-ratio: 1;
}
.plt-ph-acts {
  position: absolute;
  top: -2px;
  right: -2px;
  display: flex;
  gap: 4px;
}
/* VT2E-29: видим кръг 32 px в зона за докосване 44 px (прозрачна), за да не покрива лицата. */
.plt-ph-act,
#planner button.plt-ph-act {
  display: grid;
  place-items: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--ink);
}
.plt-ph-act::before {
  content: '';
  grid-area: 1 / 1;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--paper) 88%, transparent);
  box-shadow: var(--shadow-chip);
}
.plt-ph-act .plt-ic {
  position: relative;
  grid-area: 1 / 1;
}
.plt-ph-acts {
  gap: 0;
}
.plt-ph-add {
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 5;
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius-field);
  color: var(--gold-ink);
  cursor: pointer;
}
.plt-ph-add .plt-ic {
  width: 24px;
  height: 24px;
}
.plt-ph-add:focus-within {
  outline: 2px solid var(--gold);
}
.plt-ph-warn {
  min-height: 1em;
  margin: 4px 0 0;
  font-size: 13px;
}
.plt-focus-box {
  position: relative;
  align-self: center;
  max-width: 100%;
}
.plt-focus-box img {
  display: block;
  max-width: 100%;
  max-height: 52vh;
  cursor: crosshair;
}
.plt-focus-pv {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 8px 12px;
  font-size: 13px;
}
.plt-focus-ph {
  display: block;
  width: 96px;
  height: 120px;
  overflow: hidden;
  border-radius: var(--radius-field);
}
.plt-focus-ph.is-wide {
  width: 200px;
  height: 110px;
}
.plt-focus-ph[data-shape='arch'] {
  border-radius: var(--radius-arch);
}
.plt-focus-ph[data-shape='wide']:not(.is-wide) {
  width: 160px;
  height: 90px;
}
.plt-focus-ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------- Тема ---------- */
.plt-theme-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper);
}
.plt-theme-card p {
  margin: 4px 0 0;
}
/* VT2E-17: името на темата в шрифта на заглавията; „Друга тема“ – на един ред. */
.plt-theme-card {
  flex-wrap: wrap;
}
.plt-theme-name {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 500;
}
.plt-theme-card button {
  white-space: nowrap;
}
.plt-chips,
.plt-type-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.plt-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
}
.plt-chip[aria-pressed='true'] {
  border-color: var(--gold-deep);
  background: var(--cream);
  font-weight: 600;
}
.plt-sw {
  display: inline-block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
}
.plt-anim {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 16px;
}
.plt-anim small {
  flex-basis: 100%;
}

/* ---------- Е1 · Галерията ---------- */
.plt-names {
  margin: 0 0 12px;
  padding: 14px 16px;
  border: 1px solid var(--gold-line);
  border-radius: var(--radius-card);
  background: var(--cream);
  font-family: var(--font-display);
  font-size: 18px;
}
.plt-type-chips {
  margin-bottom: 12px;
}
.plt-cards {
  display: grid;
  gap: 16px;
}
.plt-tcard {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper);
}
.plt-frames {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
}
.plt-frame {
  position: relative;
  display: block;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  border-radius: var(--radius-field);
  background: var(--paper-sunk);
}
.plt-frame-doc {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
/* VT2E-19: малък етикет с главни букви върху полупрозрачна хартия; в мострите – без „Пропусни“ и подсказката. */
.plt-frame-tag {
  position: absolute;
  z-index: 60;
  bottom: 6px;
  left: 6px;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--paper) 85%, transparent);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.plt-frame :is(.dz2-skip, .dz2-hint, [data-dz2-skip]) {
  display: none;
}
/* Кадърът „Сайт“ – от листовете след корицата (иначе е като кадъра „Покана“). */
.plt-frame[data-frame='site'] .dz2-letter > [data-dz2-sheet='cover'] {
  display: none;
}
.plt-tcard-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.plt-tcard-meta strong {
  flex: 1;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
}
.plt-tcard .muted {
  margin: 4px 0 0;
}
.plt-dots {
  display: inline-flex;
}
.plt-dot {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: none;
}
.plt-dot span {
  width: 22px;
  height: 22px;
  border: 2px solid var(--paper);
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--line-strong);
}
.plt-dot[aria-pressed='true'] span {
  box-shadow: 0 0 0 2px var(--ink);
}
.plt-listen {
  min-height: 44px;
  border-radius: var(--radius-pill);
}

/* ---------- Е2 · Темата отблизо ---------- */
.plt-close-stage,
.plt-gp-stage {
  display: flex;
  justify-content: center;
  margin: 12px 0;
}
/* VT2E-08: целият първи екран на телефона (9:19,5), рендерът е на 390 и смален (pldFit). */
.plt-close-phone {
  position: relative;
  width: min(320px, 100%);
  aspect-ratio: 9 / 19.5;
  height: auto;
  max-height: 72vh;
  overflow: auto;
  border: 8px solid var(--ink);
  border-radius: var(--radius-device);
  background: var(--paper);
}
.plt-gp-frame {
  position: relative;
  width: min(390px, 100%);
  height: calc(100vh - 220px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper);
}
.plt-gp-frame[data-device='desktop'] {
  width: min(1280px, 100%);
}

/* ---------- Е3, Е7, Е8 ---------- */
.plt-e3-list,
.plt-cks {
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper);
}
.plt-e3-row,
.plt-ck {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  min-height: 52px;
  padding: 8px 14px;
  border-top: 1px solid var(--line);
}
.plt-e3-list > li:first-child > .plt-e3-row,
.plt-e3-list > .plt-e3-row:first-child,
.plt-ck:first-child {
  border-top: 0;
}
.plt-e3-list > li:not(.plt-e3-row) {
  display: block;
}
/* UX-T2E-04: целият ред е бутон ≥ 52 px. */
button.plt-e3-row,
#planner button.plt-e3-row {
  width: 100%;
  min-height: 56px;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-weight: 400;
  text-align: left;
  cursor: pointer;
}
button.plt-e3-row:hover {
  background: var(--paper-sunk);
}
.plt-e3-l {
  color: var(--ink-muted);
  font-size: 13px;
}
.plt-e3-row strong {
  flex: 1;
  font-weight: 600;
  text-align: right;
}
.plt-e3-dl strong {
  flex-basis: 100%;
  font-weight: 400;
  text-align: left;
}
.plt-e3-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.plt-e3-cta .primary {
  width: 100%;
}
/* VT2E-13: статусът е кръг 28 px. */
.plt-dot-st {
  display: inline-grid;
  flex: 0 0 28px;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  font-weight: 700;
}
.plt-dot-st.is-ok {
  background: var(--mint);
  color: var(--success);
}
.plt-dot-st.is-warn {
  background: var(--gold-soft);
  color: var(--gold-ink);
}
.plt-dot-st.is-info {
  box-shadow: inset 0 0 0 1.5px var(--line-strong);
}
.plt-ck-t {
  flex: 1 1 200px;
}
.plt-ck-act {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.plt-rv-error {
  padding: 10px 14px;
  border-radius: var(--radius-field);
  background: var(--cream);
}
/* VT2E-12: „Публикувано“ – плик (SVG) с восъка на темата; тесен диалог. */
.plt-k8 {
  max-width: 480px;
  margin-inline: auto;
  text-align: center;
}
.plt-k8 h2 {
  font-family: var(--font-display);
  font-size: 28px;
  font-weight: 500;
}
.plt-k8-env {
  position: relative;
  width: min(240px, 70%);
  margin: 8px auto 16px;
  filter: drop-shadow(0 10px 24px rgba(41, 39, 37, 0.14));
}
.plt-k8-svg {
  display: block;
  width: 100%;
  height: auto;
}
.plt-k8-paper {
  fill: var(--cream);
  stroke: var(--gold-line);
}
.plt-k8-flap {
  fill: none;
  stroke: var(--gold-line);
  stroke-width: 1;
}
.plt-k8-seal {
  position: absolute;
  top: 58%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin: -28px 0 0 -28px;
  border-radius: 50%;
  background: var(--gold-deep);
  background-size: cover;
  background-position: center;
  color: var(--paper);
  font: 500 15px/1 var(--font-display);
  letter-spacing: 0.08em;
  animation: plt-seal 0.8s ease-out 1;
}
.plt-k8-seal.has-img {
  border-radius: 0;
  background-color: transparent;
}
.plt-k8 .pld-k7-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  max-width: 360px;
  margin: 16px auto 0;
}
.plt-k8-url {
  width: 100%;
  margin-top: 8px;
}
@keyframes plt-seal {
  from {
    transform: translateY(-40px) scale(1.4);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .plt-k8-seal {
    animation: none;
  }
  .plt-switch span[aria-hidden]::after {
    transition: none;
  }
}

/* ---------- UX и визуалното ревю (visual-themes-v2-editor.md, ux-themes-v2-editor.md) ---------- */
/* VT2E-06: линейните икони до текста. */
.plt-ic {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  vertical-align: -3px;
}
.plt-back,
#planner button.plt-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  align-self: center;
}
.plt-pv-actions button,
.plt-again,
.plt-listen,
.plt-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* VT2E-16: „‹ Гости“ на една линия със заглавието; на тесен екран състоянието е под заглавието. */
.plt-top {
  flex-wrap: wrap;
}
@media (max-width: 479px) {
  .plt-saved {
    order: 5;
    flex-basis: 100%;
    text-align: center;
  }
}
.plt-saved[data-state='saved']::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 6px;
  border-radius: 50%;
  background: currentColor;
  vertical-align: 2px;
}
/* UX-T2E-42 / VT2E-25: „⋯ Още“ с надпис; менюто 280 px с икони и разделител. */
.plt-more > summary {
  display: inline-flex;
  gap: 6px;
  width: auto;
  padding: 0 12px;
  font-size: 15px;
}
.plt-more > div {
  min-width: 280px;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--paper);
  box-shadow: var(--shadow-pop);
}
.plt-more > div button,
#planner .plt-more > div button {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 8px 12px;
  border: 0;
  border-radius: var(--radius-field);
  background: none;
  font-size: 15px;
  font-weight: 500;
  text-align: left;
}
.plt-more > div button:hover {
  background: var(--paper-sunk);
}
.plt-more hr {
  width: 100%;
  margin: 4px 0;
  border: 0;
  border-top: 1px solid var(--line);
}
/* Кръгъл бутон-икона 44 px (затваряне, ‹ ›, „Отначало“). */
.plt-icon-btn,
#planner button.plt-icon-btn {
  display: inline-grid;
  place-items: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
}
.plt-icon-btn:disabled {
  opacity: 0.4;
}
.plt-x,
#planner button.plt-x {
  display: inline-grid;
  place-items: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: none;
}
/* VT2E-20: галерията – заглавието и затварянето (икона) на един ред. */
.plt-gal-head h2 {
  text-align: center;
}
.plt-names {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 12px;
}
.plt-names .pl-link-button {
  min-height: 44px;
}
/* VT2E-21: избраната точка – златен пръстен. */
.plt-dot[aria-pressed='true'] span {
  box-shadow: 0 0 0 2px var(--gold-deep);
}
/* VT2E-07 / UX-T2E-05 / UX-T2E-10: сегментите и в диалозите (извън #planner) – цели ≥ 44 px, избраното е попълнено. */
.plt-seg {
  display: flex;
  max-width: 100%;
}
.plt-seg button,
#planner .plt-seg button {
  display: inline-flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 44px;
  padding: 6px 12px;
  border: 0;
  border-radius: var(--radius-pill);
  background: none;
  font-weight: 500;
  white-space: nowrap;
}
.plt-seg button.active,
#planner .plt-seg button.active {
  background: var(--gold-soft);
  color: var(--gold-ink);
  font-weight: 600;
}
.plt-chip .plt-ic {
  color: var(--gold-deep);
}
.plt-chip[aria-pressed='true'],
#planner .plt-chip[aria-pressed='true'] {
  background: var(--gold-soft);
  border-color: var(--gold-deep);
}
/* VT2E-08 / VT2E-13 / UX-T2E-05: главното действие е залепено долу в „Темата отблизо“ и в проверката. */
.plt-close .pld-cta,
.plt-review .pld-cta {
  position: sticky;
  bottom: 0;
  z-index: 3;
  margin: 12px -4px 0;
  padding: 12px 4px calc(12px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line);
  background: var(--cream);
}
.plt-close .pld-cta .primary,
.plt-review .pld-cta .primary {
  width: 100%;
}
/* VT2E-13: „назад“ на свой ред, заглавието под него. */
.plt-head-stack {
  flex-direction: column;
  align-items: flex-start;
}
.plt-head-stack h2,
.plt-addr h2,
.plt-close h2 {
  text-wrap: balance;
}
.plt-ck-act .pld-pill {
  min-height: 44px;
}
/* UX-T2E-01: съобщението в отворения диалог/лист. */
.plt-say {
  margin: 0;
  padding: 10px 14px;
  border-radius: var(--radius-field);
  background: var(--mint);
  color: var(--success);
  font-size: 14px;
}
.plt-say.is-error {
  background: var(--gold-soft);
  color: var(--gold-ink);
}
.plt-field-err {
  display: block;
  flex-basis: 100%;
  color: var(--danger);
  font-size: 13px;
}
.plt [aria-invalid='true'],
.plt-sheet [aria-invalid='true'],
.pld-sheet [aria-invalid='true'] {
  border-color: var(--danger);
}
/* UX-T2E-10: отметките са цели редове ≥ 44 px. */
.plt-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 44px;
  padding: 10px 0;
  cursor: pointer;
}
.plt-check input {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
}
.plt-check small {
  display: block;
}
/* Решение на ПМ (UX-T2E-07): бележката до IBAN. */
.plt-iban-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 8px 12px;
  border-radius: var(--radius-field);
  background: var(--cream);
  font-size: 14px;
}
/* UX-T2E-09: хотел/транспорт – полетата едно под друго, с етикети. */
.plt-row-stack {
  flex-direction: column;
  align-items: stretch;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-field);
}
.plt-lf {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  font-weight: 600;
}
.plt-lf input,
.plt-lf textarea {
  width: 100%;
  font-weight: 400;
}
.plt-row-stack input,
.plt-row-stack textarea {
  flex: none;
}
.plt-row-stack .plt-x {
  align-self: flex-end;
}
/* UX-T2E-10 / VT2E-26: долната лента на листа – ‹ › като бутони ≥ 44 px и „Готово“, залепени. */
.plt-sheet-foot {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 -18px -22px;
  padding: 10px 18px calc(14px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line);
  background: var(--paper);
}
.plt-nav-btn {
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: var(--paper);
  color: var(--ink);
  font-size: 14px;
}
.plt-sheet-saved {
  margin-left: auto;
  font-size: 12px;
}
.plt-sheet-h {
  flex-wrap: wrap;
}
/* VT2E-10: „Музика“ – радиото до текста. */
.plt-music .pld-toggle {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 10px;
  min-height: 44px;
  padding: 10px 0;
}
.plt-music .pld-toggle span {
  flex: 1;
  min-width: 0;
}
.plt-music .pld-toggle input {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
}
/* UX-T2E-04: лентата „Обратно към поканата“ в профила/графика. */
.plt-backbar {
  display: flex;
}
.plt-backbar .pld-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
/* VT2E-27: прегледът като гост на телефон – ред 1: назад + заглавие, ред 2: „Отначало“ + „Публикувай“. */
.plt-gp-acts {
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 599px) {
  .plt-gp-acts {
    flex-basis: 100%;
  }
  .plt-gp-acts .primary {
    flex: 1;
  }
}

/* ---------- Последният кръг (VT2E-07, 29–32; UX-T2E-13, 16, 21, 36, 43, 45–51; „Запазени от предишната тема“) ---------- */
/* VT2E-07: сегментите в листовете (вкл. „Телефон / Компютър“ в прегледа като гост) – без рамка, избраното попълнено. */
.pld-sheet .pl-segment {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: var(--paper);
}
.pld-sheet .pl-segment button {
  min-height: 44px;
  padding: 6px 16px;
  border: 0;
  border-radius: var(--radius-pill);
  background: none;
  color: var(--ink);
  font-weight: 500;
  white-space: nowrap;
}
.pld-sheet .pl-segment button.active,
.pld-sheet .pl-segment button[aria-pressed='true'] {
  background: var(--gold-soft);
  color: var(--gold-ink);
  font-weight: 600;
}
/* VT2E-30: „Публикувано“ – тесен диалог и на компютър. */
.pld-dlg:has(.plt-k8) {
  max-width: 560px;
}
/* VT2E-32: „‹ Родители и кумове“ на един ред. */
.plt-nav-btn {
  max-width: 48%;
  white-space: nowrap;
}
.plt-nav-btn span {
  overflow: hidden;
  text-overflow: ellipsis;
}
/* UX-T2E-16: какво става с цветовете при смяна на темата. */
.plt-color-note {
  margin: 0 0 8px;
  color: var(--ink-muted);
  font-size: 14px;
}
/* UX-T2E-43: началото на адреса пред полето. */
.plt-slug {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-field);
  background: var(--paper);
  overflow: hidden;
}
.plt-slug-base {
  padding: 0 0 0 10px;
  color: var(--ink-muted);
  font-size: 14px;
  white-space: nowrap;
}
.plt-slug input {
  flex: 1;
  min-width: 0;
  border: 0;
}
/* UX-T2E-45: „Обратно към поканата“ – залепено горе. */
.plt-backbar {
  position: sticky;
  top: 8px;
  z-index: 6;
}
.plt-backbar .pld-pill {
  box-shadow: var(--shadow-chip);
}
/* UX-T2E-46: на нисък екран малкият преглед в листа не взема полетата. */
@media (max-height: 700px) {
  .plt-mini {
    max-height: 28svh;
  }
}
/* UX-T2E-47: на 288–339 px статусът и превключвателят са под текста, без празния ляв отстъп. */
@media (max-width: 339px) {
  .plt-part {
    grid-template-columns: minmax(0, 1fr) 52px;
    padding: 6px 8px;
  }
  .plt-part .plt-st {
    grid-column: 1;
    grid-row: 2;
  }
  .plt-part > .plt-switch,
  .plt-part > .plt-always {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
}
/* „Запазени от предишната тема (N)“ – свито най-долу в „Части“. */
.plt-kept {
  margin-top: 12px;
  padding: 4px 14px;
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius-card);
}
.plt-kept summary {
  min-height: 44px;
  padding: 10px 0;
  cursor: pointer;
  font-weight: 600;
}
.plt-kept ul {
  margin: 0 0 10px;
  padding: 0;
  list-style: none;
}
.plt-kept li {
  display: flex;
  flex-direction: column;
  padding: 8px 0;
  border-top: 1px solid var(--line);
}
.plt-kept li small {
  color: var(--ink-muted);
}
.plt-kept .pld-pill {
  margin: 0 0 12px;
}

/* ---------- Компютър: две колони ---------- */
@media (min-width: 1024px) {
  .plt-main {
    display: grid;
    grid-template-columns: 440px 1fr;
    align-items: start;
  }
  .plt-panel {
    order: -1;
  }
  .plt-pv {
    position: sticky;
    top: 12px;
    padding: 12px;
    border-radius: var(--radius-card);
    background: var(--paper-sunk);
  }
  .plt-pv-frame {
    height: calc(100vh - 200px);
    background: var(--paper);
  }
  /* VT2E-31: сегментът в „Темата отблизо“ – колкото съдържанието, центриран. */
  .plt-close .plt-seg {
    display: flex;
    width: fit-content;
    margin-inline: auto;
  }
  .plt-close .plt-seg button {
    flex: 0 0 auto;
  }
  /* VT2E-26: на компютър прегледът до листа се вижда (без затъмняване и размазване). */
  .plt-sheet-dlg::backdrop {
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .plt-sheet-dlg {
    width: 520px;
    max-width: 520px;
    height: 100vh;
    max-height: 100vh;
    margin: 0 auto 0 0;
    border-radius: 0 var(--radius-card) var(--radius-card) 0;
  }
  .plt-cards {
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
  }
  .plt-tcard.is-only {
    grid-column: 1 / -1;
    max-width: 760px;
  }
}
/* QA-T2I-03: грешката при публикуване е в залепената лента, над бутона – видима и на 390. */
.plt-review .pld-cta .plt-rv-error {
  margin: 0 0 10px;
  max-height: 30vh;
  overflow: auto;
}
/* BIZ-33: „Пиша на“ в листа на частта и в „Части“ – не е залепен (листът има своя лента), с отстъп до полетата. */
.plt-writing {
  position: static;
  margin: 12px 0 4px;
  padding: 10px 0 12px;
  background: transparent;
}
.plt-writing-note {
  margin: 12px 0 4px;
}
.plt-fields .pl-tr-field {
  gap: 4px;
}

/* Темите по пакет (pricing-v3.md): заключената тема в галерията и в „Темата отблизо“. */
.plt-lock {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--gold-soft);
  color: var(--gold-ink);
}
.plt-lock-note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 10px;
  font-size: 14px;
  color: var(--ink);
}
.plt-lock-note .plt-ic {
  flex: none;
  margin-top: 2px;
  color: var(--gold-ink);
}
/* Залепеният долен ред (и бележката за пакета) – над мострата: слоевете на сцената на плика остават в нея. */
.plt-close .plt-close-stage {
  position: relative;
  z-index: 0;
  isolation: isolate;
}
