/* 正式产品页面层：沿用已定稿的深色底座，不覆盖首页贾维斯球体。 */
:root {
  --product-surface: rgba(12, 17, 22, .88);
  --product-surface-soft: rgba(255, 255, 255, .035);
  --product-line: rgba(176, 211, 219, .14);
  --product-line-strong: rgba(93, 198, 224, .38);
  --product-text: #edf5f7;
  --product-muted: #82969d;
  --product-blue: #71c8ff;
  --product-blue-soft: rgba(113, 200, 255, .11);
  --product-green: #80ddc1;
  --product-warn: #e7b76c;
  --product-danger: #ff8f96;
}

.product-page,
.product-delivery {
  width: min(1240px, 100%);
  margin: 0 auto;
  color: var(--product-text);
}

.product-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 24px;
}

.product-page-head h2 {
  margin: 8px 0 7px;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.08;
  letter-spacing: -.055em;
}

.product-page-head p {
  max-width: 650px;
  margin: 0;
  color: var(--product-muted);
  font-size: 13px;
  line-height: 1.75;
}

.product-client-picker {
  display: grid;
  min-width: 250px;
  gap: 7px;
  color: var(--product-muted);
  font-size: 10px;
}

.product-client-picker select,
.delivery-topbar select {
  min-height: 43px;
  padding: 0 38px 0 14px;
  border: 1px solid var(--product-line);
  border-radius: 12px;
  outline: none;
  color: var(--product-text);
  background: #10171d;
}

.product-client-picker select:focus,
.delivery-topbar select:focus {
  border-color: var(--product-blue);
  box-shadow: 0 0 0 3px rgba(113, 200, 255, .12);
}

.product-loading {
  display: grid;
  min-height: 360px;
  place-items: center;
  align-content: center;
  gap: 12px;
  text-align: center;
}

.product-loading i {
  width: 38px;
  height: 38px;
  border: 2px solid rgba(113, 200, 255, .14);
  border-top-color: var(--product-blue);
  border-radius: 50%;
  animation: product-spin .8s linear infinite;
}

.product-loading h2,
.product-loading p { margin: 0; }
.product-loading p { color: var(--product-muted); font-size: 12px; }

/* 六项 IP 定制 */
.product-delivery .delivery-topbar {
  padding: 18px 20px;
  border: 1px solid var(--product-line);
  border-radius: 16px;
  background: var(--product-surface);
}

.product-delivery .delivery-tabs {
  margin: 14px 0 22px;
  padding: 5px;
  border: 1px solid var(--product-line);
  border-radius: 15px;
  background: rgba(7, 11, 15, .72);
}

.product-delivery .delivery-tabs button {
  min-width: 0;
  border-radius: 11px;
}

.product-delivery .delivery-hero {
  min-height: 142px;
  padding: 26px 28px;
  border: 1px solid var(--product-line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 15%, rgba(113, 200, 255, .12), transparent 28%),
    var(--product-surface);
}

.product-delivery-hero h2 {
  margin: 9px 0;
  font-size: clamp(27px, 3vw, 40px);
  letter-spacing: -.05em;
}

.product-delivery-hero p {
  max-width: 720px;
  color: var(--product-muted);
  line-height: 1.75;
}

.stage-workflow {
  position: relative;
  margin: 18px 0;
  padding: 18px 22px 22px;
  overflow: hidden;
  border: 1px solid var(--product-line);
  border-radius: 17px;
  background: linear-gradient(180deg, rgba(16, 23, 29, .92), rgba(8, 13, 18, .92));
}

.stage-workflow header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--product-muted);
  font-size: 11px;
}

.stage-workflow header strong {
  color: var(--product-blue);
  font-weight: 600;
}

.stage-workflow-line {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  margin-top: 25px;
}

.stage-workflow-line::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(113, 200, 255, .52), transparent);
}

.stage-node {
  position: relative;
  z-index: 1;
  min-width: 0;
  text-align: center;
}

.stage-node i {
  display: grid;
  width: 29px;
  height: 29px;
  margin: 0 auto 11px;
  place-items: center;
  border: 1px solid rgba(149, 177, 184, .34);
  border-radius: 50%;
  color: #70848a;
  background: #0d141a;
  font-style: normal;
  font-size: 11px;
}

.stage-node span,
.stage-node small {
  display: block;
  overflow-wrap: anywhere;
}

