/* Layout rules reused from staging Issue Builder, retrieved 2026-09-14. */
.issue-sheet { position:relative; width:100%; aspect-ratio:10.75 / 8.25; display:grid; grid-template-rows:8.4% minmax(0,1fr) 8.4%; overflow:hidden; border:1px solid var(--template-border,#cfc5b7); border-radius:5px; background:var(--paper); box-shadow:0 13px 35px rgba(54,37,15,.13); }
.sheet-header, .sheet-footer { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; padding:0; background:var(--template-banner,#f3d696); color:var(--template-banner-ink,#4d3414); }
.sheet-header > *, .sheet-footer > * { min-width:0; display:flex; align-items:center; padding:0 5.5%; }
.sheet-header > :nth-child(2), .sheet-footer > :nth-child(2) { border-left:1px dashed rgba(145,97,27,.45); }
.sheet-footer > :nth-child(2) { justify-content:flex-end; }
.sheet-header strong, .sheet-footer strong { font-size:clamp(9px,1.25vw,17px); letter-spacing:.03em; }
.sheet-header span, .sheet-footer span { font-size:clamp(7px,.9vw,11px); font-weight:750; }
.sheet-panel-brand { justify-content:center; background:#fff; }
.sheet-panel-brand img { width:min(82%,330px); max-height:76%; object-fit:contain; }
.slot-grid { position:relative; min-height:0; padding:.85%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(4,minmax(0,1fr)); gap:.65%; background:#fff; }
.slot-grid::after { content:"FOLD"; position:absolute; z-index:5; top:.4%; bottom:.4%; left:50%; border-left:1px dashed rgba(145,97,27,.55); color:rgba(109,73,17,.7); font-size:7px; font-weight:950; letter-spacing:1px; line-height:1; writing-mode:vertical-rl; text-align:right; pointer-events:none; }
.issue-slot { position:relative; min-width:0; min-height:0; overflow:hidden; border:1px solid var(--template-border,#d9d1c5); border-radius:4px; background:#fbfaf8; cursor:pointer; }
.placement-card { width:100%; height:100%; display:grid; grid-template-rows:15% minmax(0,1fr); overflow:hidden; background:#fff; color:#17130f; container-type:inline-size; }
.placement-card-category { display:flex; align-items:center; justify-content:center; padding:0 3%; overflow:hidden; background:var(--template-banner,#f3d696); color:var(--template-banner-ink,#4d3414); font-size:clamp(5px,2.8cqw,9px); font-weight:950; letter-spacing:.08em; text-align:center; white-space:nowrap; }
.placement-card-body { min-height:0; display:grid; grid-template-columns:46% 32% 22%; align-items:stretch; }
.placement-card-logo { min-width:0; display:flex; align-items:center; justify-content:center; padding:3%; overflow:hidden; color:#5b5145; font-size:clamp(6px,4cqw,13px); font-weight:900; line-height:1.05; text-align:center; }
.placement-card-logo img { width:100%; height:100%; display:block; object-fit:contain; }
.placement-card-copy { min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:4% 3%; overflow:hidden; border-left:1px solid #eee8df; text-align:center; }
.placement-card-copy strong { max-width:100%; font-size:clamp(8px,5.2cqw,17px); line-height:1; letter-spacing:-.02em; overflow-wrap:anywhere; }
.placement-card-copy span { margin-top:3%; display:-webkit-box; max-width:100%; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:clamp(5px,3.4cqw,11px); font-weight:800; line-height:1.08; }
.placement-card-copy small { margin-top:3%; max-width:100%; overflow:hidden; font-size:clamp(4px,2.3cqw,7px); line-height:1; white-space:nowrap; text-overflow:ellipsis; }
.placement-card-qr { min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2%; padding:5%; overflow:hidden; border-left:1px solid #eee8df; }
.placement-card-qr img, .placement-card-qr canvas { width:100% !important; max-width:100%; height:auto !important; aspect-ratio:1; display:block; object-fit:contain; background:#fff; }
.placement-card-qr > span { width:100%; aspect-ratio:1; display:grid; place-items:center; border:1px dashed #aaa096; color:#8d847b; font-size:clamp(6px,5cqw,15px); font-weight:900; }
.placement-card-qr small { font-size:clamp(4px,1.9cqw,6px); font-weight:950; line-height:1; white-space:nowrap; }
.issue-slot.empty { cursor:default; background:repeating-linear-gradient(135deg,#faf8f4,#faf8f4 8px,#f4f0ea 8px,#f4f0ea 16px); }
.empty-label { position:absolute; inset:0; display:grid; place-content:center; gap:2px; color:#aaa096; text-align:center; }
.empty-label strong { font-size:clamp(9px,1.05vw,13px); }
.empty-label span { font-size:clamp(7px,.78vw,10px); }
.issue-slot.reserved { background:#fff5df; border-color:#d6a04b; }
.issue-slot.reserved .empty-label { color:#8b5a13; }
.house-ad-card { width:100%; height:100%; display:grid; grid-template-columns:55% 45%; overflow:hidden; background:#fff; color:#082c5b; container-type:inline-size; }
.house-ad-pitch { min-width:0; min-height:0; padding:5% 6%; display:grid; grid-template-rows:minmax(0,1fr) auto; gap:4%; overflow:hidden; text-align:left; }
.house-ad-pitch-main { min-width:0; min-height:0; display:grid; grid-template-columns:29% minmax(0,1fr); align-items:center; gap:7%; }
.house-ad-pitch-main > img { width:100%; max-height:74%; object-fit:contain; }
.house-ad-copy { min-width:0; display:grid; align-content:center; gap:7%; }
.house-ad-copy strong { max-width:100%; font-size:clamp(8px,6.1cqw,20px); font-weight:950; line-height:.9; letter-spacing:-.04em; }
.house-ad-copy span { color:#15933c; font-size:clamp(6px,4cqw,13px); font-weight:900; line-height:1.05; }
.house-ad-pitch > small { width:100%; padding-top:3%; border-top:2px solid #efad00; color:#082c5b; font-size:clamp(4px,2.05cqw,7px); line-height:1.15; }
.house-ad-response { min-width:0; min-height:0; padding:5% 7%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5%; border-left:2px solid #efad00; overflow:hidden; }
.house-ad-qr-frame { box-sizing:border-box; width:min(88%,130px); max-width:100%; max-height:72%; aspect-ratio:1; padding:4%; display:grid; place-items:center; border:clamp(2px,1.25cqw,4px) solid #15933c; border-radius:12%; background:#fff; }
.house-ad-qr-frame img, .house-ad-qr-frame canvas { width:100% !important; max-width:100%; height:auto !important; max-height:100%; aspect-ratio:1; display:block; object-fit:contain; image-rendering:pixelated; }
.house-ad-response > strong { width:100%; padding:7% 4%; border-radius:999px; background:#082c5b; color:#fff; font-size:clamp(5px,2.55cqw,8px); font-weight:950; line-height:1; text-align:center; white-space:nowrap; }
