.pu{color:#142640;font-size:14px;line-height:1.5}.pu[hidden],.pu [hidden]{display:none!important}.pu *{box-sizing:border-box}.pu h2,.pu h3,.pu p{margin:0}.pu h2{font-size:24px;color:#142640}.pu h3{font-size:16px;color:#142640}.pu small,.pu .pu-muted{color:#526984}.pu button,.pu input,.pu select,.pu textarea{font:inherit}.pu button,.pu .pu-link{border:1px solid #d9e5f4;color:#234267;background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font-weight:600}.pu button:hover,.pu .pu-link:hover{background:#edf4ff}.pu button:disabled{opacity:.5;cursor:default}.pu button.pu-primary{background:#185ced;border-color:#185ced;color:#fff}.pu button.pu-primary:hover{background:#114fce}.pu button.pu-text{border:0;background:none;color:#175bcc;padding:4px}.pu button.pu-danger{color:#ac3545}.pu a{color:#175bcc;text-decoration:none}.pu input:not([type=checkbox]),.pu select,.pu textarea{min-width:0;border:1px solid #dce6f3;border-radius:8px;color:#234267;background:#f6f9fd;padding:8px 10px}.pu input[type=checkbox]{accent-color:#185ced}.pu :focus-visible{outline:2px solid #326cf5;outline-offset:2px}.pu-head,.pu-line,.pu-actions,.pu-dialog-head,.pu-footer{display:flex;align-items:center;gap:10px}.pu-head,.pu-line,.pu-dialog-head,.pu-footer{justify-content:space-between}.pu-head{margin-bottom:16px}.pu-actions{flex-wrap:wrap}.pu-panel{min-width:0;border:1px solid #dfe9f5;border-radius:12px;background:white;overflow:hidden}.pu-pad{padding:14px 15px}.pu-library{display:grid;grid-template-columns:170px minmax(0,1fr);gap:15px}.pu-dirs{align-self:start;padding:12px}.pu-dirs button{width:100%;border:0;margin-top:3px;text-align:left}.pu-dirs button.active,.pu-tabs button.active{background:#eaf2ff;color:#1855bd}.pu-table{overflow:auto}.pu table{border-collapse:collapse;width:100%;text-align:left;min-width:560px}.pu th,.pu td{padding:10px 12px;border-bottom:1px solid #e9eff7}.pu th{background:#f0f5fc;color:#415e81;font-size:12px;white-space:nowrap}.pu td .pu-actions{gap:5px 8px}.pu-caption{min-width:0;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.pu-footer{padding:11px 15px;color:#506987;flex-wrap:wrap}.pu-tag{display:inline-flex;padding:3px 8px;border-radius:5px;background:#edf3fc;color:#375577;font-size:12px;white-space:nowrap}.pu-tag.ok{background:#e5f6ee;color:#12674d}.pu-tag.wait{background:#fff2db;color:#8f4e00}.pu-tag.info{background:#e9f1ff;color:#1458c5}.pu-tag.fail{background:#ffebed;color:#ae3348}.pu-tabs{display:flex;gap:9px;margin-bottom:14px;border-bottom:1px solid #dce7f5;padding-bottom:9px}.pu-tabs button{border:0}.pu-guide,.pu-message{background:#f2f7ff;border:1px solid #dce8fa;border-radius:8px;padding:10px 12px;color:#405e82}.pu-message{margin:0 0 10px}.pu-message.error{background:#fff2f2;color:#a31e38;border-color:#f5ccd0}.pu-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.pu-stat{padding:10px 13px;background:#f5f8fe;border:1px solid #e5edf9;border-radius:9px;color:#496481}.pu-stat b{display:block;color:#17365e;font-size:21px;font-variant-numeric:tabular-nums}.pu-review{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:14px}.pu-review aside h3,.pu-review aside p{margin-bottom:9px}.pu-review aside .pu-proof{margin:9px 0}.pu dialog{padding:0;width:min(1060px,calc(100% - 24px));max-height:calc(100dvh - 24px);border:0;border-radius:16px;background:#fff;color:#142640;box-shadow:0 24px 80px #18365d4a}.pu dialog::backdrop{background:#0a163670}.pu dialog.narrow{width:min(820px,calc(100% - 24px))}.pu-dialog-head{padding:14px 18px;border-bottom:1px solid #e4edf8}.pu-dialog-head h3{font-size:20px}.pu-dialog-body{padding:14px 18px}.pu-dialog-foot{border-top:1px solid #e4edf8}.pu-dialog-body .pu-message{margin-top:0}.pu-upload{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;background:#f2f7ff;border:1px dashed #8ab5fa;border-radius:8px;margin:10px 0}.pu-upload input{max-width:100%}.pu-scroll{max-height:300px;overflow:auto}.pu-wizard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.pu-wizard .pu-panel{padding:13px}.pu-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 14px}.pu-form label{display:grid;gap:4px;color:#3e5d80;font-weight:600}.pu-form label:first-child{grid-column:span 2}.pu-proof{border:1px solid #e0e9f5;border-radius:8px;padding:8px;margin:8px 0}.pu-proof summary{cursor:pointer;color:#1a3d63;font-weight:650}.pu-proof label{display:grid;gap:3px;margin-top:8px}.pu-proof img,.pu-media img{max-width:100%;max-height:240px}.pu-media{display:flex;gap:8px;flex-wrap:wrap}.pu-media video{width:min(100%,600px);max-height:420px}.pu-review .pu-media img{width:60px;height:60px;object-fit:contain;background:#eef3fa}.pu-proof-value{overflow-wrap:anywhere;white-space:pre-wrap}.pu-classic{margin:0 0 12px}.pu-classic:empty{display:none}
@media(max-width:1000px){.pu-library,.pu-review{grid-template-columns:1fr}.pu-dirs{display:flex;gap:4px;overflow:auto}.pu-dirs h3{display:none}.pu-dirs button{white-space:nowrap;width:auto}}
@media(max-width:650px){.pu-head,.pu-line,.pu-dialog-head,.pu-footer,.pu-upload{align-items:flex-start;flex-wrap:wrap}.pu-summary{grid-template-columns:repeat(2,1fr)}.pu-wizard{grid-template-columns:1fr}.pu-dialog-body{padding:12px}.pu .pu-caption{max-width:23ch}.pu table{min-width:530px}.pu input:not([type=checkbox]){max-width:100%}}

/* 素材管理的卡片布局。列数跟随内容区宽度，包括后台侧栏占位。 */
#posterUnifiedMaterials .pu-gallery {
  container: poster-gallery / inline-size;
  background: #f5f8fd;
  border-block: 1px solid #e7eef8;
  padding: 12px 14px 14px;
}
.pu-gallery-bar {
  margin-bottom: 10px;
  color: #496481;
  font-size: 13px;
}
.pu-gallery-bar label, .pu-card-foot {
  display: flex;
  align-items: center;
  gap: 5px;
}
:is(#posterUnifiedMaterials,#posterUnifiedDistribution) .pu-gallery input[type=checkbox] {
  flex: none;
  width: 15px;
  height: 15px;
  margin: 0;
  cursor: pointer;
}
.pu-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.pu-card {
  min-width: 0;
  padding: 7px 7px 5px;
  border: 1px solid #dce7f5;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 1px 2px #17366108;
}
.pu-card:has(input:checked) {
  border-color: #3975ee;
  box-shadow: 0 0 0 1px #3975ee;
}
:is(#posterUnifiedMaterials,#posterUnifiedDistribution) .pu-card-media {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  aspect-ratio: 8 / 5;
  gap: 4px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: none;
}
:is(#posterUnifiedMaterials,#posterUnifiedDistribution) .pu-card-media.pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.pu-card-slot {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border-radius: 5px;
  background: #eef3f9;
  color: #526984;
  font-size: 11px;
  line-height: 1.3;
}
.pu-card-slot img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #eef3f9;
}
.pu-card-video {
  align-content: center;
  gap: 6px;
  font-size: 13px;
}
.pu-card-video span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #185ced;
  color: #fff;
}
.pu-card-more {
  position: absolute;
  right: 5px;
  bottom: 5px;
  border-radius: 4px;
  padding: 1px 5px;
  background: #142640d9;
  color: #fff;
  font-size: 11px;
}
.pu-card-title {
  display: block;
  margin: 7px 1px 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
}
.pu-card-foot {
  min-width: 0;
  padding: 0 1px;
  font-size: 12px;
}
.pu-card-foot .pu-tag {
  font-size: 11px;
  padding: 2px 4px;
}
.pu-card-count {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  color: #526984;
}
:is(#posterUnifiedMaterials,#posterUnifiedDistribution) .pu-card-foot .pu-text {
  flex: none;
  padding: 4px 1px;
  white-space: nowrap;
}
#posterUnifiedMaterials .pu-gallery-empty {
  padding: 22px 0 26px;
  text-align: center;
}
@media (min-width: 1001px) and (min-height: 620px) {
  .pu-library-main {
    display: flex;
    flex-direction: column;
    max-height: max(420px, calc(100dvh - 170px));
  }
  #posterUnifiedMaterials .pu-gallery {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding-inline: 0;
  }
  .pu-library-main > .pu-line, .pu-library-main > .pu-footer { flex: none; }
  .pu-gallery-bar { padding-inline: 14px; }
  .pu-card-grid { overflow-y: auto; padding: 1px 14px 2px; }
}
@container poster-gallery (width < 305px) {
  .pu-card-grid { grid-template-columns: minmax(0, 1fr); }
}
@container poster-gallery (width >= 500px) {
  .pu-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@container poster-gallery (width >= 665px) {
  .pu-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@container poster-gallery (width >= 835px) {
  .pu-card-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

#posterUnifiedDistribution .pu-create {
  width: min(1380px, calc(100% - 28px));
  overflow: hidden;
}
.pu-create[open] {
  display: flex;
  flex-direction: column;
}
.pu-create > .pu-dialog-head, .pu-create > .pu-dialog-foot { flex: none; }
.pu-create > .pu-dialog-body {
  min-height: 0;
  overflow: auto;
}
.pu-create .pu-wizard {
  grid-template-columns: minmax(0, 1fr) minmax(305px, 31%);
}
.pu-create .pu-picker [data-form] {
  margin-top: 8px;
  margin-bottom: 10px;
}
.pu-picker-gallery {
  container: poster-gallery / inline-size;
  background: #f5f8fd;
  border: 1px solid #e7eef8;
  border-radius: 9px;
}
.pu-picker-gallery .pu-picks {
  max-height: clamp(220px, 54dvh, 575px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px;
  scrollbar-gutter: stable;
}
.pu-picker-gallery .pu-gallery-empty {
  grid-column: 1 / -1;
  padding: 24px 10px;
  text-align: center;
}
.pu-picker-foot {
  flex-wrap: wrap;
  margin-top: 9px;
}
.pu-picker-foot p {
  flex: 1 1 220px;
  font-size: 12px;
}
.pu-picker-title {
  display: flex;
  align-items: baseline;
  gap: 5px;
}
.pu-picker-title .pu-card-title {
  flex: 1;
  min-width: 0;
}
#posterUnifiedDistribution .pu-picker-title .pu-text {
  flex: none;
  padding: 0 1px;
  font-size: 12px;
}
.pu-picker .pu-card-foot {
  min-height: 24px;
  gap: 4px;
}
.pu-picker .pu-card-count {
  font-size: 11px;
}
.pu-picker-status {
  position: absolute;
  top: 5px;
  left: 5px;
  padding: 2px 5px;
  border-radius: 4px;
  background: #fff2db;
  color: #8f4e00;
  font-size: 11px;
}
.pu-create .pu-form > label, .pu-create [data-step] input { min-width: 0; }
.pu-create .pu-proof summary { overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .pu-create .pu-wizard { grid-template-columns: minmax(0, 1fr); }
  .pu-picker-gallery .pu-picks { max-height: min(42dvh, 400px); }
}
@media (max-width: 650px) {
  #posterUnifiedDistribution .pu-create { width: calc(100% - 16px); }
  .pu-create .pu-wizard > .pu-panel { padding: 10px; }
  .pu-create > .pu-dialog-foot { padding: 9px 12px; }
  .pu-picker-gallery .pu-picks { gap: 8px; }
}

.pu-picker-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 12px;
  margin-bottom: 10px;
}
.pu-picker-controls .pu-actions { gap: 6px; }
#posterUnifiedDistribution .pu-picker-controls button {
  min-height: 34px;
  padding: 5px 10px;
  font-size: 13px;
}
#posterUnifiedDistribution .pu-picker-controls [aria-pressed="true"] {
  border-color: #a6c2ff;
  background: #eaf2ff;
  color: #1855bd;
}
.pu-picker-controls label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  white-space: nowrap;
  cursor: pointer;
  color: #405e82;
  font-size: 13px;
}
.pu-picker-controls label:has(:disabled) { opacity: .55; cursor: default; }

