/* Public Pantry controls; the customer poster owns its own A4 design. */
.poster-customise-link { display:none; }
#poster-options { scroll-margin-top:84px; }
.poster-workbench { display:grid; grid-template-columns:310px minmax(0,1fr); gap:36px; align-items:start; margin:30px 0 40px; padding:0; }
.poster-proof { grid-column:2; grid-row:1; min-width:0; }
.poster-proof-bar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; font-size:.85rem; }
.poster-size { color:var(--ink-soft); }
.poster-text-button { border:0; padding:8px 0 8px 12px; min-height:44px; background:none; color:var(--brand); text-decoration:underline; text-underline-offset:.2em; cursor:pointer; font-weight:600; font-size:.85rem; }
.poster-viewport { background:#e5e5db; padding:20px; overflow:auto; max-height:none; }
.poster-viewport:focus-visible { outline:3px solid var(--accent-dark); outline-offset:3px; }
.poster { width:100%; max-width:794px; margin:0 auto; aspect-ratio:794 / 1123; background:#fff; box-shadow:0 4px 12px #27301f24; }
.poster > svg, .poster > img { display:block; width:100%; height:auto; }
.poster-viewport.is-expanded { max-height:850px; }
.poster-viewport.is-expanded .poster { width:794px; max-width:none; }
.poster-proof-note { font-size:.76rem; color:var(--ink-soft); margin:12px 0 0; }
.poster-proof-note span { display:block; }
.poster-options { grid-column:1; grid-row:1; min-width:0; }
.poster-controls, .poster-styles { border:0; padding:0; margin:0; min-width:0; }
.poster-controls > legend { font-family:var(--font-display); font-size:1.5rem; font-weight:700; margin-bottom:22px; }
.poster-styles > legend, .poster-setting > label { font-size:.88rem; font-weight:700; margin-bottom:10px; display:block; }
.poster-style { display:block; position:relative; margin-bottom:8px; cursor:pointer; }
.poster-style input { position:absolute; top:18px; left:12px; margin:0; width:17px; height:17px; accent-color:var(--brand); }
.poster-style > span { display:block; border:1px solid var(--line); border-radius:6px; padding:10px 12px 10px 39px; min-height:64px; background:var(--surface); }
.poster-style:has(input:checked) > span { border-color:var(--brand); background:#eaf0e5; box-shadow:inset 0 0 0 1px var(--brand); }
.poster-style:hover > span { border-color:var(--brand); }
.poster-style input:focus-visible { outline-offset:5px; }
.poster-style strong { font-size:.9rem; display:block; }
.poster-style small { color:var(--ink-soft); font-size:.71rem; display:block; line-height:1.4; margin-top:2px; }
.style-sample { float:right; width:37px; height:43px; background:white; border:1px solid #b4bdae; margin:0 0 0 5px; color:#2d5c40; text-align:center; font:700 15px/25px Arial,sans-serif; }
.style-sample > span { display:block; margin:0 5px; height:9px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; }
.sample-classic { border-top:9px solid #2d5c40; line-height:16px; }
.sample-boutique { outline:1px solid #2d5c40; outline-offset:-4px; font-family:Georgia,serif; }
.sample-bold { background:#2d5c40; color:white; }
.sample-cafe { border-radius:8px; font-family:Georgia,serif; }
.sample-minimal { border-color:transparent; }
.poster-setting { border-top:1px solid var(--line); padding-top:20px; margin-top:20px; }
.poster-setting > label span { font-weight:400; }
.poster-swatches { display:flex; gap:8px; flex-wrap:wrap; }
.colour-swatch { width:44px; height:44px; padding:0; border:5px solid var(--surface); outline:1px solid var(--line); border-radius:50%; background:var(--swatch); font-size:0; cursor:pointer; }
.colour-swatch:hover { outline-color:var(--ink); }
.colour-swatch:focus-visible { outline:3px solid var(--accent-dark); }
.poster-colour-row { display:flex; gap:12px; align-items:center; margin-top:14px; }
.poster-colour-row label { font-size:.82rem; cursor:pointer; }
.poster-colour-row input { width:46px; height:44px; border:1px solid var(--line); padding:3px; background:white; border-radius:4px; cursor:pointer; }
.poster-setting input[type=text] { width:100%; min-height:46px; border:1px solid #999f8e; padding:10px 12px; border-radius:6px; background:white; color:var(--ink); font-size:.94rem; }
.poster-setting input::placeholder { color:#616857; }
.poster-help { font-size:.75rem; line-height:1.5; color:var(--ink-soft); margin:9px 0 0; }
.poster-ink { display:grid; grid-template-columns:20px 1fr; column-gap:9px; margin:20px 0 24px; font-size:.88rem; font-weight:600; cursor:pointer; }
.poster-ink input { width:18px; height:18px; margin:4px 0 0; accent-color:var(--brand); }
.poster-ink span { grid-column:2; font-size:.75rem; color:var(--ink-soft); font-weight:400; }
.poster-actions { display:grid; gap:10px; }
.poster-page .poster-actions .btn { box-shadow:none; border-radius:6px; transform:none; }
.poster-status { font-size:.82rem; line-height:1.5; }
.poster-status:empty { display:none; }
#poster-ready { font-size:.88rem; }
#poster-ready a { cursor:pointer; }
.poster-content { margin-bottom:32px; border-bottom:1px solid var(--line); padding-bottom:18px; }
.poster-content summary { cursor:pointer; font-weight:600; padding:8px 0; }
.poster-content .p-head { max-width:65ch; }
.poster-content .p-head h2 { font-size:1.3rem; }
.poster-content .p-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 28px; margin:24px 0; }
.poster-content .p-name { font-weight:700; }
.poster-content .p-sub, .poster-content .p-credit { font-size:.85rem; }
[hidden] { display:none !important; }
@media screen and (max-width:900px) {
  .poster-workbench { grid-template-columns:270px minmax(0,1fr); gap:24px; }
  .poster-viewport { padding:12px; }
}
@media screen and (max-width:680px) {
  .poster-customise-link { display:inline-block; padding:6px 0; font-weight:600; }
  .poster-workbench { display:flex; flex-direction:column; gap:28px; margin-top:20px; }
  .poster-proof, .poster-options { width:100%; }
  .poster-viewport { padding:10px; }
  .poster-viewport.is-expanded { max-height:75vh; }
  .poster-proof-bar { font-size:.8rem; }
  .poster-controls > legend { margin-bottom:16px; }
  .poster-styles { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .poster-style { margin:0; }
  .poster-style > span { padding:12px 10px 12px 34px; height:100%; min-height:96px; }
  .poster-style input { left:10px; top:18px; }
  .style-sample { display:none; }
  .poster-style small { font-size:.74rem; }
  .poster-content .p-grid { grid-template-columns:1fr; }
}
@media print {
  .no-print { display: none !important; }
  @page { size:A4 portrait; margin:0; }
  html, body { width:210mm !important; margin:0 !important; padding:0 !important; background:white !important; }
  body > :not(main), main > :not(.poster-workbench), .poster-workbench > :not(.poster-proof), .poster-proof > :not(.poster-viewport) { display:none !important; }
  main.wrap, .poster-workbench, .poster-proof, .poster-viewport { display:block !important; width:210mm !important; max-width:none !important; height:auto !important; max-height:none !important; padding:0 !important; margin:0 !important; border:0 !important; overflow:visible !important; background:white !important; }
  .poster, .poster-viewport.is-expanded .poster { width:210mm !important; max-width:none !important; height:296.8mm !important; margin:0 !important; padding:0 !important; box-shadow:none !important; break-inside:avoid; page-break-inside:avoid; }
  .poster > svg, .poster > img { display:block; width:210mm !important; height:296.8mm !important; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}
