.works-view {
  --works-cyan: var(--cyan);
}

.works-heading {
  display: grid;
  gap: 14px;
  margin-bottom: 14px;
}

.works-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.works-title-row h2 {
  margin: 0 12px 0 0;
  font-size: 24px;
}

.works-tabs,
.works-bulk-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.works-tabs {
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel2);
}

.works-tabs button {
  min-height: 34px;
  border: 0;
  border-radius: 6px;
  padding: 0 14px;
  background: transparent;
  color: var(--muted);
}

.works-tabs button:not(:disabled):hover {
  color: var(--text);
  background: rgb(255 255 255 / 5%);
}

.works-tabs button.active {
  color: var(--text);
  background: rgb(53 210 180 / 14%);
  box-shadow: inset 0 0 0 1px rgb(53 210 180 / 24%);
}

.works-tabs button:disabled { opacity: .42; }

.works-date-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.works-date-filter input {
  width: auto;
  min-height: 34px;
}

.works-bulk-bar {
  min-height: 50px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
}

.works-bulk-bar strong {
  margin-right: 8px;
  color: var(--soft);
  font-size: 13px;
}

.works-bulk-bar .danger-link {
  min-height: 36px;
  border: 1px solid rgb(255 109 125 / 22%);
  background: var(--danger-soft);
}

.works-day {
  margin-bottom: 34px;
}

.works-day-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.works-day-head h3 {
  margin: 0;
  font-size: 17px;
  line-height: 1.3;
}

.works-day-head h3 span {
  margin-left: 9px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgb(53 210 180 / 12%);
  color: var(--works-cyan);
  font-size: 12px;
  font-weight: 500;
}

.works-select-day {
  min-height: 34px;
  border: 1px solid rgb(53 210 180 / 32%);
  border-radius: 999px;
  padding: 0 12px;
  color: var(--works-cyan);
  background: rgb(53 210 180 / 9%);
}

.works-select-day:hover {
  border-color: rgb(53 210 180 / 56%);
  background: rgb(53 210 180 / 15%);
}

.works-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(176px, 1fr));
  gap: 14px;
}

.work-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 9 / 16;
  min-height: 260px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #050812;
  box-shadow: 0 12px 34px rgb(0 0 0 / 20%);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.work-card:hover,
.work-card:focus-within {
  transform: translateY(-2px);
  border-color: var(--line-strong);
  box-shadow: 0 18px 44px rgb(0 0 0 / 28%);
}

.work-card video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background:
    radial-gradient(circle at 50% 20%, rgb(76 154 255 / 20%), transparent 34%),
    #050812;
  cursor: pointer;
}

.work-cover-state {
  position: absolute;
  z-index: 1;
  inset: 58% 10px auto;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
  pointer-events: none;
}

.work-cover-state.error { color:var(--danger); }

.work-play-error {
  position: absolute;
  z-index: 4;
  right: 9px;
  bottom: 9px;
  left: 9px;
  margin: 0;
  padding: 7px 8px;
  border: 1px solid rgb(217 91 114 / 35%);
  border-radius: 6px;
  background: rgb(255 247 249 / 94%);
  color: var(--danger);
  font-size: 11px;
  line-height: 1.35;
  text-align: center;
}

.work-review-reason {
  position:absolute;
  z-index:2;
  top:42px;
  right:9px;
  left:42px;
  display:-webkit-box;
  max-height:38px;
  padding:5px 7px;
  overflow:hidden;
  border:1px solid rgb(255 109 125 / 28%);
  border-radius:6px;
  background:rgb(5 8 18 / 76%);
  color:#ffb0b8;
  font-size:11px;
  line-height:1.35;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.work-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 40%;
  pointer-events: none;
  background: linear-gradient(180deg, transparent, rgb(5 8 18 / 84%));
}

.work-play-state {
  position: absolute;
  z-index: 1;
  inset: 50% auto auto 50%;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgb(255 255 255 / 34%);
  border-radius: 50%;
  background: rgb(3 7 13 / 64%);
  color: #fff;
  font-size: 20px;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: opacity .16s ease, transform .16s ease;
}

.work-card.playing .work-play-state {
  opacity: 0;
  transform: translate(-50%, -50%) scale(.86);
}

/* Keep the play affordance outside the action drawer once a card is hovered. */
.work-card:hover .work-play-state,
.work-card:focus-within .work-play-state {
  top: 29%;
}

.work-select {
  position: absolute;
  z-index: 3;
  top: 10px;
  left: 10px;
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: var(--works-cyan);
  box-shadow: 0 0 0 3px rgb(0 0 0 / 38%);
}

.work-score {
  position: absolute;
  z-index: 3;
  top: 9px;
  right: 9px;
  max-width: calc(100% - 50px);
  min-height: 24px;
  border: 1px solid rgb(255 255 255 / 18%);
  border-radius: 999px;
  padding: 4px 8px;
  overflow: hidden;
  background: rgb(5 8 18 / 72%);
  color: var(--soft);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
  backdrop-filter: blur(8px);
}

.work-score.featured {
  border-color: rgb(67 207 159 / 42%);
  color: var(--success);
}

.work-score.needs {
  border-color: rgb(233 189 101 / 42%);
  color: #f0cb78;
}

.work-score.rejected {
  border-color: rgb(255 109 125 / 42%);
  color: var(--danger);
}

.work-actions {
  position: absolute;
  z-index: 2;
  inset: auto 8px 8px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 8px;
  border: 1px solid rgb(255 255 255 / 9%);
  border-radius: var(--radius);
  background: rgb(8 12 18 / 88%);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .16s ease, transform .16s ease;
}

