/* Heard! Review Room — Phase 1. Tokens come from /assets/css/site.css. */
body.portal{background:var(--ticket);color:var(--ink);font-family:var(--font-body);margin:0;min-height:100vh;display:flex;flex-direction:column}
.pt-top{display:flex;justify-content:space-between;align-items:center;padding:14px var(--pad);background:var(--ink);color:var(--on-ink)}
.pt-top .nav-logo{display:flex;align-items:center;gap:8px;color:var(--on-ink);text-decoration:none}
.pt-top .word{font-family:var(--font-display);font-size:26px;letter-spacing:.02em;text-transform:uppercase}
.pt-room{font-family:var(--font-ticket);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-left:10px;padding-left:12px;border-left:1px solid var(--on-ink-line)}
.pt-who{display:flex;gap:16px;align-items:center;font-size:12px;color:var(--on-ink-soft)}
.pt-link{background:none;border:0;color:var(--brass-deep);font-family:var(--font-ticket);font-size:12px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;padding:0;margin:0 0 14px}
.pt-top .pt-link{color:var(--gold);margin:0}
.pt-main{flex:1;width:min(var(--wrap),100%);margin:0 auto;padding:36px var(--pad) 60px}
.pt-view h1{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4vw,44px);text-transform:uppercase;line-height:1;margin:0 0 12px}
.pt-view h2{font-family:var(--font-display);font-weight:400;font-size:clamp(22px,2.6vw,30px);text-transform:uppercase;line-height:1;margin:0}
.pt-card{max-width:520px;background:var(--white);box-shadow:6px 6px 0 var(--gold);padding:32px}
.pt-card form{display:flex;flex-direction:column;gap:10px;margin:18px 0 10px}
.pt-card label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep)}
.pt-card input{font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--ink);background:var(--ticket)}
.pt-msg{min-height:1.4em;color:var(--brass-deep);font-size:12px}
.note{font-family:var(--font-ticket);font-size:12px;color:var(--ink-mute);line-height:1.5}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-top:20px}
.pt-tile{background:var(--white);box-shadow:5px 5px 0 var(--gold);padding:0;border:0;text-align:left;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;transition:transform .18s var(--ease)}
.pt-tile:hover{transform:translate(-2px,-2px)}
.pt-tile .pt-thumb{aspect-ratio:4/3;background:var(--ink);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pt-tile .pt-thumb img{width:100%;height:100%;object-fit:cover}
.pt-tile .pt-thumb .tk{color:var(--gold);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.pt-tile .pt-tile-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}
.pt-tile h3{font-family:var(--font-display);font-weight:400;font-size:20px;text-transform:uppercase;line-height:1;margin:0}
.pt-tile .tk{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.pt-status{font-family:var(--font-ticket);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:5px 10px;border:1.5px solid currentColor;white-space:nowrap}
.pt-status.in_review{color:var(--brass-deep)}.pt-status.approved{color:#2f6b3a}.pt-status.changes{color:var(--red)}
.pt-asset{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}
@media (max-width:900px){.pt-asset{grid-template-columns:1fr}}
.pt-stage-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px}
.pt-viewer{background:var(--ink);position:relative;min-height:240px;display:flex;align-items:center;justify-content:center;box-shadow:6px 6px 0 var(--gold)}
.pt-viewer img{max-width:100%;max-height:78vh;display:block;cursor:crosshair}
.pt-viewer iframe{width:100%;aspect-ratio:16/9;border:0;display:block}
.pt-viewer object,.pt-viewer .pt-pdf{width:100%;height:78vh;border:0;background:#fff}
.pt-pin{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:var(--gold);color:var(--ink);font-family:var(--font-ticket);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--ink);pointer-events:none}
.pt-pin.ghost{background:var(--white)}
.pt-side{background:var(--white);box-shadow:5px 5px 0 var(--gold);padding:20px;display:flex;flex-direction:column;gap:14px}
.pt-decide-btns{display:flex;gap:10px;margin:8px 0 6px}
.btn-ink{background:var(--ink);color:var(--on-ink)}
.trow-label{font-family:var(--font-ticket);font-size:10px;letter-spacing:.18em;color:var(--brass);font-weight:700;text-transform:uppercase}
.pt-comments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;max-height:44vh;overflow:auto}
.pt-comments li{border-top:1px dashed var(--paper-line);padding-top:8px;font-size:14px;line-height:1.45}
.pt-comments li .tk{font-size:11px;color:var(--brass-deep);letter-spacing:.1em;text-transform:uppercase;display:flex;gap:8px;align-items:center}
.pt-comments li .tk button{background:var(--gold);border:0;font:inherit;font-weight:700;padding:1px 7px;cursor:pointer}
.pt-comments li.studio{background:var(--ticket);padding:8px 10px;border-top:0}
.pt-comment-form{display:flex;flex-direction:column;gap:8px}
.pt-comment-form textarea{font:inherit;font-size:14px;padding:10px 12px;border:1.5px solid var(--ink);background:var(--ticket);resize:vertical}
.pt-comment-form .tk{font-size:11px;color:var(--brass-deep);letter-spacing:.14em;text-transform:uppercase;min-height:1.2em}
.pt-foot{text-align:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);padding:18px;border-top:1px dashed var(--paper-line)}
.pt-empty{font-family:var(--font-ticket);color:var(--ink-mute);padding:20px 0}
.pt-who[hidden],.pt-view[hidden]{display:none!important}

