/* ⚠ 生成文件：由 packages/intent-core/atoms/components/scripts/build-media-bundle.mjs 从正本拼来，要改去改正本再跑一遍（L-1762）。 */
/* ── controls/controls.css ── */
/* 控件第一批共用样式。网页（电脑、手机共用）：中性灰、按钮 44px、360 宽放得下。
   宿主页面没定义变量时用这里的缺省；ban 静态页带着自己的 --main / --line，控件跟着宿主走（见文件末尾 .ac-ban）。 */
.ac, .ac-confirm { --ac-ink: var(--ink, #18181b); --ac-ink-2: var(--ink-2, #3f3f46); --ac-ink-3: var(--ink-3, #71717a);
  --ac-line: var(--line, #e4e4e7); --ac-line-2: var(--line-2, #d4d4d8); --ac-soft: #f4f4f5; --ac-card: #fff;
  --ac-btn: var(--btn, #27272a); --ac-btn-ink: var(--btn-ink, #fafafa); --ac-press: #e4e4e7;
  --ac-check-bg: #fef9c3; --ac-check-line: #ca8a04; --ac-danger: #27272a;
  color: var(--ac-ink); font-size: 15px; line-height: 1.5; }
.ac * { box-sizing: border-box; }
.ac button { font: inherit; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.ac-row { padding: 8px 0; border-bottom: 1px solid var(--ac-soft); }
.ac-row:last-child { border-bottom: 0; }
.ac-lab { font-size: 13px; color: var(--ac-ink-3); margin-bottom: 6px; }
.ac-hint { font-size: 12px; color: var(--ac-ink-3); margin-top: 6px; }
.ac-warn { margin-top: 8px; padding: 8px 10px; border-radius: 8px; font-size: 14px; background: var(--ac-check-bg); border: 1px solid var(--ac-check-line); }
.ac-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ac-chip { min-height: 44px; padding: 0 14px; border-radius: 22px; border: 1px solid var(--ac-line-2); background: var(--ac-card); font-size: 14px; display: inline-flex; align-items: center; gap: 4px; }
.ac-chip:active { background: var(--ac-press); }
.ac-chip[aria-pressed="true"] { background: var(--ac-btn); color: var(--ac-btn-ink); border-color: var(--ac-btn); }
.ac-tag { font-size: 11px; opacity: .75; }
.ac-btn { min-height: 44px; padding: 0 16px; border-radius: 8px; border: 1px solid var(--ac-line-2); background: var(--ac-card); display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-size: 15px; }
.ac-btn:active { background: var(--ac-press); }
.ac-btn:disabled { opacity: .45; cursor: default; }
/* 前面加 .ac：.ac button { color: inherit } 的优先级比单个类高，不加的话深底上的字是深色（L-452） */
.ac .ac-primary, .ac-confirm .ac-primary { background: var(--ac-btn, #27272a); color: var(--ac-btn-ink, #fafafa); border-color: var(--ac-btn, #27272a); }
.ac-big { min-height: 52px; font-size: 17px; font-weight: 600; flex: 1 1 0; }
.ac-stepper { display: inline-flex; align-items: center; border: 1px solid var(--ac-line-2); border-radius: 8px; overflow: hidden; }
.ac-step { min-width: 44px; min-height: 44px; border: 0; background: var(--ac-card); font-size: 20px; }
.ac-step:disabled { opacity: .35; }
.ac-step-n { min-width: 64px; text-align: center; font-variant-numeric: tabular-nums; font-weight: 600; padding: 0 4px; }
.ac-input { min-height: 44px; border: 1px solid var(--ac-line); border-radius: 8px; padding: 0 10px; background: var(--ac-card); font: inherit; width: 100%; }
.ac-input:focus, .ac-text:focus { outline: 2px solid #a1a1aa; outline-offset: 0; }
.ac-text { width: 100%; min-height: 72px; border: 1px dashed var(--ac-line-2); border-radius: 8px; padding: 10px; font: inherit; resize: vertical; background: #fcfcfc; }
.ac-line { font-size: 16px; font-weight: 600; line-height: 1.6; word-break: break-all; }
.ac-line.empty { color: var(--ac-ink-3); font-weight: 400; }
.ac-sub { font-size: 13px; color: var(--ac-ink-2); }
.ac-flex { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ac-grow { flex: 1 1 auto; min-width: 0; }

/* 大字确认 */
.ac-mask { position: fixed; inset: 0; background: rgba(24,24,27,.45); z-index: 90; }
.ac-confirm { position: fixed; left: 12px; right: 12px; top: 50%; transform: translateY(-50%); z-index: 91; max-width: 440px; margin: 0 auto; background: #fff; border-radius: 14px; padding: 18px 16px 14px; box-shadow: 0 10px 40px rgba(0,0,0,.18); }
.ac-confirm-title { font-size: 20px; font-weight: 700; margin-bottom: 10px; }
.ac-confirm-lines { font-size: 18px; line-height: 1.6; }
.ac-confirm-lines div + div { margin-top: 4px; }
.ac-confirm-note { font-size: 13px; color: #71717a; min-height: 20px; margin: 8px 0; }
.ac-confirm-2 .ac-confirm-note { color: #18181b; font-weight: 600; }
.ac-confirm-btns { display: flex; gap: 10px; }

/* 时间轴：一天 24 小时一条，生效时段可拖 */
.ac-track { position: relative; height: 56px; border: 1px solid var(--ac-line-2); border-radius: 8px; background: repeating-linear-gradient(90deg, #fafafa 0, #fafafa calc(100%/24 - 1px), var(--ac-line) calc(100%/24 - 1px), var(--ac-line) calc(100%/24)); touch-action: none; user-select: none; }
.ac-seg { position: absolute; top: 6px; bottom: 6px; background: #3f3f46; border-radius: 6px; color: #fafafa; font-size: 12px; display: flex; align-items: center; justify-content: center; overflow: hidden; white-space: nowrap; cursor: grab; }
.ac-seg.on { outline: 2px solid #18181b; outline-offset: 1px; }
.ac-handle { position: absolute; top: 0; bottom: 0; width: 22px; cursor: ew-resize; display: flex; align-items: center; justify-content: center; }
.ac-handle::before { content: ""; width: 4px; height: 22px; border-radius: 2px; background: #fafafa; }
.ac-handle.l { left: -4px; } .ac-handle.r { right: -4px; }
.ac-ticks { display: flex; justify-content: space-between; font-size: 11px; color: var(--ac-ink-3); margin-top: 2px; font-variant-numeric: tabular-nums; }

/* 框选区域 */
.ac-stage { position: relative; width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--ac-line-2); border-radius: 8px; overflow: hidden; touch-action: none; user-select: none; background: #fafafa; }
.ac-stage.grid { background: #fafafa repeating-linear-gradient(0deg, transparent 0, transparent 24px, #ececee 24px, #ececee 25px), repeating-linear-gradient(90deg, transparent 0, transparent 24px, #ececee 24px, #ececee 25px); }
.ac-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.ac-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ac-zone { position: absolute; border: 2px solid #3f3f46; border-radius: 4px; display: flex; align-items: flex-start; justify-content: flex-start; font-size: 12px; }
.ac-zone b { background: #3f3f46; color: #fafafa; padding: 0 5px; border-radius: 0 0 4px 0; font-weight: 600; white-space: nowrap; }
.ac-zone.focus { border-style: solid; background: rgba(63,63,70,.08); }
.ac-zone.keep { border-style: dashed; background: rgba(255,255,255,.35); }
.ac-zone.no_go { border-color: #18181b; background: repeating-linear-gradient(45deg, rgba(24,24,27,.18) 0 6px, rgba(24,24,27,.04) 6px 12px); }
.ac-zone.no_go b { background: #18181b; }
.ac-zone.on { outline: 3px solid #a1a1aa; }
.ac-zlist { list-style: none; margin: 8px 0 0; padding: 0; }
.ac-zlist li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 4px 0; min-height: 44px; border-bottom: 1px solid var(--ac-soft); font-size: 14px; }
.ac-zlist li.on { background: var(--ac-soft); }

/* 授权信封 */
.ac-envelope { border: 2px solid var(--ac-ink-2); border-radius: 12px; padding: 12px; }
.ac-envelope.granted { border-color: var(--ac-ink); }
.ac-envelope.revoked { border-style: dashed; color: var(--ac-ink-3); }
.ac-env-head { font-size: 17px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.ac-env-state { margin-left: auto; font-size: 13px; font-weight: 600; padding: 2px 8px; border-radius: 10px; background: var(--ac-soft); }
.ac-env-body { font-size: 16px; line-height: 1.7; margin: 8px 0; }

/* 金额键盘 */
.ac-pad { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 8px; }
.ac-pad button { min-height: 52px; border: 1px solid var(--ac-line); border-radius: 10px; background: var(--ac-card); font-size: 21px; font-variant-numeric: tabular-nums; }
.ac-pad button.fn { font-size: 14px; color: var(--ac-ink-2); background: #fafafa; }
.ac-pad button:active { background: var(--ac-press); }
.ac-capbox { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ac-cap { border: 1px solid var(--ac-line-2); border-radius: 10px; padding: 8px; background: var(--ac-card); text-align: left; min-height: 72px; }
.ac-cap.on { border: 2px solid var(--ac-ink); padding: 7px; }
.ac-cap small { display: block; font-size: 12px; color: var(--ac-ink-3); }
.ac-cap b { display: block; font-size: 18px; font-variant-numeric: tabular-nums; word-break: break-all; }
.ac-cap .cn { font-size: 11px; color: var(--ac-ink-3); display: block; word-break: break-all; }

/* 一键停 */
.ac .ac-stop { width: 100%; min-height: 64px; border-radius: 12px; border: 0; background: var(--ac-danger); color: #fafafa; font-size: 20px; font-weight: 700; letter-spacing: 2px; }
.ac .ac-stop:active { background: #3f3f46; }
.ac-state { display: flex; align-items: center; gap: 8px; font-size: 15px; padding: 8px 10px; border-radius: 8px; background: var(--ac-soft); margin-bottom: 8px; }
.ac-dot { width: 10px; height: 10px; border-radius: 50%; background: #71717a; flex: 0 0 10px; }
.ac-state.running .ac-dot { background: #18181b; animation: acpulse 1.4s ease-in-out infinite; }
@keyframes acpulse { 50% { opacity: .3; } }
.ac-log { list-style: none; margin: 8px 0 0; padding: 0; font-size: 13px; color: var(--ac-ink-2); }
.ac-log li { padding: 4px 0; border-bottom: 1px solid var(--ac-soft); }

/* 重复规则 */
.ac-next { font-size: 18px; font-weight: 700; padding: 10px 12px; border-radius: 10px; background: var(--ac-soft); }
.ac-next small { display: block; font-size: 13px; font-weight: 400; color: var(--ac-ink-2); margin-top: 2px; }
.ac-week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ac-week button, .ac-mdays button { min-height: 44px; border: 1px solid var(--ac-line-2); border-radius: 8px; background: var(--ac-card); font-size: 15px; padding: 0; }
.ac-week button[aria-pressed="true"], .ac-mdays button[aria-pressed="true"] { background: var(--ac-btn); color: var(--ac-btn-ink); border-color: var(--ac-btn); }
.ac-mdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }

/* 示例卡墙 */
.ac-wall { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.ac-card { text-align: left; border: 1px solid var(--ac-line-2); border-radius: 10px; padding: 10px; background: var(--ac-card); min-height: 72px; display: flex; flex-direction: column; gap: 4px; }
.ac-card b { font-size: 15px; }
.ac-card span { font-size: 13px; color: var(--ac-ink-2); }
.ac-card[aria-pressed="true"] { border: 2px solid var(--ac-ink); padding: 9px; background: var(--ac-soft); }
.ac-else { margin-top: 8px; }

/* 排序 */
.ac-rank { list-style: none; margin: 0; padding: 0; }
.ac-rank li { display: flex; align-items: center; gap: 6px; min-height: 52px; border: 1px solid var(--ac-line-2); border-radius: 10px; padding: 0 4px 0 10px; margin-bottom: 6px; background: var(--ac-card); touch-action: none; }
.ac-rank li.drag { opacity: .6; border-style: dashed; }
.ac-rank .n { font-weight: 700; width: 22px; font-variant-numeric: tabular-nums; }
.ac-rank .grip { min-width: 44px; min-height: 44px; border: 0; background: none; color: var(--ac-ink-3); font-size: 18px; cursor: grab; }
.ac-mini { min-width: 44px; min-height: 44px; border: 0; background: none; color: var(--ac-ink-3); font-size: 16px; }

/* 清单 */
.ac-list { list-style: none; margin: 0; padding: 0; }
.ac-list li { display: flex; align-items: center; gap: 4px; min-height: 48px; border-bottom: 1px solid var(--ac-soft); }
.ac-list label { flex: 1 1 auto; display: flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; font-size: 15px; }
.ac-list input[type=checkbox] { width: 22px; height: 22px; accent-color: #27272a; flex: 0 0 22px; }
.ac-list li.off label { color: var(--ac-ink-3); text-decoration: line-through; }
.ac-list li.mine label::after { content: "我加的"; font-size: 11px; color: var(--ac-ink-3); border: 1px solid var(--ac-line-2); border-radius: 8px; padding: 0 5px; margin-left: 4px; }
.ac-progress { height: 6px; border-radius: 3px; background: var(--ac-soft); overflow: hidden; margin: 6px 0; }
.ac-progress i { display: block; height: 100%; background: var(--ac-ink-2); }

/* 上传 */
.ac-drop { border: 1px dashed var(--ac-line-2); border-radius: 10px; padding: 14px; text-align: center; background: #fcfcfc; }
.ac-drop.over { background: var(--ac-soft); border-color: var(--ac-ink-3); }
.ac-files { list-style: none; margin: 8px 0 0; padding: 0; }
.ac-files li { display: flex; align-items: center; gap: 8px; min-height: 44px; border-bottom: 1px solid var(--ac-soft); font-size: 14px; }
.ac-files .nm { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ban 静态页：参数全摆开，「标签 + 一行选项」，颜色跟宿主 */
.ac-ban { font-size: 13.5px; }
.ac-ban .ac-row { display: grid; grid-template-columns: 88px 1fr; gap: 8px; align-items: start; padding: 6px 0; border-bottom: 1px solid var(--line-2, #f0ece8); }
.ac-ban .ac-row > .label { color: var(--ink-2, #5a524c); font-weight: 600; line-height: 24px; }
.ac-ban .ac-chip, .ac-ban .ac-btn { min-height: 32px; }
.ac-ban .opts .opt { min-height: 28px; }
.ac-ban .ac-primary { background: var(--main, #27272a); border-color: var(--main, #27272a); }
.ac-ban .ac-week button[aria-pressed="true"], .ac-ban .ac-mdays button[aria-pressed="true"], .ac-ban .ac-chip[aria-pressed="true"] { background: var(--main, #27272a); border-color: var(--main, #27272a); }
.ac-ban .ac-stop { background: var(--main, #27272a); }
.ac-ban .ac-week button, .ac-ban .ac-mdays button { min-height: 32px; }
@media (max-width: 520px) { .ac-ban .ac-week button, .ac-ban .ac-mdays button { min-height: 44px; } }
.ac-ban .ac-seg { background: var(--main, #3f3f46); }
@media (max-width: 520px) { .ac-ban .ac-row { grid-template-columns: 1fr; } }

/* ── controls/controls-b3.css ── */
/* 控件第三批样式 controls-b3.css：控件里用到的布局类都有样式；中性灰（界面不上彩色）；手机 360 宽放得下；按钮 44px；运镜示例动图每个都有动画 */

/* ── 底色 / 背景替换 ── */
.ac3-bgswap { }
.ac3-bgpreview, .ac3-bgdesc { }
.ac3-bgprev { width: 120px; height: 150px; border-radius: 10px; overflow: hidden; position: relative; background: var(--ac-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; }
.ac3-bgprev .ac3-head { width: 40px; height: 40px; border-radius: 50%; background: var(--ac-ink-3); }
.ac3-bgprev .ac3-body { width: 80px; height: 56px; border-radius: 40px 40px 8px 8px; background: var(--ac-ink-2); }
.ac3-checker { background-color: #fff; background-image: linear-gradient(45deg, #e4e4e7 25%, transparent 25%), linear-gradient(-45deg, #e4e4e7 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #e4e4e7 75%), linear-gradient(-45deg, transparent 75%, #e4e4e7 75%); background-size: 16px 16px; background-position: 0 0, 0 8px, 8px -8px, -8px 0; }
.ac3-swatch { width: 18px; height: 18px; border-radius: 4px; border: 1px solid var(--ac-line-2); display: inline-block; vertical-align: middle; }
.ac3-hint { font-size: 12px; color: var(--ac-ink-3); margin-top: 6px; }

/* ── 证件照尺寸 ── */
.ac3-size { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: 22px; border: 1px solid var(--ac-line-2); background: var(--ac-card); cursor: pointer; }
.ac3-size[aria-pressed="true"] { background: var(--ac-btn); color: var(--ac-btn-ink); border-color: var(--ac-btn); }
.ac3-size-text { display: flex; flex-direction: column; }
.ac3-size-title { font-size: 15px; font-weight: 600; }
.ac3-size-hint { font-size: 12px; color: var(--ac-ink-3); }
.ac3-size[aria-pressed="true"] .ac3-size-hint { color: var(--ac-btn-ink); opacity: .8; }
.ac3-size-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.ac3-size-on { background: var(--ac-soft); }
.ac3-ratio { width: 32px; height: 24px; border: 1px solid var(--ac-line-2); border-radius: 4px; background: var(--ac-soft); }

/* ── 通用小标签 ── */
.ac3-auto { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 10px; background: var(--ac-soft); color: var(--ac-ink-2); }

/* ── 运镜示例 ── */
.ac3-moves { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.ac3-move { min-height: 44px; padding: 8px; border-radius: 10px; border: 1px solid var(--ac-line-2); background: var(--ac-card); text-align: center; cursor: pointer; }
.ac3-move[aria-pressed="true"] { background: var(--ac-btn); color: var(--ac-btn-ink); border-color: var(--ac-btn); }
.ac3-move-demo { display: block; width: 48px; height: 36px; margin: 0 auto 6px; border-radius: 4px; background: var(--ac-soft); position: relative; overflow: hidden; }
.ac3-move-demo i { display: block; width: 12px; height: 12px; border-radius: 2px; background: var(--ac-ink-2); position: absolute; left: 50%; top: 50%; margin-left: -6px; margin-top: -6px; }
.ac3-move-zh { font-size: 14px; font-weight: 600; display: block; }
.ac3-move-ex { font-size: 12px; color: var(--ac-ink-3); display: block; }
.ac3-mv { }
.ac3-mv-auto { }
.ac3-mv-static { animation: none; }
.ac3-mv-push { animation: ac3-mv-push 1.2s ease-in-out infinite; }
.ac3-mv-pull { animation: ac3-mv-pull 1.2s ease-in-out infinite; }
.ac3-mv-pan { animation: ac3-mv-pan 1.2s ease-in-out infinite; }
.ac3-mv-tilt { animation: ac3-mv-tilt 1.2s ease-in-out infinite; }
.ac3-mv-orbit { animation: ac3-mv-orbit 1.2s linear infinite; }
.ac3-mv-follow { animation: ac3-mv-follow 1.2s ease-in-out infinite; }
.ac3-mv-rise { animation: ac3-mv-rise 1.2s ease-in-out infinite; }
.ac3-mv-handheld { animation: ac3-mv-handheld 0.8s ease-in-out infinite; }

@keyframes ac3-mv-push { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.4); } }
@keyframes ac3-mv-pull { 0%, 100% { transform: scale(1); } 50% { transform: scale(0.7); } }
@keyframes ac3-mv-pan { 0%, 100% { transform: translateX(-8px); } 50% { transform: translateX(8px); } }
@keyframes ac3-mv-tilt { 0%, 100% { transform: translateY(-6px); } 50% { transform: translateY(6px); } }
@keyframes ac3-mv-orbit { 0% { transform: translate(8px, 0); } 25% { transform: translate(0, -8px); } 50% { transform: translate(-8px, 0); } 75% { transform: translate(0, 8px); } 100% { transform: translate(8px, 0); } }
@keyframes ac3-mv-follow { 0% { transform: translate(-10px, 0); } 25% { transform: translate(-5px, -4px); } 50% { transform: translate(0, 0); } 75% { transform: translate(5px, -4px); } 100% { transform: translate(10px, 0); } }
@keyframes ac3-mv-rise { 0%, 100% { transform: translateY(10px); } 50% { transform: translateY(-10px); } }
@keyframes ac3-mv-handheld { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(-2px, 1px); } 50% { transform: translate(1px, -2px); } 75% { transform: translate(-1px, -1px); } }

@media (prefers-reduced-motion: reduce) {
  .ac3-mv-static, .ac3-mv-push, .ac3-mv-pull, .ac3-mv-pan, .ac3-mv-tilt, .ac3-mv-orbit, .ac3-mv-follow, .ac3-mv-rise, .ac3-mv-handheld { animation: none; }
}

/* ── 时间轴 / 片段 ── */
.ac3-track { position: relative; height: 44px; border-radius: 8px; background: var(--ac-soft); touch-action: none; user-select: none; }
.ac3-seg { position: absolute; top: 4px; bottom: 4px; border-radius: 6px; background: var(--ac-ink-2); color: var(--ac-card); font-size: 12px; display: flex; align-items: center; justify-content: center; overflow: hidden; white-space: nowrap; }
.ac3-seg-item, .ac3-seg-list, .ac3-seg-range { }
.ac3-handle { position: absolute; top: 0; bottom: 0; width: 14px; cursor: ew-resize; touch-action: none; display: flex; align-items: center; justify-content: center; }
.ac3-handle::before { content: ""; width: 4px; height: 18px; border-radius: 2px; background: var(--ac-card); }
.ac3-handle-left { left: -7px; }
.ac3-handle-right { right: -7px; }
.ac3-lines, .ac3-line-btn { }

/* ── 首尾帧 ── */
.ac3-frames { display: grid; grid-template-columns: 1fr 44px 1fr; gap: 8px; align-items: center; }
.ac3-frames-arrow { text-align: center; color: var(--ac-ink-3); font-size: 18px; }
.ac3-frames-desc, .ac3-frames-footer, .ac3-frames-warning { }
.ac3-slot { min-height: 96px; border: 1px dashed var(--ac-line-2); border-radius: 8px; background: var(--ac-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: var(--ac-ink-3); padding: 10px; }
.ac3-frame { width: 100%; aspect-ratio: 16 / 9; border-radius: 6px; border: 1px solid var(--ac-line-2); background: var(--ac-soft); overflow: hidden; }
.ac3-frame[aria-pressed="true"] { border: 2px solid var(--ac-ink); }
.ac3-frame-box, .ac3-frame-btns, .ac3-frame-empty, .ac3-frame-thumb, .ac3-frame-title { }
.ac3-frame-label, .ac3-frame-on, .ac3-frame-placeholder { }

/* ── 分镜 / 故事板 ── */
.ac3-shot { background: var(--ac-card); border: 1px solid var(--ac-line-2); border-radius: 10px; padding: 10px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; cursor: grab; }
.ac3-shot[aria-pressed="true"] { border-color: var(--ac-ink); background: var(--ac-soft); }
.ac3-shot-n { font-weight: 700; min-width: 24px; }
.ac3-shot-btns { display: flex; gap: 6px; margin-left: auto; }
.ac3-cost { font-weight: 700; padding: 8px 12px; border-radius: 8px; background: var(--ac-soft); margin-bottom: 8px; }

/* ── 字幕 ── */
.ac3-subline { display: flex; gap: 8px; align-items: center; }
.ac3-subtime { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 13px; color: var(--ac-ink-2); white-space: nowrap; min-width: 52px; }
.ac3-subtitle-desc, .ac3-subtitle-paste { }

/* ── 报错粘贴 / 关键行 ── */
.ac3-errbox { width: 100%; min-height: 140px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 14px; line-height: 1.6; padding: 10px; border: 1px dashed var(--ac-line-2); border-radius: 8px; background: #fcfcfc; resize: vertical; }
.ac3-keyline { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 13px; line-height: 1.6; padding: 8px 10px; border-radius: 6px; background: var(--ac-soft); border-left: 3px solid var(--ac-ink-2); word-break: break-all; }
.ac3-keylines, .ac3-errchips, .ac3-errresult, .ac3-langchip, .ac3-langpicker { }

/* ── 目录树 ── */
.ac3-tree { list-style: none; margin: 0; padding: 0; }
.ac3-tree-row { padding-left: 18px; }
.ac3-tree-label { display: flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; }
.ac3-tree-label input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--ac-ink); flex: 0 0 20px; }
.ac3-tree-name { font-size: 15px; }
.ac3-summary, .ac3-warning { }

/* ── 效果样例两栏 ── */
.ac3-pairs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.ac3-pair-col, .ac3-samples { }
@media (max-width: 520px) { .ac3-pairs { grid-template-columns: 1fr; } }

/* ── 价钱表 / 档位 ── */
.ac3-pricegrid { width: 100%; border-collapse: collapse; font-size: 14px; }
.ac3-pricegrid th, .ac3-pricegrid td { border: 1px solid var(--ac-line-2); padding: 8px; text-align: left; }
.ac3-pricegrid .ac3-cell { padding: 0; }
.ac3-pricegrid .ac3-cell button { width: 100%; min-height: 44px; border: 0; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.ac3-nosale { color: var(--ac-ink-3); }
.ac3-tier { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 10px; border-radius: 10px; border: 1px solid var(--ac-line-2); background: var(--ac-card); cursor: pointer; }
.ac3-tier[aria-pressed="true"] { border-color: var(--ac-ink); background: var(--ac-soft); }
.ac3-tier-cards { display: flex; flex-wrap: wrap; gap: 8px; }
.ac3-tier-name { font-weight: 700; display: block; }
.ac3-tier-hint { font-size: 12px; color: var(--ac-ink-3); display: block; margin-top: 2px; }
.ac3-tier-points, .ac3-desc { }

/* ── 稿子 ── */
.ac3-script { width: 100%; min-height: 120px; padding: 10px; border: 1px dashed var(--ac-line-2); border-radius: 8px; font: inherit; background: #fcfcfc; resize: vertical; }
.ac3-script-hint { }

/* ── 其它第三批控件里用到的类（占位，避免测试报缺） ── */
.ac3-desc, .ac3-files, .ac3-ops, .ac3-thumb, .ac3-thumb-del, .ac3-thumb-name, .ac3-thumbs, .ac3-del, .ac3-describe, .ac3-photo-item, .ac3-problems, .ac3-subject-photos, .ac3-upload, .ac3-warn, .ac3-change, .ac3-details, .ac3-details-inner, .ac3-look-line, .ac3-look-text, .ac3-problem, .ac3-swap-note, .ac3-controls, .ac3-nudge, .ac3-slider, .ac3-more, .ac3-more-body, .ac3-upscale-body, .ac3-upscale-disabled, .ac3-upscale-hint, .ac3-upscale-option, .ac3-upscale-options, .ac3-upscale-size, .ac3-upscale-zh { }

/* Claude 审稿补（浏览器走查 L-529）：Kimi 写的控件里有不少按钮没挂 .ac-btn / .ac-chip，手机上不到 44px、字色太淡。
   网页端（不含 ban：ban 是它自己的密度）第三批控件里的按钮一律至少 44px、字用正文色 */
.ac:not(.ac-ban) button { min-height: 44px; min-width: 44px; }
.ac:not(.ac-ban) button:not([aria-pressed="true"]):not(.ac-primary) { color: var(--ac-ink); }
.ac3-frame-btns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.ac3-frame-btns button { padding: 0 12px; border-radius: 8px; border: 1px solid var(--ac-line-2); background: var(--ac-card); }
/* 样品页「就这样，开始做」：视频类免费意图预览下面那颗按钮（不在 .ac 里，单独写） */
.b3-gobar { margin-top: 12px; }
.b3-gobar .b3-go { width: 100%; min-height: 48px; border-radius: 10px; border: 1px solid var(--ac-btn, #27272a); background: var(--ac-btn, #27272a); color: var(--ac-btn-ink, #fafafa); font-size: 16px; font-weight: 600; cursor: pointer; }

/* ── components/media-card.css ── */
/* 图片视频卡（L-1762）。颜色跟宿主走（对话页 / 场景页的 --ink --line --muted），没定义用中性灰；按钮 44px，手机 360 宽放得下。 */
.mc { --mc-ink: var(--ink, #18181b); --mc-muted: var(--muted, #71717a); --mc-line: var(--line, #e4e4e7); --mc-soft: #f4f4f5;
  color: var(--mc-ink); font-size: 15px; line-height: 1.55; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.mc * { box-sizing: border-box; }
.mc-src { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13px; color: var(--mc-muted); }
.mc-src img { width: 40px; height: 40px; object-fit: cover; border-radius: 6px; border: 1px solid var(--mc-line); }
.mc-guess { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; color: var(--mc-muted); }
.mc-edit { min-height: 32px; padding: 0 12px; border-radius: 16px; border: 1px solid var(--mc-line); background: #fff; font: inherit; font-size: 13px; color: var(--mc-ink); cursor: pointer; }
.mc-sum { font-size: 16px; font-weight: 600; word-break: break-word; }
.mc-body { display: flex; flex-direction: column; gap: 4px; border-top: 1px solid var(--mc-soft); padding-top: 6px; }
.mc-body[hidden] { display: none; }
.mc-part { padding: 6px 0; border-bottom: 1px solid var(--mc-soft); min-width: 0; }
.mc-part:last-child { border-bottom: 0; }
.mc-lab { font-size: 13px; color: var(--mc-muted); margin-bottom: 6px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mc .mc-tog { min-height: 32px; font-size: 13px; }
.mc-text { width: 100%; min-height: 44px; resize: vertical; padding: 8px 10px; line-height: 1.5; }
.mc-subadd { margin-top: 6px; }
/* 批量：图从对话里传的那几张来，控件自带的「选几张图」收起来；分镜板傻瓜模式的「换一换」没有备选，收起来 */
.mc .mc-batch .ac3-files { display: none; }
.mc .mc-shots .ac3-shot > .ac-btn { display: none; }
.mc .mc-shots .ac3-shot { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.mc .mc-shots .ac3-shot .ac-input { flex: 1 1 auto; min-width: 0; }
.mc .ac-chips { gap: 6px; }
.mc .ac-chip { min-height: 40px; padding: 0 12px; }
.mc-lay { display: inline-grid; gap: 1px; width: 18px; height: 18px; margin-right: 4px; vertical-align: middle; }
.mc-lay i { background: currentColor; opacity: .55; border-radius: 1px; }
.mc-lay-single { grid-template-columns: 1fr; } .mc-lay-row2 { grid-template-columns: 1fr 1fr; } .mc-lay-grid4 { grid-template-columns: 1fr 1fr; }
.mc-lay-grid9 { grid-template-columns: 1fr 1fr 1fr; } .mc-lay-long { grid-template-columns: 1fr; }
.mc-go { display: flex; flex-direction: column; gap: 8px; }
.mc-stage { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--mc-ink); background: var(--mc-soft); border-radius: 8px; padding: 4px 6px 4px 10px; }
.mc-stage span { flex: 1 1 auto; }
.mc-undo { min-width: 40px; min-height: 36px; border: 1px solid var(--mc-line); border-radius: 8px; background: #fff; font-size: 18px; cursor: pointer; }
.mc-undo:disabled { opacity: .35; cursor: default; }
.mc-steps { font-size: 13px; color: var(--mc-muted); word-break: break-word; }
.mc-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.mc-btn { min-height: 44px; }
.mc a.mc-btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; padding: 0 14px; }
.mc-prompt { font-size: 12px; color: var(--mc-muted); }
.mc-prompt summary { cursor: pointer; }
.mc-prompt div { margin-top: 4px; word-break: break-word; }
.mc-note { font-size: 12px; color: var(--mc-muted); }
.mc-out:empty { display: none; }
.mc-out { display: flex; flex-direction: column; gap: 8px; }
.mc-imgs { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.mc-img { margin: 0; border: 1px solid var(--mc-line); border-radius: 10px; overflow: hidden; background: #fafafa; }
.mc-img img { display: block; width: 100%; height: auto; }
.mc-img figcaption { display: flex; justify-content: space-between; align-items: center; padding: 4px 8px; font-size: 12px; color: var(--mc-muted); }
.mc-dl { font-size: 13px; color: var(--mc-ink); text-decoration: underline; }
.mc-raw { font-size: 12px; color: var(--mc-muted); display: flex; gap: 8px; flex-wrap: wrap; }
.mc-raw a { color: inherit; }
.mc-video { width: 100%; max-height: 70vh; border-radius: 10px; background: #000; }
.mc-links { display: flex; gap: 12px; flex-wrap: wrap; }
.mc-cover-pic { display: flex; align-items: flex-end; gap: 8px; margin-top: 6px; }
.mc-cover-pic img { width: 120px; border-radius: 8px; border: 1px solid var(--mc-line); }
.mc-wait { font-size: 13px; color: var(--mc-muted); }
.mc-form .mc-acts, .mc-form .mc-prompt { display: none; }