.work-card:hover .work-actions,
.work-card:focus-within .work-actions {
  opacity: 1;
  transform: translateY(0);
}

.work-actions button,
.work-actions a {
  min-width: 0;
  min-height: 32px;
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: 6px;
  padding: 7px 5px;
  overflow: hidden;
  background: rgb(255 255 255 / 5%);
  color: #edf4ff;
  font-size: 12px;
  text-align: center;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.work-actions button:hover,
.work-actions a:hover {
  border-color: rgb(76 154 255 / 42%);
  background: rgb(76 154 255 / 14%);
}

.work-actions .delete {
  color: #ff9ba6;
}

.work-actions .delete:hover {
  border-color: rgb(255 109 125 / 34%);
  background: rgb(255 109 125 / 14%);
}

.works-bulk-message {
  width: 100%;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.works-empty {
  padding: 72px 20px;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  background: var(--panel2);
  color: var(--muted);
  text-align: center;
}

.work-info-dialog {
  width: min(610px, calc(100vw - 28px));
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  color: var(--text);
  box-shadow: 0 24px 80px rgb(0 0 0 / 60%);
}

.works-compare-dialog {
  width:min(1180px,calc(100vw - 28px));
  max-height:calc(100vh - 28px);
  padding:0;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  color:var(--text);
  box-shadow:0 24px 80px rgb(0 0 0 / 60%);
}

.works-compare-dialog::backdrop { background:rgb(3 7 13 / 78%); backdrop-filter:blur(4px); }

.works-compare-content {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  padding:18px;
}

.work-compare-item { min-width:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--panel2); }
.work-compare-item video { display:block; width:100%; aspect-ratio:9/16; max-height:52vh; object-fit:contain; background:#050812; }
.work-compare-item dl { display:grid; gap:0; margin:0; padding:10px 12px 4px; }
.work-compare-item dl div { display:grid; grid-template-columns:58px minmax(0,1fr); gap:8px; padding:6px 0; border-bottom:1px dashed var(--line); }
.work-compare-item dt { color:var(--muted); }
.work-compare-item dd { min-width:0; margin:0; overflow-wrap:anywhere; text-align:right; }
.work-compare-item pre { max-height:130px; margin:10px 12px 12px; padding:10px; overflow:auto; border:1px solid var(--line); border-radius:6px; background:#0c131c; color:var(--soft); font:inherit; font-size:12px; line-height:1.55; white-space:pre-wrap; }

.work-info-dialog::backdrop {
  background: rgb(3 7 13 / 72%);
  backdrop-filter: blur(4px);
}

.work-info-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--line);
}

.work-info-head h3 {
  margin: 0 0 5px;
}

.work-info-head p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.work-info-close {
  flex: none;
  width: 36px;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: var(--panel2);
  color: var(--muted);
  font-size: 22px;
}

.work-info-close:hover {
  color: var(--text);
  background: var(--panel3);
}

.work-info-body {
  margin: 20px 24px 24px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel2);
}

.work-info-row {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr);
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px dashed var(--line);
}

.work-info-row:last-of-type { border-bottom: 0; }

.work-info-row span {
  color: var(--muted);
}

.work-info-row strong {
  overflow-wrap: anywhere;
  text-align: right;
}

.work-prompt-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 14px 0 8px;
  color: var(--muted);
}

.work-prompt-head button {
  min-height: 30px;
  border: 1px solid rgb(233 189 101 / 30%);
  border-radius: 999px;
  padding: 0 10px;
  color: #f0cb78;
  background: rgb(233 189 101 / 10%);
}

.work-prompt {
  max-height: 230px;
  overflow: auto;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #0c131c;
  color: #eef3ff;
  font: inherit;
  line-height: 1.65;
  white-space: pre-wrap;
}

.works-loading {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 176px));
  gap: 14px;
  align-items: center;
  min-height: 320px;
}

.works-loading span {
  display: block;
  aspect-ratio: 9 / 16;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(100deg, #0b111a 25%, #111b27 42%, #0b111a 60%);
  background-size: 240% 100%;
  animation: works-loading 1.4s ease infinite;
}

.works-loading p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
}

.works-load-more {
  display: block;
  min-width: 180px;
  margin: 4px auto 28px;
  border: 1px solid var(--line-strong);
  background: var(--panel2);
  color: var(--soft);
}

.works-page-end,
.works-page-message {
  margin: 4px 0 28px;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}

@keyframes works-loading {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}

@media (max-width: 720px) {
  .works-title-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .works-tabs,
  .works-date-filter {
    width: 100%;
  }
  .works-tabs button { flex: 1; }
  .works-date-filter {
    justify-content: space-between;
  }
  .works-date-filter input {
    width: min(190px, 58vw);
  }
  .works-bulk-bar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
  .works-bulk-bar strong {
    grid-column: 1 / -1;
    margin: 0 0 2px;
  }
  .works-bulk-bar button {
    width: 100%;
    min-width: 0;
  }
  .works-day-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .works-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .works-loading {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .works-loading span:nth-child(3) {
    display: none;
  }
  .work-card {
    min-height: 230px;
  }
  .work-actions {
    opacity: 1;
    transform: none;
  }
  .work-actions button,
  .work-actions a {
    min-height: 34px;
    font-size: 11px;
  }
  .work-info-body {
    margin: 16px;
  }
  .works-compare-content { grid-template-columns:1fr; padding:12px; }
  .work-compare-item video { max-height:58vh; }
  .work-info-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .work-info-row strong {
    text-align: left;
  }
}
