.public-ad-band { padding: 36px 24px; background: #fff; border-top: 1px solid #e1e6ed; border-bottom: 1px solid #e1e6ed; }
.public-ad-grid { max-width: 1440px; margin: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.public-ad-grid.single { max-width: 1100px; grid-template-columns: minmax(0, 1fr); }
.public-ad-item { min-width: 0; }
.public-ad-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; margin-bottom: 12px; font-size: 12px; color: #647184; line-height: 1.6; overflow-wrap: anywhere; }
.public-ad-meta span:first-child { font-weight: 700; }
.public-ad-item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 1; object-fit: contain; background: #f2f5f7; border: 1px solid #e1e6ed; }
.public-ad-copy { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 16px; }
.public-ad-copy > div { min-width: 0; }
.public-ad-copy h2 { margin: 0 0 6px; font-size: 20px; line-height: 1.5; text-wrap: balance; overflow-wrap: anywhere; }
.public-ad-copy p { margin: 0; color: #596b7c; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.public-ad-copy > a { flex-shrink: 0; font-size: 14px; color: #2864b8; font-weight: 600; white-space: nowrap; }
.public-ad-copy > a:hover { text-decoration: underline; }
.public-ad-copy > a:focus-visible { outline: 3px solid #83b9ee; outline-offset: 4px; }
.public-ad-preview > header { max-width: 1200px; margin: auto; padding: 24px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; font-size: 16px; }
.public-ad-preview > header a { color: #2864b8; font-size: 14px; }
.public-ad-target { max-width: 1100px; margin: 24px auto; padding: 0 24px; font-size: 14px; color: #596b7c; overflow-wrap: anywhere; }
.ad-editor > header, .ad-management > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ad-form { display: grid; gap: 20px; padding: 24px; }
.ad-form label, .ad-domain-form label { display: grid; gap: 8px; min-width: 0; }
.ad-form input, .ad-form textarea, .ad-management select, .ad-review-form input:not([type=checkbox]), .ad-domain-form input { width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid #cdd7e3; border-radius: 6px; font: inherit; color: #263950; background: #fff; }
.ad-form textarea { resize: vertical; line-height: 1.8; }
.ad-form small { color: #647184; font-size: 12px; line-height: 1.8; }
.ad-form input[type=file]::file-selector-button { padding: 8px 12px; margin-right: 12px; color: #146e67; background: #eef7f5; border: 1px solid #b9d6d0; border-radius: 4px; cursor: pointer; }
.ad-form input[type=file]::file-selector-button:hover { background: #dceee9; }
.ad-form :focus-visible, .ad-domain-form :focus-visible, .ad-review-form :focus-visible { outline: 3px solid #8fcac0; outline-offset: 2px; }
.ad-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ad-actions select { width: auto; }
.ad-management, .ad-domains { margin-top: 24px; }
.ad-admin-row { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: start; gap: 24px; padding: 24px; border-bottom: 1px solid #e1e6ed; }
.ad-admin-row > img { width: 100%; height: auto; aspect-ratio: 3 / 1; object-fit: contain; background: #f2f5f7; border: 1px solid #e1e6ed; }
.ad-image-missing { display: grid; place-items: center; aspect-ratio: 3 / 1; padding: 16px; color: #697789; background: #f2f5f7; border: 1px solid #e1e6ed; font-size: 13px; }
.ad-admin-detail { min-width: 0; }
.ad-admin-meta { display: flex; flex-wrap: wrap; gap: 12px; color: #16736b; font-size: 13px; }
.ad-admin-detail h3 { font-size: 18px; margin: 10px 0; overflow-wrap: anywhere; }
.ad-admin-detail p { color: #596b7c; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.ad-admin-detail small { font-size: 12px; line-height: 1.8; color: #647184; }
.ad-review-form { display: grid; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid #e1e6ed; }
.ad-review-form > button { justify-self: start; }
.ad-review-check { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; line-height: 1.7; }
.ad-review-check input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 2px; }
.ad-pagination { display: flex; align-items: center; justify-content: center; gap: 24px; padding: 24px; font-size: 14px; }
.ad-pagination a { color: #16736b; }
.ad-empty { padding: 24px; color: #647184; font-size: 14px; }
.ad-domain-form { display: flex; align-items: end; gap: 16px; padding: 24px; }
.ad-domain-form label { flex: 1; }
.ad-domain-form button { flex-shrink: 0; }
.ad-domain-row { display: flex; align-items: center; gap: 16px; padding: 16px 24px; border-top: 1px solid #e1e6ed; font-size: 14px; }
.ad-domain-row strong { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.ad-domain-row span { color: #647184; white-space: nowrap; }
@media (max-width: 1100px) { .ad-admin-row { grid-template-columns: 180px minmax(0, 1fr); } .ad-form .platform-form-grid.three { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
  .public-ad-band { padding: 28px 16px; }
  .public-ad-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .public-ad-copy { flex-direction: column; align-items: flex-start; gap: 12px; }
  .public-ad-copy h2 { font-size: 18px; }
  .ad-form, .ad-admin-row, .ad-domain-form { padding: 20px 16px; }
  .ad-form .platform-form-grid { grid-template-columns: minmax(0, 1fr); }
  .ad-admin-row { grid-template-columns: minmax(0, 1fr); }
  .ad-domain-form { flex-direction: column; align-items: stretch; }
  .ad-domain-row { flex-wrap: wrap; padding: 16px; gap: 12px; }
  .ad-domain-row strong { flex-basis: 100%; }
}