/* 图文分发 · 方案 02：单行紧凑审核 */
.pu-review-compact .pu-review-head{min-height:62px;padding-inline:18px;flex-wrap:wrap;gap:9px}
.pu-review-title{display:flex;align-items:center;gap:9px}
.pu-review-title span{border-radius:20px;padding:3px 8px;background:#edf3fc;color:#466487;font-size:11px;font-weight:650;white-space:nowrap}
.pu-review-head .pu-actions{gap:7px}
.pu-review-head select[data-change=campaign]{max-width:min(32vw,220px)}
.pu .pu-review-scroll table{min-width:1080px;table-layout:fixed;font-size:13px}
.pu .pu-review-scroll th,.pu .pu-review-scroll td{padding:0 12px;white-space:nowrap;overflow:hidden}
.pu .pu-review-scroll th{height:39px}
.pu .pu-review-scroll td{height:53px;vertical-align:middle}
.pu .pu-review-scroll :is(th,td):first-child{padding-left:18px}
.pu .pu-review-scroll :is(th,td):last-child{padding-right:18px;text-align:right}
.pu-review-scroll tr:nth-child(even){background:#f8fafd}
.pu-review-scroll tbody tr:hover,.pu-review-scroll tbody tr:focus-within{background:#eef5ff}
.pu-review-name,.pu-review-text .pu-review-excerpt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pu-review-name{display:block}
.pu-review-text{display:flex;align-items:center;min-width:0;gap:8px}
.pu-review-text a{flex:none;font-weight:600}
.pu-review-text a:hover,.pu-review-field a:hover{text-decoration:underline}
.pu .pu-review-text .pu-review-excerpt{border:0;background:transparent;border-radius:3px;min-width:0;padding:3px 1px;color:#253e5f;font-weight:400;text-align:left}
.pu .pu-review-text .pu-review-excerpt:hover{color:#174da8}
.pu-review-thumbs{display:flex;gap:5px;overflow-x:auto;align-items:center;scrollbar-width:thin;padding:2px}
.pu .pu-review-thumb{position:relative;isolation:isolate;display:grid;place-items:center;flex:none;width:34px;height:34px;padding:0;border-radius:6px;overflow:hidden;background:#eff4fb}
.pu .pu-review-thumb:hover{border-color:#2165de}
.pu-review-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}
.pu-review-thumb-fallback{font-size:11px;color:#546c8d}
.pu-review-thumb b{position:absolute;bottom:2px;left:2px;min-width:11px;padding:0 2px;background:#15243ae8;color:white;border-radius:3px;font-size:9px;line-height:12px;text-align:center}
.pu-review-status{display:inline-flex;gap:5px;align-items:center;color:#546b89;font-size:12px;font-weight:620;white-space:nowrap}
.pu-review-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pu-review-status.ok{color:#12674d}.pu-review-status.wait{color:#89500a}.pu-review-status.fail{color:#ac3545}.pu-review-status.info{color:#2758a6}
.pu-review-money{font-variant-numeric:tabular-nums;font-weight:650}
.pu-review-ops,.pu-review-payout{display:flex;align-items:center;gap:5px}
.pu-review-ops{justify-content:flex-end}
.pu .pu-review-ops button,.pu .pu-review-payout button{padding:4px 7px;min-height:30px;font-size:12px;white-space:nowrap}
.pu .pu-review-no,.pu .pu-review-refresh{background:transparent;border-color:transparent;color:#a43a32}
.pu .pu-review-yes{background:#eaf2ff;border-color:#d6e5ff;color:#174da8}
.pu .pu-review-payout .pu-review-refresh{padding-inline:2px;font-size:16px;color:#175bcc}
.pu-review-footer{min-height:45px;padding:9px 18px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#526984;font-size:12px}
.pu-review-tip{position:fixed;z-index:1000;width:min(442px,calc(100vw - 16px));max-height:min(45dvh,320px);overflow:auto;box-sizing:border-box;padding:12px 14px;border:1px solid #cbd9ec;border-radius:9px;background:#fff;box-shadow:0 8px 24px #152b5129;color:#253e5f;font-size:13px;line-height:1.55}
.pu-review-tip-title,.pu-review-field strong{display:block;color:#47668b;font-size:12px}
.pu-review-field{margin-top:8px}.pu-review-field>div{white-space:pre-wrap;overflow-wrap:anywhere}.pu-review-field a{color:#175bcc}
.pu dialog.pu-review-dialog{width:min(480px,calc(100% - 24px))}
.pu-review-dialog .pu-dialog-body label{display:block;margin:10px 0 4px;font-weight:650}
.pu-review-dialog textarea{display:block;width:100%;resize:vertical}
.pu-review-dialog .pu-dialog-foot{justify-content:flex-end}
.pu .pu-media img{object-fit:contain}
@media(max-width:720px){
  .pu-review-compact .pu-review-head{padding-inline:12px}
  .pu-review-footer{padding-inline:12px}
}
.pu-review-submitted{color:#496481;font-variant-numeric:tabular-nums}
.pu dialog.pu-image-viewer{width:max-content;max-width:96vw;max-height:94dvh;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;outline:0}
.pu dialog.pu-image-viewer::backdrop{background:#091323db}
.pu-image-viewer img{display:block;width:auto;height:auto;max-width:96vw;max-height:94dvh;object-fit:contain;cursor:zoom-out}