.stage-node span { font-size: 12px; }
.stage-node small { margin-top: 5px; color: #62767d; font-size: 9px; }
.stage-node.done i { border-color: var(--product-blue); color: #07131a; background: var(--product-blue); }
.stage-node.done small { color: #80a8b2; }
.stage-node.running i {
  border-color: var(--product-blue);
  box-shadow: 0 0 0 6px rgba(113, 200, 255, .09), 0 0 20px rgba(113, 200, 255, .25);
  animation: product-node-pulse 1.6s ease-in-out infinite;
}
.stage-node.running small { color: var(--product-blue); }

.stage-artwork {
  margin-bottom: 18px;
  padding: 22px;
  border: 1px solid var(--product-line);
  border-radius: 17px;
  background: var(--product-surface);
}

.positioning-schemes,
.content-type-grid,
.script-production-grid,
.audience-split {
  display: grid;
  gap: 12px;
}

.positioning-schemes { grid-template-columns: repeat(3, 1fr); }
.content-type-grid { grid-template-columns: repeat(3, 1fr); }
.script-production-grid,
.audience-split { grid-template-columns: repeat(2, 1fr); }

.positioning-schemes article,
.content-type-grid article,
.script-production-grid article,
.audience-split article {
  min-width: 0;
  padding: 19px;
  border: 1px solid var(--product-line);
  border-radius: 14px;
  background: var(--product-surface-soft);
}

.positioning-schemes article {
  display: grid;
  min-height: 132px;
  align-content: space-between;
}

.positioning-schemes article > span {
  color: #678089;
  font: 500 11px "DM Mono", monospace;
}

.positioning-schemes article.selected {
  border-color: var(--product-blue);
  background: var(--product-blue-soft);
  box-shadow: inset 3px 0 var(--product-blue);
}

.positioning-schemes strong,
.content-type-grid strong,
.script-production-grid strong {
  display: block;
  margin: 10px 0 7px;
  line-height: 1.55;
}

.positioning-schemes small,
.content-type-grid small,
.script-production-grid small {
  color: var(--product-muted);
  line-height: 1.55;
}

.audience-split article {
  display: flex;
  align-items: center;
  gap: 16px;
}

.audience-split b {
  display: grid;
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  place-items: center;
  border: 1px solid var(--product-line-strong);
  border-radius: 15px;
  color: var(--product-blue);
  font-size: 23px;
}

.audience-split strong,
.audience-split span { display: block; }
.audience-split span { margin-top: 6px; color: var(--product-muted); font-size: 11px; }

.hammer-switcher {
  display: flex;
  gap: 6px;
  margin-bottom: 18px;
}

.hammer-switcher button,
.video-category-tabs button,
.library-mode-tabs button {
  padding: 9px 15px;
  border: 1px solid var(--product-line);
  border-radius: 30px;
  color: var(--product-muted);
  background: transparent;
}

.hammer-switcher button.active,
.video-category-tabs button.active,
.library-mode-tabs button.active {
  border-color: var(--product-blue);
  color: #061118;
  background: var(--product-blue);
}

.hammer-visual-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.hammer-look {
  position: relative;
  min-width: 0;
}

.hammer-image {
  position: relative;
  display: grid;
  aspect-ratio: 4 / 5;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--product-line);
  border-radius: 15px;
  color: #8ca0a7;
  background:
    radial-gradient(circle at 50% 28%, rgba(113, 200, 255, .30) 0 12%, transparent 12.5%),
    radial-gradient(ellipse at 50% 72%, rgba(113, 200, 255, .18) 0 27%, transparent 27.5%),
    linear-gradient(145deg, #1a232a, #10161b);
}

.hammer-image.generating::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(255,255,255,.02) 25%, rgba(150,219,255,.18) 45%, rgba(255,255,255,.02) 65%);
  background-size: 260% 100%;
  animation: product-shimmer 1.5s linear infinite;
}

.hammer-image b {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  color: #07131a;
  background: var(--product-blue);
}

.hammer-look > strong,
.hammer-look > small { display: block; }
.hammer-look > strong { margin-top: 11px; }
.hammer-look > small { margin-top: 5px; color: var(--product-muted); line-height: 1.5; }

.hammer-copy-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr);
  gap: 13px;
}

.hammer-copy-primary,
.hammer-copy-options article,
.hammer-name-panel article {
  padding: 20px;
  border: 1px solid var(--product-line);
  border-radius: 14px;
  background: var(--product-surface-soft);
}

.hammer-copy-primary {
  display: grid;
  min-height: 190px;
  align-content: center;
}

.hammer-copy-primary > span,
.hammer-copy-primary > strong,
.hammer-copy-primary > p,
.hammer-copy-options small,
.hammer-copy-options strong,
.hammer-name-panel small,
.hammer-name-panel strong,
.hammer-name-panel p { display: block; margin: 0; }

