/* 海報版面（poster_render.js）：設計器、縮圖、列印共用 */
.pr-page { position: relative; overflow: hidden; background: #fff; box-sizing: border-box; flex-shrink: 0; }
.pr-bg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; user-select: none; }
.pr-item { position: absolute; box-sizing: border-box; transform-origin: 50% 50%; }
.pr-image { overflow: hidden; }
.pr-image img { width: 100%; height: 100%; object-fit: fill; display: block; pointer-events: none; user-select: none; }
.pr-text { display: flex; flex-direction: column; overflow: hidden; word-break: break-word; }
.pr-text[style*="vertical-rl"] { flex-direction: row; }
.pr-text-inner { min-width: 0; }
.pr-text-inner p { margin: 0; }
.pr-text-inner h2 { font-size: 1.6em; font-weight: 700; margin: 0 0 .2em; }
.pr-text-inner h3 { font-size: 1.3em; font-weight: 700; margin: 0 0 .2em; }
.pr-text-inner h4 { font-size: 1.1em; font-weight: 700; margin: 0 0 .2em; }
.pr-text-inner ul { list-style: disc; padding-left: 1.4em; margin: 0; }
.pr-text-inner ol { list-style: decimal; padding-left: 1.4em; margin: 0; }
/* 表格：CKEditor 把表格包在 <figure class="table">；網站的 Tailwind 也有 .table（display: table）會讓表格縮成內容寬，
   這裡明確設定，設計器與列印頁看到的寬度才一樣。沒有指定寬度時表格撐滿文字框，欄寬用百分比（拖曳欄線調整） */
.pr-text-inner figure.table { display: block; margin: 0 0 .3em; width: 100%; max-width: 100%; }
.pr-text-inner figure.table[style*="width"] { display: block; }
.pr-text-inner figure.table[style*="float: left"], .pr-text-inner figure.table[style*="float:left"] { float: left; margin-right: .5em; }
.pr-text-inner figure.table[style*="float: right"], .pr-text-inner figure.table[style*="float:right"] { float: right; margin-left: .5em; }
.pr-text-inner table { border-collapse: collapse; width: 100%; }
.pr-text-inner table.ck-table-resized { table-layout: fixed; }
.pr-text-inner td, .pr-text-inner th { border: 1px solid currentColor; padding: .15em .35em; overflow-wrap: anywhere; }
.pr-text-inner blockquote { border-left: 3px solid currentColor; padding-left: .6em; margin: 0; opacity: .85; }
.pr-text-inner hr { border: 0; border-top: 1px solid currentColor; margin: .3em 0; }
.pr-text-inner .text-tiny { font-size: .6em; }
.pr-text-inner .text-small { font-size: .8em; }
.pr-text-inner .text-big { font-size: 1.5em; }
.pr-text-inner .text-huge { font-size: 2.2em; }
.pr-text-inner a { color: inherit; text-decoration: underline; }
.pr-credit { position: absolute; right: 0; bottom: 0; max-width: 100%; padding: .3mm 1.2mm; font: 6.5pt/1.3 'Noto Sans TC', sans-serif; color: #374151; background: rgba(255,255,255,.75); border-top-left-radius: 1mm; pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pr-bg-credit { z-index: 0; }
.pr-missing { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5mm; padding: 2mm; box-sizing: border-box;
    background: repeating-linear-gradient(45deg, #fffbeb, #fffbeb 3mm, #fef3c7 3mm, #fef3c7 6mm); border: .6mm dashed #f59e0b; overflow: hidden; pointer-events: none; }
.pr-missing img { max-width: min(70%, 45mm); max-height: min(60%, 35mm); object-fit: contain; opacity: .85; border-radius: 1mm; }
.pr-missing-text { font: 7pt/1.35 'Noto Sans TC', sans-serif; color: #92400e; text-align: center; }
.pr-missing-text b { display: block; font-size: 8pt; }
.pr-missing-bg { z-index: 0; border-width: 1mm; }
@media print { .pr-missing { display: none !important; } }
.pr-fade { position: absolute; inset: 0; background: #fff; pointer-events: none; }
.pr-bg-fade { z-index: 0; }
.pr-shape { box-sizing: border-box; }
.pr-line { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); height: 0; }
