/* School Vault poster builder.
   Poster sizes are in em, where 1em = 1% of the shorter paper edge (× text size). */

/* ---------- builder shell ---------- */

.pb { display: grid; grid-template-columns: 380px minmax(0, 1fr); min-height: calc(100vh - 76px); background: var(--sv-tint); }

.pb-panel {
    position: sticky; top: 76px; align-self: start;
    max-height: calc(100vh - 76px); overflow-y: auto;
    padding: 22px 22px 32px; background: var(--sv-white); border-right: 1px solid var(--sv-line);
}

.pb-group { margin: 0 0 16px; padding: 0; border: 0; min-width: 0; }
.pb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pb-label { display: block; margin-bottom: 6px; font-weight: 700; font-size: 0.92rem; color: var(--sv-navy); padding: 0; }
.pb-label small { font-weight: 400; color: var(--sv-muted); }
.pb-label output { float: right; font-weight: 400; color: var(--sv-muted); }
.pb-hint { margin: 6px 0 0 !important; font-size: 0.82rem; color: var(--sv-muted); }

.pb-input {
    width: 100%; padding: 9px 12px; border: 2px solid var(--sv-line); border-radius: 10px;
    font: 0.98rem/1.4 var(--sv-font); color: var(--sv-ink); background: var(--sv-white);
}
.pb-input:focus { outline: none; border-color: var(--sv-blue); }
textarea.pb-input { resize: vertical; }
input[type="range"] { width: 100%; accent-color: var(--sv-royal); }

/* Slogan bank */
.pb-slogans { padding: 14px 14px 16px; border-radius: 12px; background: var(--sv-tint); border: 1px solid var(--sv-line); }
.pb-slogans legend { float: left; width: 100%; }
.pb-slogans .pb-row { clear: both; gap: 8px; }
.pb-input--sm { padding: 7px 10px; font-size: 0.92rem; }

