/* 制片宝：分镜表、文稿、合规检查的界面（在拉片宝官网样式与筛片宝面板样式之上） */
.sp{background:#1e1e1e;color:#dadada;font-family:var(--font-text);display:grid;overflow:hidden}
.sp-top{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #363636;flex-wrap:wrap}
.sp-top .zp-btn.is-hot{background:#2f2a45;border-color:#5b4fb0;color:#fff}
.sp-title{font-size:20px;font-weight:600;color:#f0f0f0;margin-right:auto}
.sp-rows{padding:16px 18px;display:grid;gap:12px;align-content:start;overflow:hidden}
.sp-row{position:relative;border-radius:12px;background:#3f3029;padding:14px 16px 14px 52px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;transition:border-color .2s,background .2s;border:1.5px solid transparent}
.sp-row.is-new{animation:entry-in .45s cubic-bezier(.2,.75,.2,1)}
.sp-row.is-suggest{border-color:#4cc37a;background:#2f3a2c}
.sp-no{position:absolute;left:16px;top:16px;font:600 12px ui-monospace,Menlo,monospace;color:#b59c8c}
.sp-oral{font-size:17px;line-height:1.6;color:#f1e7e1}
.sp-fields{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;align-items:center}
.sp-f{padding:3px 10px;border-radius:6px;background:#55443b;color:#e8d8cf;font-size:12.5px;transition:background .2s,box-shadow .2s}
.sp-f.is-real{background:#3f5a3a;color:#d8f0d0}
.sp-f.is-empty{background:transparent;border:1px dashed #6b5a50;color:#a8968a}
.sp-pic{margin-top:10px;font-size:14.5px;color:#e3d4ca;line-height:1.55}
.sp-shot{width:92px;border-radius:8px;overflow:hidden;aspect-ratio:16/9;background:#111;align-self:start}
.sp-shot img{width:100%;height:100%;object-fit:cover}
.sp-del{color:#ff6b5e;text-decoration:line-through;text-decoration-thickness:1.5px}
.sp-add{color:#62d98b;border-radius:3px}
.sp-add.is-editing{outline:1.5px solid #62d98b;outline-offset:2px}
.sp-ok,.sp-no-btn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;margin-left:8px;vertical-align:middle;font-size:15px;transition:transform .15s,background .15s}
.sp-ok{background:#2b3a2a;color:#ffd35c;border:1px solid #556b45}
.sp-no-btn{background:#3a2a2a;color:#ff6b5e;border:1px solid #6b4545}
.sp-ok.is-hot,.sp-no-btn.is-hot{transform:scale(1.12)}
.sp-frame{position:absolute;border:2.5px solid #ff5a4e;border-radius:14px;pointer-events:none;opacity:0;transition:opacity .3s;box-shadow:0 0 0 4px rgba(255,90,78,.15)}
.sp-frame.on{opacity:1}
.sp-check-tag{display:inline-block;margin-left:10px;padding:2px 8px;border-radius:999px;background:#2f3a2c;color:#8fe0a8;font-size:11.5px;vertical-align:middle;opacity:0;transition:opacity .25s}
.sp-check-tag.on{opacity:1}
/* 文稿页 */
.sp-doc{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;padding:16px;min-height:0}
.sp-paper{border:1px solid #363636;border-radius:12px;background:#1b1b1b;padding:20px 22px;font-size:15px;line-height:1.85;color:#d8d8d8;overflow:hidden;white-space:pre-wrap}
.sp-paper .is-scan{background:rgba(139,124,246,.18);border-radius:3px}
.sp-chat{border:1px solid #363636;border-radius:12px;background:#1b1b1b;display:grid;grid-template-rows:1fr auto;overflow:hidden}
.sp-msgs{padding:16px;display:grid;gap:10px;align-content:start;overflow:hidden}
.sp-msg{max-width:88%;padding:10px 12px;border-radius:12px;font-size:13.5px;line-height:1.55;background:#2a2a2a}
.sp-msg.me{justify-self:end;background:#2f2a45;color:#ece8ff}
.sp-input{margin:12px;border:1px solid #3a3a3a;border-radius:14px;padding:10px 12px;display:flex;gap:8px;align-items:center;color:#888;font-size:13px}
.sp-input b{margin-left:auto;font-weight:500;color:#bbb;font-size:12px}
.sp-rules{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px;min-height:0}
.sp-rule{padding:10px 12px;border-radius:10px;background:#262626;border:1px solid #363636;font-size:13.5px;line-height:1.55;margin-bottom:8px}
.sp-rule b{color:#f0f0f0}
.sp-colhead{font-size:13px;font-weight:600;color:#bbb;margin:0 0 10px}
/* 转分镜演示画板 980×720 */
.sp-convert{width:980px;height:720px;grid-template-rows:auto auto 1fr;border-radius:14px;border:1px solid rgba(255,255,255,.1);box-shadow:0 40px 100px rgba(0,0,0,.55)}
.sp-convert .sp-stage{position:relative;min-height:0;overflow:hidden}
.sp-convert .sp-paper,.sp-convert .sp-rows{position:absolute;inset:16px;transition:opacity .4s,transform .4s}
.sp-convert .sp-rows{inset:0;padding:16px}
.sp-convert .sp-row{padding:12px 14px 12px 46px}
.sp-convert .sp-oral{font-size:15px}
.sp-convert .sp-pic{font-size:13.5px;margin-top:8px}
.sp-convert .sp-shot{width:84px}
.sp-busy{display:inline-block;width:12px;height:12px;border:2px solid #8b7cf6;border-top-color:transparent;border-radius:50%;animation:sp-spin .8s linear infinite;margin-right:6px;vertical-align:-1px}
@keyframes sp-spin{to{transform:rotate(360deg)}}
/* 演示框 880×580 */
.rp-demo .sp{width:880px;height:580px}
.rp-demo .sp-rows{padding:20px 22px}
.zp-slot{background:#4a4038;border:1px dashed #8a7462}.zp-slot.is-real{background:#3f5a3a;border:1px solid #5b7a52;color:#d8f0d0}.zp-slot.is-new{animation:entry-in .45s cubic-bezier(.2,.75,.2,1)}

/* 首屏图标拼装：三格画面依次落位，脚本行随后写出 */
.sp-ic-frame{position:absolute;left:12.7%;width:32.4%;height:18.1%;border-radius:12.1%/21.6%;background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 45%),var(--c);opacity:0;transform:translateX(-40%)}
.sp-ic-line{position:absolute;left:51.5%;height:3.9%;border-radius:999px;background:#fff;opacity:0;transform-origin:left;transform:scaleX(0)}
.hero-reveal[data-film=bridging] .sp-ic-frame{animation:sp-ic-frame .7s cubic-bezier(.2,.8,.25,1) var(--d) forwards}
.hero-reveal[data-film=bridging] .sp-ic-line{animation:sp-ic-line .55s cubic-bezier(.2,.8,.25,1) var(--d) forwards}
@keyframes sp-ic-frame{to{opacity:1;transform:none}}
@keyframes sp-ic-line{to{opacity:var(--o);transform:none}}