.hammer-copy-primary > span,
.hammer-copy-options small,
.hammer-name-panel small {
  color: var(--product-blue);
  font-size: 10px;
}

.hammer-copy-primary > strong {
  margin: 18px 0 13px;
  font-size: clamp(21px, 2.5vw, 34px);
  line-height: 1.3;
  letter-spacing: -.04em;
}

.hammer-copy-primary > p,
.hammer-name-panel p {
  color: var(--product-muted);
  font-size: 11px;
  line-height: 1.7;
}

.hammer-copy-options {
  display: grid;
  gap: 10px;
}

.hammer-copy-options strong,
.hammer-name-panel strong {
  margin-top: 12px;
  line-height: 1.5;
}

.hammer-name-panel {
  display: grid;
  grid-template-columns: 1.3fr repeat(2, .85fr);
  gap: 13px;
}

.hammer-name-panel article {
  min-height: 150px;
}

.hammer-name-panel article.selected {
  border-color: var(--product-blue);
  background: var(--product-blue-soft);
}

.hammer-name-panel article:first-child strong {
  font-size: 25px;
}

.hammer-name-panel p { margin-top: 12px; }

.topic-loop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.topic-loop > div { flex: 1; min-width: 0; padding: 17px; border-radius: 13px; background: var(--product-surface-soft); }
.topic-loop b,
.topic-loop span,
.topic-loop small { display: block; }
.topic-loop b { color: var(--product-blue); font: 500 10px "DM Mono", monospace; }
.topic-loop span { margin-top: 15px; font-size: 15px; font-weight: 700; }
.topic-loop small { margin-top: 5px; color: var(--product-muted); }
.topic-loop > i { color: #53676e; font-style: normal; }

.product-delivery-layout { align-items: start; }
.product-delivery .delivery-result,
.product-delivery .delivery-control {
  border-color: var(--product-line);
  background: var(--product-surface);
}

/* 视频页 */
.video-auto-route {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid var(--product-line-strong);
  border-radius: 16px;
  background: linear-gradient(100deg, rgba(113, 200, 255, .12), rgba(11, 16, 21, .9) 55%);
}

.video-auto-route strong,
.video-auto-route span { display: block; }
.video-auto-route span { margin-top: 5px; color: var(--product-muted); font-size: 11px; }

.video-mode-tabs {
  gap: 8px;
  padding: 7px;
  border: 1px solid var(--product-line);
  border-radius: 16px;
  background: rgba(7, 11, 15, .72);
}

.video-mode-tabs button {
  min-height: 54px;
  border-radius: 12px;
}

.viral-replica-hero .command-card {
  display: grid;
  align-content: center;
  min-height: 315px;
}

.viral-replica-hero .command-card h2 { margin: 26px 0 12px; }

.video-route-copy {
  position: relative;
  z-index: 1;
  max-width: 560px;
  margin: 0;
  color: #9eb0b5;
  font-size: 12px;
  line-height: 1.7;
}

.video-direct-start {
  position: relative;
  z-index: 1;
  margin-top: 22px;
}

.video-direct-start button {
  min-height: 45px;
  padding: 0 20px;
  border: 0;
  border-radius: 12px;
  color: #061118;
  background: var(--product-blue);
  font-weight: 800;
}

/* 我的视频 */
.library-summary,
.task-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.library-summary > div {
  padding: 15px 17px;
  border: 1px solid var(--product-line);
  border-radius: 13px;
  background: var(--product-surface);
}

.library-summary span,
.library-summary strong { display: block; }
.library-summary span { color: var(--product-muted); font-size: 10px; }
.library-summary strong { margin-top: 8px; font: 600 24px "DM Mono", monospace; }

.video-category-tabs,
.library-mode-tabs {
  display: flex;
  gap: 7px;
  margin-bottom: 16px;
  overflow-x: auto;
}

.video-category-tabs button,
.library-mode-tabs button { white-space: nowrap; }
.video-category-tabs small,
.library-mode-tabs small { margin-left: 4px; }

.delivery-video-list {
  overflow: hidden;
  border: 1px solid var(--product-line);
  border-radius: 17px;
  background: var(--product-surface);
}

.delivery-video-row {
  display: grid;
  grid-template-columns: 142px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  min-height: 132px;
  padding: 16px;
  border-bottom: 1px solid var(--product-line);
}

.delivery-video-row:last-child { border-bottom: 0; }

.delivery-cover {
  position: relative;
  display: grid;
  aspect-ratio: 16 / 9;
  place-items: center;
  overflow: hidden;
  border-radius: 11px;
  color: #a8bbc0;
  background:
    linear-gradient(130deg, rgba(113,200,255,.22), transparent 50%),
    #121c23;
}

.delivery-cover span {
  position: absolute;
  left: 8px;
  top: 8px;
  padding: 4px 7px;
  border-radius: 20px;
  color: #bfd7dd;
  background: rgba(5, 10, 14, .72);
  font-size: 8px;
}

.delivery-cover b { font-size: 20px; }
.delivery-video-copy { min-width: 0; }
.delivery-video-copy small { color: var(--product-muted); }
.delivery-video-copy h3 { margin: 7px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.delivery-video-copy p { margin: 0; color: var(--product-muted); font-size: 11px; line-height: 1.55; }
.delivery-video-copy > div { display: flex; gap: 14px; margin-top: 10px; color: #9ab0b6; font-size: 9px; }

.delivery-video-open,
.asset-tile button,
.knowledge-row button {
  padding: 10px 14px;
  border: 1px solid var(--product-line-strong);
  border-radius: 10px;
  color: var(--product-blue);
  background: var(--product-blue-soft);
  font-size: 11px;
  font-weight: 700;
}

.delivery-video-open:disabled { opacity: .36; cursor: not-allowed; }

.video-preview-dialog { padding: 4px; }
.video-preview-dialog header { padding-right: 36px; }
.video-preview-dialog h2 { margin: 8px 0 18px; }
.video-preview-dialog video {
  display: block;
  width: 100%;
  max-height: 68vh;
  border: 0;
  border-radius: 15px;
  background: #050607;
}
.video-preview-dialog p { margin: 14px 2px 2px; color: var(--product-muted); font-size: 11px; }

/* 资产与知识 */
.asset-category-strip {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  overflow-x: auto;
}

.asset-category-strip span {
  flex: none;
  padding: 8px 11px;
  border: 1px solid var(--product-line);
  border-radius: 9px;
  color: var(--product-muted);
  background: var(--product-surface-soft);
  font-size: 10px;
}

.asset-category-strip b { margin-left: 6px; color: var(--product-text); }

.asset-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
}

.asset-tile {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--product-line);
  border-radius: 15px;
  background: var(--product-surface);
}

.asset-preview {
  display: grid;
  aspect-ratio: 4 / 3;
  place-items: center;
  overflow: hidden;
  border-radius: 11px;
  color: #678089;
  background: #101820;
}

.asset-preview img { width: 100%; height: 100%; object-fit: cover; }
.asset-preview.media-load-failed::after { content: "预览暂不可用"; font-size: 10px; }
.asset-preview.media-load-failed img { display: none; }
.asset-tile > div:nth-child(2) { min-width: 0; padding: 11px 3px; }
.asset-tile small,
.asset-tile strong { display: block; }
.asset-tile small { color: var(--product-blue); font-size: 9px; }
.asset-tile strong { margin-top: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.asset-tile button { width: 100%; }
.library-index-note {
  margin: 14px 2px 0;
  color: var(--product-muted);
  font-size: 10px;
  line-height: 1.6;
}

.knowledge-status {
  display: flex;
  gap: 13px;
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid var(--product-line-strong);
  border-radius: 15px;
  background: var(--product-blue-soft);
}

.knowledge-status > i {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--product-green);
  box-shadow: 0 0 15px rgba(128, 221, 193, .45);
}

.knowledge-status strong,
.knowledge-status p { margin: 0; }
.knowledge-status p { margin-top: 6px; color: var(--product-muted); font-size: 11px; }

.knowledge-list {
  overflow: hidden;
  border: 1px solid var(--product-line);
  border-radius: 15px;
  background: var(--product-surface);
}

.knowledge-row {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--product-line);
}