.pb-books { padding: 12px 14px 14px; border-radius: 12px; background: var(--sv-tint); border: 1px solid var(--sv-line); }
.pb-books summary { cursor: pointer; margin: 0; }
.pb-books summary small { font-weight: 400; color: var(--sv-muted); }
.pb-books[open] summary { margin-bottom: 4px; }
.pb-bk-search { display: flex; gap: 6px; margin-top: 8px; }
.pb-bk-search .pb-sl-btn { flex: none; padding: 7px 14px; }
.pb-bk-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; max-height: 340px; overflow-y: auto; }
.pb-bk-list--picked { max-height: none; }
.pb-bk-list li { display: flex; align-items: center; gap: 10px; padding: 6px; border-radius: 10px; background: var(--sv-white); border: 1px solid var(--sv-line); }
.pb-bk-list img { flex: none; width: 40px; height: 60px; object-fit: cover; border-radius: 3px; background: var(--sv-line); }
.pb-bk-meta { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; font-size: 0.86rem; line-height: 1.3; }
.pb-bk-meta strong { color: var(--sv-ink); overflow-wrap: anywhere; }
.pb-bk-meta > span { color: var(--sv-muted); }
.pb-bk-amazon { align-self: flex-start; margin-top: 2px; font-weight: 700; color: var(--sv-navy); text-decoration: underline; }
.pb-bk-amazon:hover, .pb-bk-amazon:focus-visible { color: var(--sv-blue); }
.pb-bk-list .pb-sl-btn { flex: none; padding: 6px 10px; }
.pb-bk-tools { flex: none; display: flex; gap: 4px; }
.pb-bk-heading { margin: 10px 0 0; }
#pb-bk-picked { padding-bottom: 12px; margin-bottom: 4px; border-bottom: 1px solid var(--sv-line); }
.pb-affiliate { margin: 10px 0 0; padding: 8px 10px; border-radius: 8px; font-size: 0.82rem; line-height: 1.4; background: #FFF6D6; color: var(--sv-ink); border: 1px solid #F2B705; }
.pb-sl-search { margin-top: 8px; }
.pb-sl-list { margin-top: 8px; font-weight: 700; }
.pb-sl-list optgroup { font-style: normal; color: var(--sv-muted); }
.pb-sl-list option { color: var(--sv-ink); font-weight: 400; }
.pb-sl-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.pb-sl-btn {
    padding: 7px 4px; border-radius: 9px; cursor: pointer;
    font: 700 0.82rem/1.2 var(--sv-font);
    background: var(--sv-white); color: var(--sv-navy); border: 2px solid var(--sv-navy);
}
.pb-sl-btn:hover, .pb-sl-btn:focus-visible { background: var(--sv-navy); color: var(--sv-white); border-color: var(--sv-navy); }
.pb-sl-btn:focus-visible { outline: 3px solid var(--sv-blue); outline-offset: 2px; }
.pb-sl-btn--random { background: var(--sv-gold); color: var(--sv-navy); border-color: var(--sv-gold); }
.pb-sl-btn--random:hover, .pb-sl-btn--random:focus-visible { background: var(--sv-amber); color: var(--sv-navy); border-color: var(--sv-amber); }
.pb-sl-btn:disabled, .pb-sl-btn:disabled:hover { background: var(--sv-white); color: var(--sv-muted); border-color: var(--sv-line); cursor: not-allowed; }

.pb-segment { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border-radius: 12px; background: var(--sv-tint); }
.pb-segment--2 { grid-template-columns: 1fr 1fr; }
.pb-segment label { position: relative; }
.pb-segment input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pb-segment span {
    display: block; padding: 7px 4px; border-radius: 9px; text-align: center; font-size: 0.85rem; font-weight: 700;
    background: var(--sv-white); color: var(--sv-navy); border: 1px solid var(--sv-line);
}
.pb-segment input:hover + span { border-color: var(--sv-navy); background: var(--sv-white); color: var(--sv-navy); }
.pb-segment input:checked + span { background: var(--sv-navy); color: var(--sv-white); border-color: var(--sv-navy); }
.pb-segment input:focus-visible + span { outline: 3px solid var(--sv-blue); outline-offset: 1px; }

.pb-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.pb-swatch { position: relative; cursor: pointer; }
.pb-swatch input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pb-swatch span {
    display: block; width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--sv-line);
    background: linear-gradient(135deg, var(--sw-p) 0 58%, var(--sw-a) 58% 100%);
}
.pb-swatch--custom span { background: conic-gradient(#C62828, #F2B705, #2E7D32, #2A6BC4, #6A1B9A, #C62828); }
.pb-swatch input:checked + span { outline: 3px solid var(--sv-navy); outline-offset: 2px; }
.pb-swatch input:focus-visible + span { outline: 3px solid var(--sv-blue); outline-offset: 2px; }

.pb-bgs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.pb-bg { position: relative; cursor: pointer; }
.pb-bg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.pb-bg span { display: block; aspect-ratio: 7 / 10; border-radius: 8px; overflow: hidden; border: 2px solid var(--sv-line); background: var(--sv-white); }
.pb-bg img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pb-bg .pb-bg-none { display: grid; place-items: center; font-weight: 700; font-size: 0.82rem; color: var(--sv-navy); }
.pb-bg input:hover + span { border-color: var(--sv-navy); }
.pb-bg input:checked + span { outline: 3px solid var(--sv-navy); outline-offset: 2px; border-color: var(--sv-navy); }
.pb-bg input:focus-visible + span { outline: 3px solid var(--sv-blue); outline-offset: 2px; }
#pb-bg-strength .pb-segment { margin-top: 8px; }

.pb-own { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--sv-line); }
.pb-sublabel { margin: 0 0 8px !important; font-weight: 700; font-size: 0.86rem; color: var(--sv-navy); }
.pb-own-tile { position: relative; }
.pb-own-del {
    position: absolute; top: -6px; right: -6px; z-index: 1; width: 22px; height: 22px; padding: 0;
    display: grid; place-items: center; border-radius: 50%; border: 2px solid #C62828;
    background: #FFFFFF; color: #C62828; font-size: 15px; font-weight: 700; line-height: 1; cursor: pointer;
}
.pb-own-del:hover, .pb-own-del:focus-visible { background: #C62828; color: #FFFFFF; }
.pb-own-del:focus-visible { outline: 3px solid var(--sv-blue); outline-offset: 2px; }
.pb-own-del:disabled { background: #FFFFFF; color: #C62828; opacity: 0.5; cursor: wait; }
#pb-own-list { margin-bottom: 12px; }
.pb-disclaimer {
    margin: 0 0 10px; padding: 10px 12px; border-left: 4px solid var(--sv-gold, #F2B705);
    background: #FFF8E1; border-radius: 0 8px 8px 0; font-size: 0.82rem; line-height: 1.45; color: #1D1D1B;
}
.pb-disclaimer p { margin: 0 0 6px !important; }
.pb-disclaimer p:last-child { margin-bottom: 0 !important; }
.pb-consent { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; font-size: 0.86rem; font-weight: 700; cursor: pointer; }
.pb-consent input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--sv-royal); }
.pb-file.is-disabled { opacity: 0.55; cursor: not-allowed; }
.pb-file.is-disabled input { pointer-events: none; }
#pb-photo-status:empty { display: none; }
#pb-photo-status.is-error { color: #B71C1C; font-weight: 700; }

.pb-custom { display: flex; gap: 16px; margin-top: 12px; font-size: 0.9rem; font-weight: 700; }
.pb-custom label { display: flex; align-items: center; gap: 8px; }
.pb-custom input[type="color"] { width: 44px; height: 32px; padding: 0; border: 2px solid var(--sv-line); border-radius: 8px; background: var(--sv-white); cursor: pointer; }

.pb-logo { display: flex; gap: 8px; flex-wrap: wrap; }
.pb-file { position: relative; overflow: hidden; }
.pb-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.pb-file:focus-within { outline: 3px solid var(--sv-blue); outline-offset: 3px; }

.pb-check { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 0.95rem; cursor: pointer; }
.pb-check input { width: 18px; height: 18px; accent-color: var(--sv-royal); }

.pb-stage { display: flex; flex-direction: column; gap: 16px; padding: 18px 20px 28px; min-width: 0; }
.pb-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.pb-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.pb-status { margin: 0 !important; font-size: 0.9rem; color: var(--sv-muted); }
.pb-status.is-warning { color: #8A4B00; font-weight: 700; }

.pb-fit { flex: 1; display: flex; justify-content: center; align-items: flex-start; }
.pb-scale { position: relative; overflow: hidden; box-shadow: var(--sv-shadow); }

@media (max-width: 960px) {
    .pb { grid-template-columns: 1fr; }
    .pb-panel { position: static; max-height: none; border-right: 0; border-bottom: 1px solid var(--sv-line); }
    .pb-stage { order: -1; }
}

/* ---------- poster ---------- */

.poster {
    --head-weight: 400;
    --head-size: 1;
    position: absolute; left: 0; top: 0;
    width: calc(var(--w) * 1mm); height: calc(var(--h) * 1mm);
    font-size: calc(var(--m) * 1mm / 100 * var(--scale));
    transform-origin: 0 0;
    display: flex; flex-direction: column; overflow: hidden;
    background: #FFFFFF; color: #0E2347;
    font-family: var(--body-font); line-height: 1.25;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.poster.is-overflowing { outline: 0.6em solid #E58D05; outline-offset: -0.6em; }
.poster .poster__layout { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }

/* School Vault branding, part of every footer and the top corner. Sized from the paper, not the text-size slider. */
.poster .poster__sv {
    flex: none; margin-left: auto; display: flex !important; align-items: center; gap: 1.2em;
    font-size: calc(var(--m) * 1mm / 100); font-family: "Nunito", Arial, sans-serif; line-height: 1;
    visibility: visible !important; opacity: 1 !important;
}
.poster .poster__sv img { width: 5.4em; height: 5.4em; padding: 0.35em; border-radius: 1em; background: #FFFFFF; object-fit: contain; }
.poster .poster__sv b { font-size: 2.5em; font-weight: 700; letter-spacing: 0.02em; white-space: nowrap; }
.poster .poster__sv-corner {
    position: absolute; top: 1.8em; right: 3.2em; z-index: 2;
    font: 700 calc(var(--m) * 1mm / 100 * 1.8) / 1 "Nunito", Arial, sans-serif;
    letter-spacing: 0.06em; color: var(--p-ink); opacity: 0.85;
    display: block !important; visibility: visible !important;
}
.poster--split.poster--landscape .poster__sv-corner { color: #0E2347; }

.poster .poster__head { flex: none; }
.poster .poster__kicker {
    margin: 0 0 0.6em; font-size: 2.6em; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--a);
}
.poster .poster__headline {
    margin: 0; color: inherit; font-family: var(--head-font); font-weight: var(--head-weight);
    font-size: calc(11em * var(--head-size)); line-height: 0.95; letter-spacing: 0.01em; overflow-wrap: normal;
    text-transform: uppercase;
}
.poster .poster__sub { margin: 0.6em 0 0; font-size: 3.5em; line-height: 1.3; }

.poster .poster__body {
    flex: 1 1 auto; min-height: 0; overflow: hidden;
    display: flex; flex-direction: column; justify-content: center;
    padding: 5em 7em;
}

/* Book covers: one row, each cover shrinks so up to five always fit across. */
.poster .poster__books {
    flex: none; display: flex; justify-content: center; align-items: flex-end; gap: 3.5em;
    margin: 0 0 4.5em;
}
.poster .poster__books img {
    display: block; min-width: 0; width: auto; height: auto;
    max-height: 34em; max-width: calc((100% - (var(--n, 1) - 1) * 3.5em) / var(--n, 1));
    border-radius: 0.5em; background: #FFFFFF;
    box-shadow: 0 0.6em 1.8em rgba(14, 35, 71, 0.28);
}
.poster--landscape .poster__books img { max-height: 26em; }

.poster .poster__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3.4em; }
.poster .poster__list li { display: flex; align-items: flex-start; gap: 0.7em; font-size: 4.2em; line-height: 1.3; }
.poster .poster__list strong { display: block; color: var(--strong); }
.poster .poster__mark {
    flex: none; width: 0.62em; height: 0.62em; margin-top: 0.34em; border-radius: 0.14em; background: var(--mark);
}
.poster .poster__list--num .poster__mark {
    width: 1.7em; height: 1.7em; margin-top: -0.12em; border-radius: 50%;
    display: grid; place-items: center; font-size: 0.8em; font-weight: 700; color: var(--mark-ink);
}

.poster .poster__foot {
    flex: none; display: flex; align-items: center; gap: 3em;
    padding: 3em 7em; background: var(--p); color: var(--p-ink);
}
.poster .poster__foot-text { font-size: 3em; font-weight: 700; min-width: 0; }
.poster .poster__logo {
    height: 8em; width: auto; max-width: 28em; object-fit: contain;
    padding: 0.6em; border-radius: 1em; background: #FFFFFF;
}

/* Banner */
.poster--banner .poster__head { padding: 7em 7em 6em; background: var(--p); color: var(--p-ink); border-bottom: 1.4em solid var(--a); }

/* Bold */
.poster--bold { background: var(--p); color: var(--p-ink); }
.poster--bold .poster__head { padding: 9em 8em 0; }
.poster--bold .poster__headline { font-size: calc(15em * var(--head-size)); }
.poster--bold .poster__body { padding: 4em 8em 5em; }
.poster--bold .poster__rule { display: block; flex: none; width: 18em; height: 1.6em; margin-bottom: 5em; background: var(--a); }
.poster--bold .poster__mark { background: var(--a); }
.poster--bold .poster__list strong { color: var(--a); }
.poster--bold .poster__foot { margin: 0 8em; padding: 3em 0 4em; background: transparent; border-top: 0.35em solid var(--a); }

/* Split */
.poster--split.poster--landscape .poster__layout { flex-direction: row; }
.poster--split .poster__side {
    flex: none; display: flex; align-items: center; padding: 8em 6em;
    background: var(--p); color: var(--p-ink); border-bottom: 1.4em solid var(--a);
}
.poster--split.poster--landscape .poster__side { flex: 0 0 40%; min-width: 0; border-bottom: 0; border-right: 1.4em solid var(--a); }
.poster--split .poster__side > .poster__head { flex: 1 1 auto; min-width: 0; }
.poster--split .poster__main { flex: 1 1 auto; min-height: 0; min-width: 0; display: flex; flex-direction: column; }
.poster--split .poster__foot { margin: 0 7em; padding: 3em 0 4em; background: transparent; color: #0E2347; border-top: 0.3em solid var(--mark); }

/* Cards */
.poster--cards .poster__head { padding: 7em 7em 6em; background: var(--p); color: var(--p-ink); border-bottom: 1.4em solid var(--a); }
.poster .poster__cards { flex: 1 1 auto; display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 4em; }
.poster .poster__card {
    display: flex; flex-direction: column; justify-content: center;
    padding: 4em; border-radius: 1.8em; background: #F3F6FB; border-top: 1.2em solid var(--mark);
}
.poster .poster__card h2 {
    margin: 0 0 0.25em; color: var(--strong); font-family: var(--head-font); font-weight: var(--head-weight);
    font-size: calc(8em * var(--head-size)); line-height: 1; overflow-wrap: normal;
    text-transform: uppercase;
}
.poster .poster__card p { margin: 0; font-size: 3.6em; line-height: 1.3; }

/* Event */
.poster--event { background: var(--p); color: var(--p-ink); }
.poster--event .poster__head { padding: 9em 8em 3em; }
.poster--event .poster__kicker { display: inline-block; padding: 0.35em 0.9em; border-radius: 999px; background: var(--a); color: var(--a-ink); }
.poster--event .poster__headline { font-size: calc(15em * var(--head-size)); }
.poster--event .poster__body { padding: 3em 8em 5em; }
.poster .poster__panel { padding: 3em 5em; border-radius: 2.4em; background: #FFFFFF; color: #0E2347; box-shadow: 0 1em 3em rgba(14, 35, 71, 0.25); }
.poster .poster__rows { margin: 0; }
.poster .poster__rows > div { display: grid; grid-template-columns: 34% 1fr; gap: 3em; align-items: baseline; padding: 2.2em 0; border-bottom: 0.2em solid #D8E1EF; }
.poster .poster__rows > div:last-child { border-bottom: 0; }
.poster .poster__rows .poster__row-wide { grid-template-columns: 1fr; }
.poster .poster__rows dt { font-size: 2.6em; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--strong); }
.poster .poster__rows dd { margin: 0; font-size: 3.4em; line-height: 1.3; }
.poster--event .poster__foot { margin: 0 8em; padding: 3em 0 4em; background: transparent; border-top: 0.35em solid var(--a); }

/* Ladder: colour-banded steps, best at the top */
.poster--ladder .poster__head { padding: 7em 7em 6em; background: var(--p); color: var(--p-ink); border-bottom: 1.4em solid var(--a); }
.poster--ladder .poster__body { padding: 5em 7em; }
/* Subgrid keeps every label the width of the longest one, so the steps line up. */
.poster .poster__ladder {
    list-style: none; margin: 0; padding: 0; flex: none;
    display: grid; grid-template-columns: minmax(30%, max-content) minmax(0, 1fr); row-gap: 2.4em;
}
.poster .poster__ladder li {
    grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: stretch;
    border-radius: 1.8em; overflow: hidden; background: #F3F6FB;
}
.poster .poster__step-key {
    display: flex; align-items: center; justify-content: center; padding: 0.2em 0.45em;
    background: var(--band); color: var(--band-ink); white-space: nowrap;
    font-family: var(--head-font); font-weight: var(--head-weight); text-transform: uppercase;
    font-size: calc(8em * var(--head-size)); line-height: 1;
}
.poster .poster__step-text { grid-column: 2; min-width: 0; padding: 0.75em 1.1em; font-size: 3.6em; line-height: 1.3; align-self: center; }
.poster .poster__ladder li > .poster__step-text:first-child { grid-column: 1 / -1; border-left: 0.45em solid var(--band); }
.poster .poster__step-text strong { display: block; color: var(--strong); }
.poster--landscape .poster__ladder { row-gap: 1.6em; grid-template-columns: minmax(22%, max-content) minmax(0, 1fr); }
.poster--landscape .poster__step-key { font-size: calc(6.5em * var(--head-size)); }
.poster--landscape .poster__step-text { font-size: 3.2em; padding: 0.45em 1.1em; }
.poster--dyslexia .poster__step-key { text-transform: none; }
.poster--dyslexia .poster__step-text { line-height: 1.5; }

/* Photo backgrounds: the photo sits under the layout, and every surface becomes a see-through
   wash so text keeps its usual colours. Coloured bands take --tint, white reading areas take --veil. */
.poster .poster__bg { position: absolute; inset: 0; z-index: 0; background: var(--bg-img) var(--bg-pos, 50% 50%) / cover no-repeat; }
.poster--photo .poster__layout { position: relative; z-index: 1; }
.poster--photo.poster--bold .poster__layout,
.poster--photo.poster--event .poster__layout { background: color-mix(in srgb, var(--p) var(--tint), transparent); }
.poster--photo:is(.poster--banner, .poster--cards, .poster--ladder) .poster__body,
.poster--photo.poster--split .poster__main { background: color-mix(in srgb, #FFFFFF var(--veil), transparent); }
.poster--photo:is(.poster--banner, .poster--cards, .poster--ladder) .poster__head,
.poster--photo:is(.poster--banner, .poster--cards, .poster--ladder) .poster__foot,
.poster--photo.poster--split .poster__side { background: color-mix(in srgb, var(--p) var(--tint), transparent); }

/* White-background themes need visible edges */
.poster--light .poster__panel { box-shadow: none; border: 0.3em solid #D8E1EF; }
.poster--light.poster--banner .poster__foot,
.poster--light.poster--cards .poster__foot,
.poster--light.poster--ladder .poster__foot { border-top: 0.3em solid #D8E1EF; }

/* Dyslexia-friendly */
.poster--dyslexia { line-height: 1.45; letter-spacing: 0.02em; }
/* Word shapes in mixed case are easier for dyslexic readers than all capitals. */
.poster--dyslexia .poster__headline,
.poster--dyslexia .poster__card h2 { text-transform: none; }
.poster--dyslexia .poster__list li,
.poster--dyslexia .poster__rows dd,
.poster--dyslexia .poster__card p { line-height: 1.5; }

/* ---------- print ---------- */

@media print {
    html, body.sv { margin: 0 !important; padding: 0 !important; background: #FFFFFF !important; }
    .sv-header, .sv-footer, .sv-skip, .pb-panel, .pb-toolbar { display: none !important; }
    .pb, .pb-stage, .pb-fit { display: block !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: none !important; }
    .pb-scale { width: auto !important; height: auto !important; overflow: visible !important; box-shadow: none !important; }
    .poster { position: static !important; transform: none !important; height: calc(var(--h) * 1mm - 0.5mm) !important; }
    .poster.is-overflowing { outline: 0 !important; }
}

.pb-save { padding: 12px 14px; border: 2px solid var(--sv-line); border-radius: 10px; background: #F5F8FC; }
.pb-save .pb-input { margin-bottom: 8px; }
.pb-save__share { margin: 2px 0 10px; font-size: 0.88rem; }
.pb-save__row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pb-save__row a { font-size: 0.86rem; font-weight: 700; }
#pb-res-status:empty { display: none; }
#pb-res-status.is-error { color: #B71C1C; font-weight: 700; }
.pb-save-guest { margin: 0 0 14px !important; }
