.book-workbench[hidden]{display:none!important}.book-workbench{position:fixed;z-index:56;inset:0;display:grid;grid-template-columns:242px minmax(0,1fr);overflow:hidden;background:#101820;color:#d9e6e8;font-family:"Manrope","Noto Sans SC","Microsoft YaHei",sans-serif}.book-sidebar{display:flex;flex-direction:column;padding:19px 13px;border-right:1px solid #29414b;background:linear-gradient(180deg,#162530,#10181e)}.book-brand{display:flex;align-items:center;gap:9px;padding:3px 7px 22px}.book-logo{display:grid;place-items:center;width:39px;height:39px;border:1px solid #45aeb7;background:#173c45;color:#b1f0ef;font-size:19px;font-weight:800}.book-brand b,.book-brand small{display:block}.book-brand b{font-size:12px;color:#eef8f8}.book-brand small{margin-top:4px;color:#7fa2aa;font:9px "DM Mono",monospace}.book-project-switch{display:grid;gap:6px;margin:0 5px 21px;padding:11px;border:1px solid #2b4d59;background:#172c35;color:#8fb0b5;font-size:10px}.book-project-switch select{min-width:0;padding:7px;border:1px solid #38616b;background:#0f1a20;color:#d9ebed;font-size:11px}.book-project-switch small{color:#6f929a}.book-nav{display:grid;gap:4px}.book-nav-label{padding:4px 10px 7px;color:#5e8490;font:9px "DM Mono",monospace;letter-spacing:1px}.book-nav button{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:5px;min-height:42px;padding:0 10px;border:1px solid transparent;background:transparent;color:#8aa8ae;text-align:left;font-size:14px}.book-nav button span{font-size:11px}.book-nav button b{font:9px "DM Mono",monospace;color:#557680}.book-nav button:hover,.book-nav button.active{border-color:#317785;background:#1a3841;color:#baf3ee}.book-nav button.active b{color:#83d7d3}.book-sidebar-bottom{margin-top:auto;display:grid;gap:10px}.book-rules-badge{padding:11px;border:1px solid #2a4c55;background:#152a32;color:#91b2b5;font-size:10px}.book-rules-badge>span{color:#70cfb4}.book-rules-badge strong{display:block;margin:8px 0;color:#d5eeee;font-size:19px}.book-rules-badge strong small{font-size:10px;color:#7e9ca2}.book-rules-badge div{display:flex;gap:3px;flex-wrap:wrap}.book-rules-badge i{padding:3px 5px;border:1px solid #315764;color:#82aeb3;font-style:normal;font-size:9px}.book-rules-badge button,.book-help,.book-mode-switch{padding:7px 0;border:0;background:transparent;color:#8aadb1;text-align:left;font-size:10px}.book-help:hover,.book-mode-switch:hover{color:#b8efec}.book-main{min-width:0;overflow:auto;background:radial-gradient(circle at 88% 2%,#1d59645c,transparent 27%),#101820}.book-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:70px;padding:12px 28px;border-bottom:1px solid #29444e;background:#121f27e8}.book-breadcrumb{display:flex;align-items:center;gap:10px;color:#6e929b;font-size:11px}.book-breadcrumb b{color:#4d7c87}.book-breadcrumb strong{color:#d6ebeb}.book-top-actions{display:flex;align-items:center;gap:7px}.book-top-actions>span{color:#75b89c;font-size:10px}.book-primary,.book-secondary,.book-text-button,.book-icon-button{min-height:31px;padding:0 10px;border:1px solid #3c7580;background:#18353d;color:#b4e5e4;font-size:10px;cursor:pointer}.book-primary{border-color:#55b8b2;background:#42a49e;color:#071b1d;font-weight:800}.book-secondary:hover,.book-text-button:hover{border-color:#65b8be}.book-icon-button{padding:0 9px}.book-content{max-width:1400px;margin:auto;padding:29px}.book-page{display:none}.book-page.active{display:block}.book-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:25px}.book-page-heading.compact{margin-bottom:18px}.book-kicker,.book-panel-head>div>span{color:#6dc1c2;font:9px "DM Mono",monospace;letter-spacing:1px}.book-page-heading h1{margin:6px 0;color:#e8f4f4;font-size:27px;letter-spacing:-.6px}.book-page-heading p{margin:0;color:#88a4a9;font-size:12px}.book-workflow{display:flex;align-items:center;gap:11px;margin-bottom:18px}.book-workflow button{display:flex;align-items:center;gap:9px;flex:1;padding:11px;border:1px solid #2b4c56;background:#172b34;color:#90abb0;text-align:left}.book-workflow button.current{border-color:#3a9195;background:#1b3840;color:#d5eeee}.book-workflow button i{display:grid;place-items:center;width:27px;height:27px;border:1px solid #367885;color:#78c8c8;font:10px "DM Mono",monospace;font-style:normal}.book-workflow button span{flex:1}.book-workflow b,.book-workflow small{display:block}.book-workflow b{font-size:11px}.book-workflow small{margin-top:3px;color:#7898a0;font-size:9px}.book-workflow em{width:28px;height:1px;background:#37616a}.book-overview-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.book-lower-grid{margin-top:16px}.book-panel{padding:18px;border:1px solid #294953;background:linear-gradient(145deg,#182a32,#15222a);box-shadow:0 14px 35px #00000036}.book-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #294650}.book-panel-head h2{margin:4px 0 0;color:#e3f0f0;font-size:15px}.book-file-meta{display:flex;gap:12px;margin-bottom:8px;color:#79a5ad;font-size:10px}.book-file-meta span:last-child{margin-left:auto}.book-script-card textarea{width:100%;min-height:275px;resize:vertical;padding:12px;border:1px solid #2d5661;background:#0f1a20;color:#dbeceb;font:12px/1.7 "Noto Sans SC",sans-serif}.book-card-actions,.book-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:11px}.book-segment{display:flex;border:1px solid #335a64}.book-segment button{min-height:28px;padding:0 9px;border:0;background:transparent;color:#789da3;font-size:10px}.book-segment button.active{background:#24515a;color:#c4f2ef}.book-progress-card> .book-panel-head>strong{color:#77d0c7;font:14px "DM Mono",monospace}.book-progress-ring{display:grid;grid-template-columns:65px 1fr;align-items:center;gap:8px;margin:13px 0 18px}.book-progress-ring>b{grid-row:span 2;display:grid;place-items:center;width:62px;height:62px;border:5px solid #317b80;border-right-color:#4ab3ac;border-radius:50%;color:#d8efee;font-size:20px}.book-progress-ring>span{color:#65939b;font-size:10px}.book-progress-ring div{grid-column:2}.book-progress-ring strong,.book-progress-ring small{display:block}.book-progress-ring strong{color:#d0e8e7;font-size:12px}.book-progress-ring small{margin-top:3px;color:#78989e;font-size:10px}.book-progress-list{display:grid;gap:5px}.book-progress-list button{display:flex;justify-content:space-between;padding:9px 8px;border:0;border-left:2px solid #38646d;background:#15262e;color:#afd0d2;text-align:left;font-size:10px}.book-progress-list small{color:#709099}.book-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.book-rule-grid>div{display:grid;grid-template-columns:28px 1fr;column-gap:7px;align-items:center;padding:9px;background:#15262e}.book-rule-grid i{grid-row:span 2;display:grid;place-items:center;width:25px;height:25px;font-style:normal}.book-rule-grid i.plum{background:#3c3049;color:#c4a7ea}.book-rule-grid i.teal{background:#1e4545;color:#82d9c7}.book-rule-grid i.gold{background:#4a3d29;color:#e6c17c}.book-rule-grid i.coral{background:#4a3032;color:#efa0a1}.book-rule-grid b{color:#d7e7e7;font-size:10px}.book-rule-grid small{color:#78979d;font-size:9px}.book-prefix-label{color:#76c4bd;font-size:9px}.book-prefix-card p{min-height:55px;margin:9px 0;color:#a8c6c8;font-size:11px;line-height:1.7}.book-prefix-card>small,.book-activity small{color:#6d9097;font-size:9px}.book-prefix-card>small span{color:#6fc4c1}.book-activity{margin-top:16px;color:#76949a;font-size:11px}.book-empty{display:grid;place-items:center;align-content:center;min-height:280px;text-align:center;color:#6d8e97}.book-empty>span{display:grid;place-items:center;width:55px;height:55px;margin-bottom:13px;border:1px solid #39737c;border-radius:50%;color:#75c5c4;font-size:25px}.book-empty strong{color:#accacc;font-size:12px}.book-empty p{max-width:260px;color:#719099;font-size:10px;line-height:1.6}.book-asset-toolbar,.book-storyboard-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;color:#83a3a9;font-size:10px}.book-asset-toolbar>b,.book-asset-toolbar b{color:#bfe3df}.book-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.book-asset-card{display:grid;gap:9px;padding:13px;border:1px solid #2a505a;border-top:2px solid #42a39d;background:#162a31}.book-asset-card h3{margin:0;color:#dcefed;font-size:13px}.book-asset-card p{min-height:48px;margin:0;color:#8eafb2;font-size:10px;line-height:1.6}.book-asset-card small{color:#6f969d;font-size:9px}.book-asset-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#0d171c}.book-asset-card button{justify-self:start}.book-scene-layout{display:grid;grid-template-columns:250px 1fr;gap:16px}.book-scene-list{display:grid;align-content:start;gap:6px;min-height:450px}.book-scene-list button,.book-video-list button{padding:11px;border:0;border-left:2px solid #37636c;background:#162a32;color:#a9c7ca;text-align:left}.book-scene-list button.active,.book-video-list button.active{border-color:#4cb4ad;background:#1d3c43}.book-scene-list small,.book-video-list small{display:block;margin-top:4px;color:#72939a;font-size:9px}.book-scene-detail{min-height:450px}.book-storyboard-meta{padding:10px 12px;border:1px solid #294b55;background:#152932}.book-storyboard-layout{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}.book-video-list{display:grid;align-content:start;gap:13px;min-height:500px}.book-video-detail{min-height:500px}.book-operation-status{padding:6px 8px;border:1px solid #8c703d;color:#e0bd73;font-size:10px}@media(max-width:900px){.book-workbench{grid-template-columns:190px 1fr}.book-content{padding:18px}.book-overview-grid,.book-scene-layout,.book-storyboard-layout{grid-template-columns:1fr}.book-sidebar{padding:12px 8px}.book-topbar{padding:10px 16px}.book-top-actions>span{display:none}}@media(max-width:650px){.book-workbench{display:block;overflow:auto}.book-sidebar{position:sticky;top:0;z-index:3;display:block;padding:8px;border-right:0;border-bottom:1px solid #29414b}.book-brand{padding:2px 5px 9px}.book-project-switch{display:none}.book-sidebar-bottom{display:none}.book-nav{display:flex;overflow:auto}.book-nav-label{display:none}.book-nav button{min-width:106px;min-height:36px}.book-nav button b{display:none}.book-page-heading{display:block}.book-heading-actions,.book-card-actions{justify-content:flex-start;flex-wrap:wrap}.book-workflow{overflow:auto}.book-workflow button{min-width:170px}.book-workflow em{display:none}.book-content{padding:14px}.book-page-heading h1{font-size:22px}.book-rule-grid{grid-template-columns:1fr}.book-top-actions .book-secondary{display:none}}
.book-project-actions{display:flex;gap:5px}.book-project-actions input{min-width:0;flex:1;padding:6px;border:1px solid #38616b;background:#0f1a20;color:#d9ebed;font-size:10px}.book-project-actions button{width:27px;border:1px solid #4b8990;background:#1e4c55;color:#bce7e5}
.book-notice{position:fixed;z-index:90;right:24px;top:86px;width:min(440px,calc(100vw - 32px));display:grid;grid-template-columns:1fr auto;gap:5px 14px;padding:13px 15px;border:1px solid #397681;border-left:3px solid #51bbb2;background:#18343c;color:#cbe8e8;box-shadow:0 18px 45px #0009;font-size:11px;line-height:1.55}.book-notice[hidden]{display:none}.book-notice strong{color:#e3f7f4;font-size:12px}.book-notice span{grid-column:1/-1;color:#a7c6c9}.book-notice button{grid-column:2;grid-row:1/3;align-self:start;border:0;background:transparent;color:#9bc7c9;font-size:19px}.book-notice.error{border-color:#a95a5a;border-left-color:#e27474;background:#3a2428}.book-notice.success{border-left-color:#61c49e}.book-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:22px;background:#061016b8}.book-modal[hidden]{display:none}.book-modal-card{width:min(720px,100%);max-height:min(86vh,780px);overflow:auto;border:1px solid #3b7780;background:#14262e;box-shadow:0 24px 80px #000b}.book-modal-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid #2e5963}.book-modal-head h2{margin:0;color:#e8f5f4;font-size:16px}.book-modal-head button{border:0;background:transparent;color:#b5d9db;font-size:24px}.book-modal-body{padding:17px;color:#91b2b8;font-size:11px;line-height:1.65}.book-modal-body label{display:grid;gap:5px;margin:11px 0;color:#bad5d6}.book-modal-body textarea{min-height:100px;resize:vertical;padding:9px;border:1px solid #34636e;background:#0e1a20;color:#d9ecec;font:11px/1.6 "Noto Sans SC",sans-serif}.book-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.book-asset-card textarea{min-height:70px;resize:vertical;padding:8px;border:1px solid #2d5963;background:#0e1a20;color:#d8eaea;font:10px/1.55 "Noto Sans SC",sans-serif}
.book-workbench select option{background:#14262e;color:#dcefee}

/* 推书模式：项目级生图方案设置 */
.book-image-settings-modal-card{width:min(820px,100%)}.book-image-setting-grid{display:grid;gap:16px}.book-image-setting-grid>section{display:grid;gap:9px;padding:13px;border:1px solid #315c62;background:#11242a}.book-image-setting-grid>section>span{color:#c7e7e4;font-size:12px;font-weight:800}.book-image-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.book-image-choice-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.book-image-choice-grid.quality{grid-template-columns:repeat(5,minmax(0,1fr))}.book-image-choice-grid button{min-height:54px;padding:8px;border:1px solid #396b71;background:#152d33;color:#a9c8c9;text-align:left;font:10px/1.45 "Noto Sans SC",sans-serif;cursor:pointer}.book-image-choice-grid button:hover{border-color:#65b8b3;color:#d9f5f0}.book-image-choice-grid button.active{border-color:#5cc4b7;background:#1d4b4b;color:#e2faf5;box-shadow:inset 0 0 0 1px #55aa9e}.book-image-choice-grid button b,.book-image-choice-grid button small{display:block}.book-image-choice-grid button b{font-size:11px}.book-image-choice-grid button small{margin-top:4px;color:#82aaab;font-size:9px}.book-image-setting-note{margin:0;color:#7fa5a8;font-size:10px;line-height:1.6}.book-image-setting-summary{display:grid;gap:5px;margin-top:15px;padding:11px 12px;border-left:3px solid #53b9ad;background:#15363a}.book-image-setting-summary b{color:#d7f3ef;font-size:12px}.book-image-setting-summary small{color:#91b6b7;font-size:10px;line-height:1.6}
@media(max-width:650px){.book-image-choice-grid,.book-image-choice-grid.three{grid-template-columns:1fr}.book-image-choice-grid.quality{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 推书模式：卡片云海配图（等比缩放裁切 · 按卡片编排取景）
   底图 /assets/yunhai-card-art.jpg  1200x1800（2:3 竖版，保持原始比例，绝不拉伸变形）
   --art-zoom 单值百分比 = 宽高同比放大缩小；background-size 单值即锁定比例
   --art-pos 的 Y 值 = 取图的高度位置，参考：10% 金日云海 / 30% 层叠山峦 / 50% 云海飞鸟 / 72% 白衣人物 / 92% 岩石流云
   调整某张卡片的取景，只改它自己的 --art-zoom 与 --art-pos 两个值 */
.book-workbench{--art:url("/assets/yunhai-card-art.jpg");--art-op:.24}
[data-book-panel] .book-panel::before{content:"";position:absolute;inset:0;background-image:var(--art);background-repeat:no-repeat;background-size:var(--art-zoom,140%);background-position:var(--art-pos,50% 30%);opacity:var(--art-op);pointer-events:none}

[data-book-panel="overview"] .book-script-card::before{--art-zoom:134%;--art-pos:50% 10%}
[data-book-panel="overview"] .book-progress-card::before{--art-zoom:150%;--art-pos:50% 30%}
[data-book-panel="overview"] .book-rules-card::before{--art-zoom:158%;--art-pos:50% 52%}
[data-book-panel="overview"] .book-prefix-card::before{--art-zoom:168%;--art-pos:50% 76%}
[data-book-panel="overview"] .book-activity::before{--art-zoom:154%;--art-pos:50% 64%}
[data-book-panel="overview"] .book-files-card::before{--art-zoom:172%;--art-pos:50% 92%}

[data-book-panel="scenes"] .book-scene-list::before{--art-zoom:152%;--art-pos:50% 20%}
[data-book-panel="scenes"] .book-scene-detail::before{--art-zoom:136%;--art-pos:50% 42%}
[data-book-panel="storyboard"] .book-video-list{background:#fffdf8}
[data-book-panel="storyboard"] .book-video-list::before{content:none;--art-zoom:160%;--art-pos:50% 60%}
[data-book-panel="storyboard"] .book-video-detail::before{--art-zoom:134%;--art-pos:50% 70%}

/* 人物 / 道具面板：卡片由脚本生成，单独编排 */
[data-book-panel="characters"] .book-asset-card,[data-book-panel="props"] .book-asset-card{position:relative;overflow:hidden}
[data-book-panel="characters"] .book-asset-card::before,[data-book-panel="props"] .book-asset-card::before{content:"";position:absolute;inset:0;background-image:var(--art);background-repeat:no-repeat;background-size:var(--art-zoom,176%);background-position:var(--art-pos,50% 84%);opacity:.24;pointer-events:none}
[data-book-panel="characters"] .book-asset-card::before{--art-zoom:178%;--art-pos:50% 82%}
[data-book-panel="props"] .book-asset-card::before{--art-zoom:178%;--art-pos:50% 96%}
[data-book-panel="characters"] .book-asset-card>*,[data-book-panel="props"] .book-asset-card>*{position:relative;z-index:1}

/* 场景 / 分镜左侧列表：每个条目按钮单独配底图（按钮自带底色，容器图透不上来）
   取景按条目序号错开：奇数条取偏上、偶数条取偏下，避免一整列花纹完全重复 */
[data-book-panel="scenes"] .book-scene-list button,[data-book-panel="storyboard"] .book-video-list button{position:relative;overflow:hidden;border-left-width:3px;background:rgba(255,253,246,.62)}
[data-book-panel="storyboard"] .book-video-list button{background:rgba(255,250,235,.88);border-radius:10px;border:1px solid rgba(225,191,97,.45);padding:13px 14px;box-shadow:0 1px 2px rgba(120,100,50,.08)}
[data-book-panel="scenes"] .book-scene-list button::before,[data-book-panel="storyboard"] .book-video-list button::before{content:"";position:absolute;inset:0;background-image:var(--art);background-repeat:no-repeat;background-size:220%;background-position:50% 50%;opacity:.3;pointer-events:none}
[data-book-panel="storyboard"] .book-video-list button::before{background-size:230%;opacity:.46}
[data-book-panel="scenes"] .book-scene-list button>*,[data-book-panel="storyboard"] .book-video-list button>*{position:relative;z-index:1}
[data-book-panel="scenes"] .book-scene-list button:nth-child(odd)::before{background-position:50% 10%}
[data-book-panel="scenes"] .book-scene-list button:nth-child(even)::before{background-position:50% 42%}
[data-book-panel="scenes"] .book-scene-list button:nth-child(3n)::before{background-position:50% 74%}
[data-book-panel="storyboard"] .book-video-list button:nth-child(odd)::before{background-position:50% 30%}
[data-book-panel="storyboard"] .book-video-list button:nth-child(even)::before{background-position:50% 62%}
[data-book-panel="scenes"] .book-scene-list button.active>span,[data-book-panel="storyboard"] .book-video-list button.active>span{position:relative;z-index:1}
[data-book-panel="scenes"] .book-scene-list button.active,[data-book-panel="storyboard"] .book-video-list button.active{background:rgba(255,245,215,.72)}
[data-book-panel="scenes"] .book-scene-list button.active::before,[data-book-panel="storyboard"] .book-video-list button.active::before{opacity:.34}

/* 视频编号「复制」按钮：鎏金描边质感，替代原字符图标 */
.book-video-list .book-video-copy{position:relative;align-self:stretch;margin:0;border:1px solid rgba(225,191,97,.55);
  border-radius:10px;background:linear-gradient(180deg,#fffdf4,#fdf3d9);color:#a9842f;cursor:pointer;
  transition:background .16s,color .16s,border-color .16s,box-shadow .16s,transform .08s}
.book-video-list .book-video-copy svg{display:block}
.book-video-list .book-video-copy:hover{background:linear-gradient(180deg,#fff8e0,#fbedc0);color:#8a6a1c;
  border-color:#d9ad3f;box-shadow:0 3px 10px rgba(180,140,50,.22)}
.book-video-list .book-video-copy:active{transform:translateY(1px);box-shadow:inset 0 2px 5px rgba(160,125,45,.28)}
.book-video-list .book-video-copy:focus-visible{outline:2px solid #d9ad3f;outline-offset:2px}

/* 分镜两栏固定等高，超出内部滚动 */
.book-storyboard-layout .book-video-list,.book-storyboard-layout .book-video-detail{height:560px;overflow-y:auto !important}

/* 场景参考左列表：对齐分镜编号包样式（白底容器、大行距、圆角卡片）
   追加于文件末尾以覆盖前面的半透明底图规则 */
[data-book-panel="scenes"] .book-scene-list{gap:13px;background:#fffdf8}
[data-book-panel="scenes"] .book-scene-list::before{content:none}
[data-book-panel="scenes"] .book-scene-list button{background:rgba(255,250,235,.88);border-radius:10px;border:1px solid rgba(225,191,97,.45);padding:13px 14px;box-shadow:0 1px 2px rgba(120,100,50,.08)}
[data-book-panel="scenes"] .book-scene-list button::before{background-size:230%;opacity:.46}
[data-book-panel="scenes"] .book-scene-list button.active{background:rgba(255,245,215,.9)}