.knowledge-row:last-child { border-bottom: 0; }
.knowledge-row > i { width: 7px; height: 7px; border-radius: 50%; background: var(--product-blue); }
.knowledge-row strong,
.knowledge-row small { display: block; }
.knowledge-row small { margin-top: 5px; color: var(--product-muted); font-size: 9px; }
.knowledge-history > span {
  padding: 6px 9px;
  border-radius: 20px;
  color: var(--product-warn);
  background: rgba(231, 183, 108, .1);
  font-size: 9px;
}

/* 任务进度 */
.task-stream {
  overflow: hidden;
  border: 1px solid var(--product-line);
  border-radius: 17px;
  background: var(--product-surface);
}

.task-stream-row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 110px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--product-line);
}

.task-stream-row:last-child { border-bottom: 0; }
.task-pulse { display: grid; place-items: center; }
.task-pulse i { width: 9px; height: 9px; border-radius: 50%; background: #617279; }
.task-stream-row.running .task-pulse i { background: var(--product-blue); box-shadow: 0 0 0 6px rgba(113,200,255,.09); animation: product-node-pulse 1.6s infinite; }
.task-stream-row.done .task-pulse i { background: var(--product-green); }
.task-stream-row.blocked .task-pulse i { background: var(--product-warn); }
.task-stream-row small,
.task-stream-row strong,
.task-stream-row p { display: block; margin: 0; }
.task-stream-row small { color: var(--product-muted); font-size: 9px; }
.task-stream-row strong { margin-top: 6px; }
.task-stream-row p { margin-top: 5px; color: #91a3a9; font-size: 11px; }
.task-progress-number { min-width: 135px; text-align: right; }
.task-progress-number strong { color: var(--product-blue); font: 600 18px "DM Mono", monospace; }
.task-progress-number span { display: block; margin-top: 5px; color: #62747a; font-size: 9px; }

/* 弹窗统一为实体面板，去掉磨砂玻璃和粗黑框。 */
.owner-app .modal-backdrop {
  background: rgba(0, 0, 0, .68);
  backdrop-filter: none;
}

.owner-app .modal {
  width: min(920px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  border: 1px solid var(--product-line);
  border-radius: 18px;
  color: var(--product-text);
  background: #11171c;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .45);
  scrollbar-color: #415760 #11171c;
}

.owner-app .modal-close {
  z-index: 2;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--product-line);
  border-radius: 50%;
  color: #b8c8cc;
  background: #171f25;
}

button:focus-visible,
a:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--product-blue);
  outline-offset: 3px;
}

@keyframes product-spin { to { transform: rotate(360deg); } }
@keyframes product-node-pulse {
  0%, 100% { transform: scale(.92); opacity: .78; }
  50% { transform: scale(1.08); opacity: 1; }
}
@keyframes product-shimmer { to { background-position: -260% 0; } }

@media (max-width: 1050px) {
  .stage-workflow-line { gap: 8px; }
  .hammer-visual-grid,
  .asset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .library-summary,
  .task-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .product-page-head { display: grid; align-items: start; }
  .product-client-picker { min-width: 0; width: 100%; }
  .stage-workflow { padding: 17px; }
  .stage-workflow-line {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: 18px;
  }
  .stage-workflow-line::before {
    top: 12px;
    bottom: 12px;
    left: 14px;
    right: auto;
    width: 1px;
    height: auto;
  }
  .stage-node {
    display: grid;
    grid-template-columns: 29px minmax(0, 1fr);
    column-gap: 12px;
    padding-bottom: 16px;
    text-align: left;
  }
  .stage-node i { grid-row: 1 / 3; margin: 0; }
  .stage-node span { align-self: end; }
  .stage-node small { align-self: start; }
  .positioning-schemes,
  .content-type-grid,
  .script-production-grid,
  .audience-split,
  .hammer-copy-panel,
  .hammer-name-panel { grid-template-columns: 1fr; }
  .hammer-visual-grid,
  .asset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topic-loop { display: grid; grid-template-columns: 1fr; }
  .topic-loop > i { display: none; }
  .delivery-video-row {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 13px;
  }
  .delivery-video-open { grid-column: 1 / -1; width: 100%; }
  .task-stream-row { grid-template-columns: 18px minmax(0, 1fr); }
  .task-progress-number { grid-column: 2; min-width: 0; text-align: left; }
}

.stage-real-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.stage-real-card-grid article{position:relative;min-height:148px;padding:20px;border:1px solid #dce7f3;border-radius:20px;background:linear-gradient(145deg,#fff,#f7fbff);box-shadow:0 12px 32px rgba(64,112,160,.08)}
.stage-real-card-grid article.selected{border-color:#67b8ff;box-shadow:0 0 0 3px rgba(72,164,255,.12),0 16px 36px rgba(64,143,217,.14)}
.stage-real-card-grid article>span{position:absolute;right:16px;top:14px;color:#a6b8c9;font-size:12px}
.stage-real-card-grid article small{display:block;margin-bottom:14px;color:#3997ed}
.stage-real-card-grid article strong{display:block;font-size:17px;color:#172330}
.stage-real-card-grid article p{margin:10px 0 0;color:#6f7e8d;line-height:1.7}
.stage-real-loading,.stage-real-empty{display:flex;align-items:center;justify-content:center;gap:12px;min-height:118px;border:1px dashed #cfe2f4;border-radius:20px;background:#f8fbfe;color:#6f8191}
.stage-real-loading i{width:18px;height:18px;border:2px solid #d2e8fb;border-top-color:#3da6ff;border-radius:50%;animation:product-spin .8s linear infinite}
.stage-real-empty{flex-direction:column}.stage-real-empty strong{color:#263645}.stage-real-empty small{color:#82909d}

.knowledge-assistant{margin:18px 0 22px;padding:22px;border:1px solid #dce8f3;border-radius:24px;background:linear-gradient(135deg,#f7fbff,#fff);box-shadow:0 16px 42px rgba(70,119,164,.08)}
.knowledge-assistant>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.knowledge-assistant h3{margin:5px 0 0;font-size:20px}.knowledge-assistant>header>small{color:#7d8d9c}
.knowledge-assistant form{display:flex;gap:10px;margin-top:18px}.knowledge-assistant input{flex:1;min-width:0;padding:14px 16px;border:1px solid #d5e1ec;border-radius:15px;background:#fff;color:#1d2a36;outline:none}.knowledge-assistant input:focus{border-color:#4ca9fb;box-shadow:0 0 0 4px rgba(76,169,251,.1)}
.knowledge-assistant button{padding:0 22px;border:0;border-radius:14px;background:#1f2933;color:#fff;font-weight:700}.knowledge-assistant button:disabled{opacity:.45}
.knowledge-answer{margin-top:16px;padding:18px;border-radius:17px;background:#fff;border:1px solid #e2ebf3}.knowledge-answer p{white-space:pre-wrap;line-height:1.8;color:#334556}.knowledge-answer div{display:flex;flex-wrap:wrap;gap:8px}.knowledge-answer div span{padding:6px 10px;border-radius:999px;background:#edf7ff;color:#2489df;font-size:12px}

.material-proposal-review{margin-top:20px;padding:22px;border:1px solid #dce8f3;border-radius:22px;background:#fff;box-shadow:0 16px 38px rgba(61,105,146,.08)}
.material-proposal-review>header{display:flex;justify-content:space-between;gap:18px}.material-proposal-review h3{margin:4px 0 4px}.material-proposal-review>header>span{color:#3197ef}
.material-proposal-list{display:grid;gap:10px;margin-top:18px;max-height:440px;overflow:auto}.material-proposal-list label{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:15px;border:1px solid #e3ebf2;border-radius:16px;background:#fbfdff}.material-proposal-list label:has(input:checked){border-color:#8bc8fa;background:#f2f9ff}.material-proposal-list p{margin:6px 0;color:#344656;line-height:1.65}.material-proposal-list small{color:#7d8d9b;line-height:1.55}
.material-proposal-review footer{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:16px}.material-proposal-review footer small{color:#d05d4e}.material-proposal-review footer button{padding:11px 18px;border:0;border-radius:13px;background:#202a33;color:#fff}

@media (max-width: 520px) {
  .hammer-visual-grid,
  .asset-grid,
  .library-summary,
  .task-summary { grid-template-columns: 1fr; }
  .product-delivery .delivery-hero { padding: 21px; }
  .delivery-video-row { grid-template-columns: 1fr; }
  .delivery-cover { max-width: 100%; }
  .delivery-video-open { grid-column: auto; }
  .knowledge-row { grid-template-columns: 8px minmax(0, 1fr); }
  .knowledge-row button { grid-column: 2; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .product-loading i,
  .stage-node.running i,
  .hammer-image.generating::after,
  .task-stream-row.running .task-pulse i { animation: none; }
}
/* 正式方案选择：直接绑定 delivery decision contract。 */
.delivery-choice-panel{margin:24px 0;padding:22px 24px;border:1px solid rgba(3,112,255,.16);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(241,249,255,.94));box-shadow:0 18px 50px rgba(1,79,188,.07)}
.delivery-choice-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.delivery-choice-panel>header h3{margin:5px 0 0;font-size:20px;color:#172a43}
.delivery-choice-panel>header>span{padding:7px 11px;border-radius:99px;background:#e9f5ff;color:#0370ff;font-size:12px}
.delivery-choice-panel fieldset{margin:0 0 18px;padding:0;border:0}
.delivery-choice-panel fieldset:last-of-type{margin-bottom:0}
.delivery-choice-panel legend{width:100%;margin-bottom:10px;color:#21344d;font-weight:700}
.delivery-choice-panel legend small{margin-left:8px;color:#8090a5;font-weight:500}
.delivery-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.delivery-option{position:relative;display:flex;min-height:94px;gap:12px;align-items:flex-start;padding:16px;border:1px solid #dce8f4;border-radius:16px;background:#fff;cursor:pointer;transition:.2s ease}
.delivery-option:hover{transform:translateY(-1px);border-color:#9dccff;box-shadow:0 10px 24px rgba(3,112,255,.08)}
.delivery-option.selected{border-color:#2b94ff;background:#f2f9ff;box-shadow:0 0 0 2px rgba(3,112,255,.09)}
.delivery-option input{position:absolute;opacity:0;pointer-events:none}
.delivery-option>i{width:18px;height:18px;flex:0 0 18px;margin-top:2px;border:1px solid #b8c8da;border-radius:50%;background:#fff}
.delivery-option.selected>i{border:5px solid #2793ff}
.delivery-option span{display:grid;gap:6px}
.delivery-option strong{color:#192c43;font-size:15px;line-height:1.35}
.delivery-option small{color:#718196;line-height:1.55}
.delivery-choice-current{margin:16px 0 0;color:#677b91;font-size:13px}
.delivery-choice-panel.is-loading{display:flex;align-items:center;gap:14px}
.delivery-choice-panel.is-loading>i{width:24px;height:24px;border:2px solid #cfe6ff;border-top-color:#0370ff;border-radius:50%;animation:product-spin .8s linear infinite}
.delivery-choice-panel.is-loading p,.delivery-choice-panel.is-error p{margin:4px 0 0;color:#718196}
.delivery-choice-panel.is-error{display:flex;align-items:center;justify-content:space-between}
.delivery-choice-panel.is-error button{border:0;border-radius:12px;padding:10px 14px;background:#eaf5ff;color:#0370ff}
.benchmark-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.benchmark-video-card{position:relative;overflow:hidden;border:1px solid #e0e9f3;border-radius:20px;background:#fff;cursor:pointer;transition:.22s ease}
.benchmark-video-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(1,79,188,.1)}
.benchmark-video-card.selected{border-color:#2f96ff;box-shadow:0 0 0 3px rgba(3,112,255,.09),0 16px 38px rgba(1,79,188,.1)}
.benchmark-video-card>i{position:absolute;right:12px;top:12px;display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:#168cff;color:#fff;font-style:normal;box-shadow:0 7px 18px rgba(3,112,255,.3)}
.benchmark-video-cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#d9ecff,#9dcfff)}
.benchmark-video-cover img,.benchmark-video-cover video{width:100%;height:100%;object-fit:cover}
.benchmark-video-cover>button{position:absolute;inset:50% auto auto 50%;display:grid;width:48px;height:48px;place-items:center;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(5,31,61,.68);color:#fff;font-size:17px}
.benchmark-video-cover>span{position:absolute;left:12px;bottom:11px;padding:5px 9px;border-radius:99px;background:rgba(5,31,61,.74);color:#fff;font-size:11px}
.benchmark-video-copy{display:grid;gap:7px;padding:15px 16px 17px}
.benchmark-video-copy>small{color:#718499}
.benchmark-video-copy>strong{min-height:42px;color:#162b44;line-height:1.45}
.benchmark-video-copy>div{display:flex;flex-wrap:wrap;gap:10px;color:#6c7f94;font-size:12px}
.dh-authorization{max-width:820px;margin:26px auto;padding:32px;border:1px solid #dce9f5;border-radius:26px;background:#fff;box-shadow:0 22px 60px rgba(1,79,188,.08)}
.dh-authorization>h2{margin:9px 0 8px;color:#172c45;font-size:28px}
.dh-authorization>p{margin:0;color:#6d7f93;line-height:1.7}
.dh-auth-phrase{display:grid;gap:6px;margin:22px 0;padding:16px 18px;border-left:3px solid #09c3ff;border-radius:0 14px 14px 0;background:#f0f9ff}
.dh-auth-phrase small{color:#70849a}
.dh-auth-phrase strong{color:#173451;font-size:16px;line-height:1.55}
.dh-auth-drop{display:flex;align-items:center;justify-content:center;min-height:168px;gap:18px;border:1px dashed #7ebdff;border-radius:20px;background:linear-gradient(145deg,#fafdff,#eef8ff);cursor:pointer}
.dh-auth-drop input{position:absolute;width:1px;height:1px;opacity:0}
.dh-auth-drop>i{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:#fff;color:#168cff;font-size:28px;font-style:normal;box-shadow:0 10px 24px rgba(3,112,255,.12)}
.dh-auth-drop>span{display:grid;gap:5px}
.dh-auth-drop strong{color:#17304b;font-size:16px}
.dh-auth-drop small{color:#76899e}
.dh-auth-file{margin-top:10px;padding:10px 14px;border-radius:12px;background:#f3f8fc;color:#506a83}
.dh-auth-requirements{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}
.dh-auth-requirements span{padding:7px 11px;border:1px solid rgba(72,154,231,.2);border-radius:999px;background:#f7fbff;color:#52718d;font-size:12px;line-height:1}
.dh-auth-error{display:grid;gap:4px;margin:16px 0;padding:12px 14px;border-radius:14px;background:#fff4f2;color:#9a4038}
.dh-auth-error strong{font-size:13px}.dh-auth-error span{font-size:12px;line-height:1.55}
.dh-task{display:block;padding:0;overflow:hidden}
.dh-task-main{display:grid;grid-template-columns:8px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:15px 16px}
.dh-task-main>i{width:8px;height:8px;border-radius:50%;background:#9db2c4}
.dh-task.running .dh-task-main>i{background:#e6b85f;box-shadow:0 0 0 5px rgba(230,184,95,.12)}
.dh-task.done .dh-task-main>i{background:#38c7a0;box-shadow:0 0 0 5px rgba(56,199,160,.11)}
.dh-task.blocked .dh-task-main>i{background:#e7786f}
.dh-task-main small,.dh-task-main strong,.dh-task-main span{display:block}
.dh-task-main small{margin:0 0 3px;color:#8494a2;font-size:11px}
.dh-task-main strong{color:#243442;font-size:14px}
.dh-task-main span{margin-top:4px;color:#6f808d;font-size:12px;line-height:1.5}
.dh-task-main>b{color:#617683;font-size:11px;white-space:nowrap}
.dh-task-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.dh-task-actions button,.dh-variant-form button{padding:8px 11px;border:1px solid rgba(53,143,220,.2);border-radius:9px;background:#f4f9fd;color:#3289d3;font-weight:700;cursor:pointer}
.dh-variant-form{padding:18px;border-top:1px solid #e5ebf0;background:#f8fbfd}
.dh-variant-form>header,.dh-variant-form>footer{display:flex;align-items:center;justify-content:space-between;gap:18px}
.dh-variant-form>header small,.dh-variant-form>header strong{display:block}
.dh-variant-form>header small{color:#8494a2;font-size:10px}.dh-variant-form>header strong{margin-top:3px;color:#243442;font-size:14px}
.dh-variant-form>header button{border:0;background:transparent;color:#758793}
.dh-variant-template-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0}
.dh-variant-template-grid label{position:relative;display:grid;gap:7px;padding:7px;border:1px solid #e2e8ee;border-radius:12px;background:#fff;cursor:pointer}
.dh-variant-template-grid label:has(input:checked){border-color:#3699ef;box-shadow:0 0 0 3px rgba(54,153,239,.1)}
.dh-variant-template-grid input{position:absolute;top:12px;right:12px;z-index:1;accent-color:#3699ef}
.dh-variant-template-grid label>span{display:grid;place-items:center;aspect-ratio:9/12;border-radius:8px;overflow:hidden;background:#edf4fa;color:#5e8eb6}
.dh-variant-template-grid img{width:100%;height:100%;object-fit:cover}.dh-variant-template-grid label>strong{color:#344857;font-size:11px}
.dh-variant-form>footer p{margin:0;color:#788b98;font-size:11px}.dh-variant-form>footer button{background:#288fe8;color:#fff}
@media(max-width:800px){.dh-task-main{grid-template-columns:8px minmax(0,1fr) auto}.dh-task-actions{grid-column:2/-1;justify-content:flex-start}.dh-variant-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dh-variant-form>footer{align-items:stretch;flex-direction:column}}
#dh-authorization-form>button{width:100%;margin-top:14px;padding:14px 18px;border:0;border-radius:14px;background:linear-gradient(135deg,#0370ff,#09c3ff);color:#fff;font-weight:700}
.dh-authorization-progress{display:flex;align-items:center;gap:18px;margin-top:18px}
.dh-authorization-progress>i{width:34px;height:34px;border:3px solid #d7edff;border-top-color:#0370ff;border-radius:50%;animation:product-spin .8s linear infinite}
.dh-authorization-progress>div{flex:1}
.dh-authorization-progress h2{margin:0 0 5px;color:#18304b}
.dh-authorization-progress p{margin:0;color:#718398}
.dh-authorization-progress>strong{padding:7px 11px;border-radius:99px;background:#eaf6ff;color:#0370ff}
.delivery-cover{position:relative;overflow:hidden}
.delivery-cover video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.delivery-cover span,.delivery-cover b{position:relative;z-index:1}