/* round 2 — covers, centering, spacing, pdf pages, lightbox */
.pt-grid.center{grid-template-columns:repeat(auto-fit,minmax(260px,340px));justify-content:center}
.pt-tile .pt-thumb{position:relative}
.pt-tile .pt-thumb .pt-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.pt-tile .pt-thumb .pt-play span{width:54px;height:54px;border-radius:50%;background:rgba(27,27,24,.78);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 0 0 2px var(--gold)}
.pt-tile .pt-thumb img.pt-logo{width:52%;height:auto;object-fit:contain;opacity:.95}
.pt-tile .pt-thumb .pt-station{position:absolute;left:12px;top:12px;font-family:var(--font-ticket);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:3px 8px}
.pt-viewer{display:block;padding:0}
.pt-viewer img{margin:0 auto}
.pt-viewer iframe{aspect-ratio:16/9;height:auto}
.pt-viewer-tools{display:flex;justify-content:flex-end;margin:16px 0 4px}
.pt-viewer-tools .pt-link{margin:0}
#viewer-hint{margin:6px 0 0}
.pt-pages{display:flex;flex-direction:column;gap:18px;padding:18px;background:var(--ink)}
.pt-page{position:relative;background:#fff;box-shadow:0 0 0 1px var(--paper-line)}
.pt-page img{width:100%;height:auto;display:block;cursor:crosshair;max-height:none}
.pt-page .pt-page-no{position:absolute;right:10px;top:10px;font-family:var(--font-ticket);font-size:10px;letter-spacing:.18em;background:var(--ink);color:var(--gold);padding:3px 8px}
.pt-pin{z-index:2}
.pt-lightbox{position:fixed;inset:0;background:rgba(27,27,24,.96);z-index:50;display:flex;flex-direction:column;color:var(--on-ink)}
.pt-lightbox[hidden]{display:none!important}
.pt-lb-bar{display:flex;justify-content:space-between;align-items:center;padding:12px var(--pad);border-bottom:1px solid var(--on-ink-line)}
.pt-lb-bar .tk{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.pt-lb-ctrls{display:flex;gap:8px;align-items:center}
.pt-lb-ctrls button{background:var(--gold);color:var(--ink);border:0;font:inherit;font-weight:700;width:36px;height:36px;cursor:pointer;font-size:18px;line-height:1}
.pt-lb-ctrls #lb-fit{width:auto;padding:0 14px;font-family:var(--font-ticket);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.pt-lb-ctrls #lb-close{background:transparent;color:var(--on-ink);font-size:26px}
.pt-lb-stage{flex:1;overflow:hidden;position:relative;cursor:grab;touch-action:none}
.pt-lb-stage.dragging{cursor:grabbing}
.pt-lb-stage img{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;user-select:none;-webkit-user-drag:none}
.pt-lb-hint{text-align:center;color:var(--on-ink-soft);padding:8px}


.pt-notice{background:var(--ticket);border:1.5px solid var(--ink);border-left:6px solid var(--red);padding:10px 14px;font-size:14px;margin:0 0 16px}
