:root{--red:#1f7664;--green:#2E8B57;--purple:#7C3AED;--orange:#F59E0B;--bg:#eef3f8;--card:#ffffff;--text:#1f2937;--muted:#6b7280;--line:#d1d5db;--blue:#0F766E}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft JhengHei",sans-serif}.app{max-width:1450px;margin:auto;padding:18px}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}h1{color:var(--red);margin:0}.status{color:var(--muted);font-size:13px}.tabs{display:flex;gap:8px;margin:18px 0;flex-wrap:wrap}.tab{border:0;background:#e9edf4;padding:11px 18px;border-radius:10px;font-weight:800;cursor:pointer}.tab.active{background:var(--red);color:#fff}.card{background:#fff;border-radius:14px;padding:18px;margin-bottom:16px;box-shadow:0 5px 18px rgba(31,42,68,.07)}.section{font-size:18px;font-weight:900;border-left:5px solid var(--red);padding-left:10px;margin-bottom:14px}input,select,textarea{width:100%;border:1px solid #ccd4df;border-radius:9px;padding:10px;font:inherit;background:#fff}textarea{min-height:95px;resize:vertical}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}label{font-size:13px;font-weight:800;color:#505867;display:block;margin-bottom:5px}.btn{border:0;border-radius:9px;padding:10px 14px;font-weight:800;cursor:pointer}.btn.primary{background:var(--green);color:#fff}.btn.secondary{background:var(--blue);color:#fff}.btn.danger{background:#e65757;color:#fff}.btn.gray{background:#e9edf3}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.toolbar>*{width:auto}.hidden{display:none!important}.searchbox{position:relative}.suggestions{position:absolute;z-index:20;left:0;right:0;top:45px;background:#fff;border:1px solid var(--line);border-radius:9px;max-height:340px;overflow:auto;box-shadow:0 10px 25px rgba(0,0,0,.15);display:none}.sug{padding:10px 12px;border-bottom:1px solid #f0f2f5;cursor:pointer}.sug:hover{background:#fff2f3}.muted{color:var(--muted);font-size:12px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{padding:5px 9px;border-radius:999px;font-size:13px;font-weight:800}.movie{background:#ffe6e9;color:#d33e50}.req{background:#ededed;color:#555}.role{background:#ffe7e8;color:#d64a53}.provide{background:#e8edff;color:#3d59ad}.roles{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:12px}.role-card{border:1px solid var(--line);border-radius:12px;background:#fafbfd;overflow:hidden}.role-head{font-weight:900;text-align:center;background:#dff4ea;padding:12px}.block{padding:11px;border-bottom:1px solid var(--line)}.actor-list{padding:8px}.actor{padding:9px 10px;border-radius:8px;margin:7px 0;color:#fff;cursor:pointer}.actor.s6{background:var(--purple)}.actor.s5{background:var(--orange)}.actor.other{background:#697588}.actor-top{display:flex;justify-content:space-between;font-weight:900}.detail{display:none;border-top:1px solid rgba(255,255,255,.4);margin-top:7px;padding-top:7px;font-size:12px;line-height:1.5}.actor.open .detail{display:block}.actor-alias{font-size:12px;opacity:.75;margin-top:2px;font-weight:500}.switch{display:flex;align-items:center;gap:7px}.pill{padding:8px 12px;border-radius:999px;border:1px solid var(--line);cursor:pointer;font-weight:800}.pill.active{background:var(--red);color:#fff;border-color:var(--red)}.actor-manager{display:grid;grid-template-columns:320px 1fr;gap:15px}.list{max-height:650px;overflow:auto;border:1px solid var(--line);border-radius:10px}.list-item{padding:10px 12px;border-bottom:1px solid #eef1f5;cursor:pointer}.list-item:hover,.list-item.active{background:#fff0f2}.checkbox-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:520px;overflow:auto;border:1px solid var(--line);padding:10px;border-radius:10px}.check{display:flex;align-items:center;gap:7px;padding:7px;border-radius:7px}.check:hover{background:#f5f7fa}.check input{width:auto}.notice{padding:10px 12px;border-radius:9px;margin-bottom:12px;display:none}.notice.ok{display:block;background:#e5f8ed;color:#177642}.notice.err{display:block;background:#ffe8e8;color:#a52a2a}.movie-profile{overflow:hidden}.movie-title-main{text-align:center;font-size:28px;font-weight:950;background:#e8f7f1;padding:10px;border-radius:9px}.movie-keywords{text-align:center;font-size:19px;font-weight:850;background:#eefaf4;padding:9px;margin-top:7px;border-radius:9px}.movie-info-grid{display:grid;grid-template-columns:130px 1fr;border:1px solid #9ab7ff;margin-top:12px}.movie-info-grid>div{padding:9px 11px;border-bottom:1px solid #9ab7ff}.movie-info-grid>div:nth-last-child(-n+2){border-bottom:0}.info-label{font-weight:900;background:#dff4ea;border-right:1px solid #9ab7ff}.info-value{background:#f0ffff}.shooting-box{margin-top:13px;border:1px solid #9ab7ff}.shooting-title{padding:9px;font-size:18px;font-weight:900;background:#dff4ea}.shooting-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:0}.shooting-item{display:grid;grid-template-columns:74px 1fr;border-top:1px solid #9ab7ff;border-right:1px solid #9ab7ff;align-items:center}.shooting-item:nth-child(4n){border-right:0}.shooting-name{padding:8px;font-weight:850;background:#eefaf4}.fit-badge{margin:5px;padding:7px 8px;border-radius:8px;color:#fff;text-align:center;font-weight:900;box-shadow:0 2px 4px rgba(0,0,0,.25)}.fit-none{background:#6f7074}.fit-normal{background:#5577c7}.fit-better{background:#5474d4}.fit-perfect{background:#b329e2}.fit-excellent{background:#ff9c12}.tag.req-male{background:#dcecff;color:#2060a8}.tag.req-female{background:#ffe0ea;color:#b53c68}.tag.req-hidden{background:#fff0b8;color:#846000}.role-head.hidden-role{background:#fff0bd;color:#805d00}.youxue-intro{background:#fffbd7;border:1px solid #f0df79;border-radius:10px;padding:11px 13px;line-height:1.75;margin-bottom:13px}.youxue-mode{display:flex;gap:10px;margin-bottom:13px;flex-wrap:wrap}.youxue-mode .pill.active{background:#ff7b84;border-color:#ff7b84}.youxue-groups{display:grid;gap:10px}.youxue-group{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border-radius:11px;background:#f8fbfd}.youxue-btn{border:0;border-radius:10px;padding:9px 13px;color:#fff;font-weight:900;cursor:pointer;box-shadow:0 3px 7px rgba(0,0,0,.18);transition:.15s transform,.15s filter}.youxue-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.youxue-btn.active{outline:4px solid rgba(255,77,97,.22);transform:translateY(-1px)}.youxue-tier4{background:#9639bd}.youxue-tier3{background:#ffab1d}.youxue-tier2{background:#4d6fc4}.youxue-tier1{background:#8a8f98}.youxue-selected{margin-top:13px;text-align:center;font-size:20px;font-weight:950}.youxue-required{margin-top:10px;display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.youxue-required .tag{background:#fff0c4;color:#7b5b00}.youxue-results{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:10px}.youxue-person{border:1px solid var(--line);border-radius:11px;padding:11px;background:#fafbfd}.youxue-person.best{border-color:#b92bd9;background:#fff6ff}.youxue-person-head{display:flex;justify-content:space-between;gap:10px;font-weight:950}.youxue-score{color:#b029d1}.youxue-match{margin-top:8px;display:flex;gap:5px;flex-wrap:wrap}.youxue-match .tag{background:#e6edff;color:#3d59ad}.youxue-miss{margin-top:6px;color:#999;font-size:12px}@media(max-width:1000px){.youxue-results{grid-template-columns:repeat(2,minmax(220px,1fr))}.roles{grid-template-columns:repeat(2,minmax(250px,1fr))}.actor-manager{grid-template-columns:1fr}.checkbox-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.shooting-grid{grid-template-columns:repeat(2,minmax(145px,1fr))}.shooting-item:nth-child(4n){border-right:1px solid #9ab7ff}.shooting-item:nth-child(2n){border-right:0}}@media(max-width:620px){.youxue-results{grid-template-columns:1fr}.app{padding:9px}.row,.row3,.roles,.checkbox-list,.shooting-grid{grid-template-columns:1fr}.shooting-item{border-right:0}.movie-info-grid{grid-template-columns:95px 1fr}}.training-mode{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}.training-target{margin-top:16px;padding:12px;border-radius:10px;background:#e8f7f1;text-align:center;font-size:21px;font-weight:950;}.training-target-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:10px;}.training-target-tags .tag{background:#ffe3e7;color:#ce4050;}.training-results{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:10px;}.training-person{padding:11px 13px;border-radius:10px;color:#fff;cursor:pointer;}.training-person.s6{background:var(--purple);}.training-person.s5{background:var(--orange);}.training-person.other{background:#697588;}.training-person-head{display:flex;justify-content:space-between;gap:10px;font-size:16px;font-weight:950;}.training-person-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}.training-person-tags .tag{background:rgba(255,255,255,.22);color:#fff;}.training-person-none{margin-top:8px;font-size:12px;opacity:.75;}@media(max-width:1000px){.training-results{grid-template-columns:repeat(2,minmax(220px,1fr));}}@media(max-width:620px){.training-results{grid-template-columns:1fr;}}.movie-overview{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:18px;margin-top:14px;align-items:start;}.movie-poster-wrap{border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#edf2f8,#dfe7f1);min-height:260px;box-shadow:0 10px 24px rgba(32,45,70,.14);display:flex;align-items:center;justify-content:center;}.movie-poster{display:block;width:100%;max-height:390px;object-fit:contain;}.movie-poster-fallback{color:#8792a3;font-weight:850;text-align:center;padding:30px 16px;}.movie-meta-panel{min-width:0}.audience-panel{margin-top:13px;display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:9px;}.audience-stat{background:linear-gradient(145deg,#f8faff,#eef3fb);border:1px solid #dce4ef;border-radius:12px;padding:11px 12px;}.audience-label{color:#707b8c;font-size:12px;font-weight:850;}.audience-value{margin-top:4px;font-size:18px;font-weight:950;color:#313b4c;}.audience-stat.male{background:linear-gradient(145deg,#edf6ff,#dcecff);border-color:#a9ccef;border-bottom:4px solid #4388d8;}.audience-stat.male .audience-value{color:#246cb8}.audience-stat.female{background:linear-gradient(145deg,#fff1f4,#ffe1e7);border-color:#efb5c1;border-bottom:4px solid #e35f78;}.audience-stat.female .audience-value{color:#c8435d}.audience-stat.child{border-bottom:4px solid #9aa5b5;}.audience-stat.reward{background:linear-gradient(145deg,#fff7e7,#fff0c9);border-color:#f3d28b;}.audience-stat.reward .audience-value{color:#9b6200}.actor-top-main,.training-person-main,.youxue-person-main{display:flex;align-items:center;gap:9px;min-width:0;}.actor-avatar{width:42px;height:54px;flex:0 0 42px;object-fit:cover;object-position:top center;border-radius:8px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.42);}.training-person .actor-avatar{width:46px;height:58px;flex-basis:46px}.youxue-person .actor-avatar{width:42px;height:52px;flex-basis:42px;border-color:#d8deea;background:#eef2f7;}.actor-name-wrap{min-width:0}.actor-name-wrap>div:first-child{overflow-wrap:anywhere;font-size:20px;font-weight:900;line-height:1.25;}.my-actor-photo{width:52px;height:66px;object-fit:cover;object-position:top center;border-radius:7px;background:#e8edf3;flex:0 0 34px;}.check.actor-check{align-items:center}.list-item.actor-list-rich{display:flex;align-items:center;gap:9px;}.list-item.actor-list-rich .my-actor-photo{width:38px;height:48px;flex-basis:38px}.actor-check span{font-size:22px;font-weight:900;line-height:1.2;}@media(max-width:800px){.movie-overview{grid-template-columns:1fr}.movie-poster-wrap{max-width:330px;width:100%;margin:auto}.audience-panel{grid-template-columns:repeat(2,minmax(110px,1fr))}}.check.actor-check{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:#fff;font-weight:900;margin:6px 0;transition:.15s;}.check.actor-check:hover{filter:brightness(1.04)}.check.actor-check input{margin-right:2px}.check.actor-check:has(input:checked){outline:3px solid rgba(255,255,255,.35);}.check.actor-check .my-actor-photo{width:56px;height:70px;border-radius:8px;flex:0 0 56px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.35);}.check.actor-check span{font-size:21px;font-weight:900;line-height:1.2;}.check.actor-check.s6{background:#7C3AED;}.check.actor-check.s5{background:#F59E0B;}.check.actor-check.s4{background:#3B82F6;}.actor-query-layout{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:16px;}.actor-query-panel{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;}.actor-query-panel-head{padding:13px 15px;font-size:18px;font-weight:950;background:linear-gradient(135deg,#e9f7f2,#f7fbfa);border-bottom:1px solid var(--line);}.actor-query-search{padding:14px}.actor-filter-grid{display:grid;gap:9px;padding:0 14px 14px}.actor-filter-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:9px;align-items:start;padding:9px 0;border-top:1px solid #edf0f3;}.actor-filter-label{font-weight:900;color:#475467;padding-top:7px}.actor-filter-options{display:flex;flex-wrap:wrap;gap:7px}.actor-filter-btn{border:1px solid #d6dde6;background:#f3f5f7;color:#4b5563;border-radius:999px;padding:7px 11px;font-weight:850;cursor:pointer;}.actor-filter-btn:hover{background:#e9eef2}.actor-filter-btn.active{color:#fff;background:var(--red);border-color:var(--red);}.actor-query-summary{padding:10px 14px;color:var(--muted);border-top:1px solid var(--line);font-size:13px;}.actor-query-results{max-height:760px;overflow:auto;padding:10px;display:grid;gap:8px;}.actor-query-result{display:flex;align-items:center;gap:11px;padding:10px 11px;border:1px solid #e3e8ee;border-radius:11px;cursor:pointer;background:#fbfcfd;}.actor-query-result:hover{border-color:#8fc8b8;background:#f2fbf7}.actor-query-result.active{border-color:var(--red);box-shadow:0 0 0 2px rgba(31,118,100,.13);background:#edf9f5;}.actor-query-result img{width:52px;height:66px;object-fit:cover;object-position:top center;border-radius:9px;background:#e8edf3;flex:0 0 52px}.actor-query-result-name{font-size:18px;font-weight:950}.actor-query-result-meta{margin-top:3px;color:var(--muted);font-size:12px}.actor-detail-empty{min-height:360px;display:flex;align-items:center;justify-content:center;color:var(--muted);padding:30px;text-align:center}.actor-detail-card{padding:18px}.actor-detail-hero{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start;}.actor-detail-photo-wrap{min-height:245px;border-radius:15px;overflow:hidden;background:linear-gradient(145deg,#edf2f8,#dfe7f1);display:flex;align-items:center;justify-content:center;box-shadow:0 9px 22px rgba(31,42,68,.13)}.actor-detail-photo{width:100%;max-height:320px;object-fit:contain;object-position:top center}.actor-detail-name{font-size:30px;font-weight:950}.actor-detail-id{margin-top:3px;color:var(--muted);font-size:12px}.actor-detail-stars{font-size:20px;font-weight:950;color:#7C3AED;margin-top:5px}.actor-detail-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.actor-basic-grid{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:9px;}.actor-basic-item{padding:10px 11px;border-radius:10px;background:#f4f7f9;border:1px solid #e0e6eb}.actor-basic-label{font-size:11px;color:var(--muted);font-weight:850}.actor-basic-value{margin-top:3px;font-weight:950}.actor-detail-section{margin-top:15px;padding-top:14px;border-top:1px solid #e4e9ee}.actor-detail-section-title{font-size:17px;font-weight:950;margin-bottom:9px}.actor-detail-tags{display:flex;flex-wrap:wrap;gap:7px}.actor-detail-tag{border:0;border-radius:999px;padding:7px 10px;font-weight:850;background:#e8f1ff;color:#315c9d;cursor:pointer}.actor-detail-tag.role-tag{background:#ffe8eb;color:#c34251}.actor-detail-tag:hover{filter:brightness(.97)}.actor-skill-list{display:grid;gap:8px}.actor-skill{padding:10px 12px;border-radius:10px;background:#f7f8fa;border:1px solid #e2e6eb;line-height:1.6}.actor-skill.kick{background:#fff7db;border-color:#eed57f;color:#705500;font-weight:850}.actor-market-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.actor-market-badge{padding:7px 10px;border-radius:999px;background:#f3e8ff;color:#7e22ce;font-weight:900}@media(max-width:1000px){.actor-query-layout{grid-template-columns:1fr}.actor-query-results{max-height:430px}}@media(max-width:620px){.actor-detail-hero{grid-template-columns:1fr}.actor-detail-photo-wrap{max-width:250px;width:100%;margin:auto}.actor-basic-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}.actor-filter-row{grid-template-columns:1fr}}.save-error{color:#ff8f8f!important}.writer-tags-panel{margin-top:13px;border:1px solid #e2d7f3;border-radius:13px;background:linear-gradient(145deg,#fbf8ff,#f5f0ff);padding:12px;}.writer-tags-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.writer-tags-title{font-size:16px;font-weight:950;color:#65408f}.writer-tags-temp{display:inline-block;margin-left:5px;padding:2px 7px;border-radius:999px;background:#eadcff;color:#7045a0;font-size:11px;vertical-align:2px}.writer-tags-help{margin-top:3px;color:#81758d;font-size:12px;line-height:1.5}.writer-tags-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.writer-tag-add,.writer-tag-clear,.writer-tag-chip{border:0;cursor:pointer;font:inherit;font-weight:850}.writer-tag-add{border-radius:9px;padding:8px 11px;background:#7650a5;color:#fff;white-space:nowrap}.writer-tag-add.active{background:#604084}.writer-tag-clear{border-radius:9px;padding:8px 10px;background:#eee7f6;color:#6f5589;white-space:nowrap}.writer-tag-selected,.writer-tag-options{display:flex;gap:7px;flex-wrap:wrap}.writer-tag-selected{margin-top:10px;min-height:30px;align-items:center}.writer-tag-selected.empty{padding:3px 0}.writer-tag-options{margin-top:10px;padding-top:10px;border-top:1px dashed #d8c7e8}.writer-tag-chip{padding:7px 11px;border-radius:999px;background:#fff;color:#604d70;border:1px solid #d8cce4;transition:.15s transform,.15s background,.15s color}.writer-tag-chip:hover{transform:translateY(-1px)}.writer-tag-chip.active{background:#8a55bd;color:#fff;border-color:#8a55bd;box-shadow:0 3px 8px rgba(104,66,142,.18)}@media(max-width:620px){.writer-tags-head{flex-direction:column}.writer-tags-actions{width:100%;justify-content:flex-start}}.role-limit-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.role-limit-heading span{font-size:11px;line-height:1.45;color:#8a6a42;font-weight:700}.role-limit-list{display:flex;gap:7px;flex-wrap:wrap}.role-limit-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6d6d6;border-radius:999px;padding:6px 9px;background:#ededed;color:#555;font:inherit;font-size:13px;font-weight:850;cursor:pointer;transition:.15s transform,.15s opacity,.15s background,.15s border-color}.role-limit-toggle:hover{transform:translateY(-1px)}.role-limit-toggle.unlocked{background:#f7f2ec;border-color:#d8c8b6;color:#9a826b;opacity:.82}.role-limit-toggle.unlocked .role-limit-text{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#9a826b}.role-limit-lock{font-size:14px;line-height:1}@media(max-width:620px){.role-limit-heading span{font-size:10.5px}}.inline-confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 12px;border:1px solid #d8e2ea;border-radius:10px;background:#f7fafc}.inline-confirm.hidden{display:none}.movie-manager{grid-template-columns:290px minmax(0,1fr)}.movie-edit-list-item{cursor:pointer}.movie-shooting-editor{margin-top:16px;padding:14px;border:1px solid #e0e7ee;border-radius:12px}.subsection-title{font-weight:700;margin-bottom:10px}.row4{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.movie-role-editor-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px}.movie-role-editor-card{border:1px solid #dce5ec;border-radius:12px;padding:12px;margin-bottom:12px;background:#fbfdff}.movie-role-editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.mini-btn{border:1px solid #cdd8e0;background:#fff;border-radius:7px;padding:5px 8px;margin-left:5px;cursor:pointer}.mini-btn:disabled{opacity:.4;cursor:not-allowed}.mini-btn.danger{color:#a52828}.field-hint{font-size:12px;color:#73808b;margin-top:4px}.movie-role-editor-card textarea{min-height:100px}@media(max-width:900px){.movie-manager{grid-template-columns:1fr}.row4{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media(max-width:560px){.row4{grid-template-columns:1fr}.movie-role-editor-title,.movie-role-editor-head{align-items:flex-start;flex-direction:column}}.movie-edit-list-item{display:flex;align-items:center;gap:11px;min-height:82px;padding:9px 10px;cursor:pointer;border-left:3px solid transparent;transition:background .16s ease,border-color .16s ease,transform .16s ease}.movie-edit-list-item:hover{background:#f4faf7}.movie-edit-list-item.selected{background:#eaf7f1;border-left-color:#16866f}.movie-edit-thumb-wrap{position:relative;flex:0 0 46px;width:46px;height:62px;border-radius:8px;overflow:hidden;background:linear-gradient(145deg,#edf3f7,#dce6ec);box-shadow:0 1px 4px rgba(26,52,69,.16)}.movie-edit-thumb{width:100%;height:100%;display:block;object-fit:cover;transition:transform .18s ease}.movie-edit-list-item:hover .movie-edit-thumb{transform:scale(1.035)}.movie-edit-thumb-fallback{display:none;width:100%;height:100%;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#71808b;letter-spacing:.08em;background:linear-gradient(145deg,#eef3f6,#dbe5eb)}.movie-edit-list-content{min-width:0;flex:1}.movie-edit-list-title{font-size:15px;font-weight:700;line-height:1.25;color:#263745;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.movie-edit-list-meta,.movie-edit-list-submeta{display:flex;align-items:center;gap:7px;min-width:0;font-size:12px;color:#6e7d88;line-height:1.3}.movie-edit-list-meta span:not(:last-child)::after{content:'・';margin-left:7px;color:#a0abb3}.movie-edit-stars{color:#b88013;font-weight:700;letter-spacing:-.04em}.movie-edit-list-submeta{margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:560px){.movie-edit-list-item{min-height:76px}.movie-edit-thumb-wrap{flex-basis:42px;width:42px;height:57px}}.movie-query-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.movie-control-row{margin:0;gap:7px}.movie-control-row>span{font-weight:850;color:#52616b}@media(max-width:620px){.movie-query-controls{align-items:flex-start;flex-direction:column}.movie-control-row{width:100%}}.movie-role-results-titlebar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}.movie-role-results-titlebar .section{margin:0;flex:1;min-width:240px}.movie-sort-inline{display:flex;align-items:center;gap:8px;white-space:nowrap;margin-left:auto}.movie-sort-inline>span{font-weight:850;color:#52616b}@media (max-width:768px){.movie-role-results-titlebar{align-items:flex-start}.movie-sort-inline{width:100%;justify-content:flex-end}}@media (max-width:460px){.movie-sort-inline{justify-content:flex-start;white-space:normal}}.actor-card-meta{display:flex;align-items:center;gap:8px;white-space:nowrap}.actor-expand-indicator{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:rgba(255,255,255,.18);font-size:16px;transition:transform .18s ease}.actor.open .actor-expand-indicator{transform:rotate(180deg)}.actor-basic-detail{padding-bottom:8px}.actor-analysis{margin-top:4px;border-top:1px solid rgba(255,255,255,.38);padding-top:8px}.actor-analysis-section+.actor-analysis-section{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.32)}.actor-analysis-heading{font-size:13px;font-weight:950;margin-bottom:6px;letter-spacing:.02em}.boxoffice-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.boxoffice-summary>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:8px;background:rgba(255,255,255,.16)}.boxoffice-summary span{font-size:12px}.boxoffice-summary strong{font-size:16px}.skill-analysis-list{display:grid;gap:6px}.skill-analysis-item{padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.12)}.skill-analysis-title{display:flex;align-items:flex-start;gap:6px;font-weight:850;line-height:1.4}.skill-analysis-mark{flex:0 0 auto;font-weight:950}.skill-analysis-item.active .skill-analysis-mark{color:#c9ffdc}.skill-analysis-item.inactive .skill-analysis-mark{color:#ffe0e0}.skill-analysis-item.pending .skill-analysis-mark{color:#fff0b8}.skill-analysis-name{margin:2px 0 0 20px;font-size:11px;opacity:.82;line-height:1.45}.skill-analysis-bonus{margin:3px 0 0 20px;font-weight:900}.skill-analysis-reason{margin:2px 0 0 20px;font-size:11px;opacity:.88;line-height:1.45}.actor-analysis-empty{font-size:12px;opacity:.85}@media(max-width:600px){.boxoffice-summary{grid-template-columns:1fr}.skill-analysis-title{font-size:12px}}.actor-skill.empty{color:var(--muted);font-style:normal;}.actor-relation-tags{display:flex;flex-wrap:wrap;gap:9px;}.actor-relation-tag{border:0;border-radius:11px;padding:9px 13px;background:#b52f35;color:#fff;font-weight:900;font-size:15px;cursor:pointer;box-shadow:0 4px 9px rgba(80,28,31,.25);}.actor-relation-tag:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);}.actor-relation-tag:disabled{cursor:default;opacity:.72;}.actor-relation-empty{display:inline-flex;align-items:center;min-height:38px;padding:8px 12px;border:1px solid #e2e6eb;border-radius:10px;background:#f7f8fa;color:var(--muted);}:root{--red:#1f7664;--green:#2E8B57;--purple:#7C3AED;--orange:#F59E0B;--bg:#eef3f8;--card:#ffffff;--text:#1f2937;--muted:#6b7280;--line:#d1d5db;--blue:#0F766E}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft JhengHei",sans-serif}.app{max-width:1450px;margin:auto;padding:18px}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}h1{color:var(--red);margin:0}.status{color:var(--muted);font-size:13px}.tabs{display:flex;gap:8px;margin:18px 0;flex-wrap:wrap}.tab{border:0;background:#e9edf4;padding:11px 18px;border-radius:10px;font-weight:800;cursor:pointer}.tab.active{background:var(--red);color:#fff}.card{background:#fff;border-radius:14px;padding:18px;margin-bottom:16px;box-shadow:0 5px 18px rgba(31,42,68,.07)}.section{font-size:18px;font-weight:900;border-left:5px solid var(--red);padding-left:10px;margin-bottom:14px}input,select,textarea{width:100%;border:1px solid #ccd4df;border-radius:9px;padding:10px;font:inherit;background:#fff}textarea{min-height:95px;resize:vertical}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}label{font-size:13px;font-weight:800;color:#505867;display:block;margin-bottom:5px}.btn{border:0;border-radius:9px;padding:10px 14px;font-weight:800;cursor:pointer}.btn.primary{background:var(--green);color:#fff}.btn.secondary{background:var(--blue);color:#fff}.btn.danger{background:#e65757;color:#fff}.btn.gray{background:#e9edf3}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.toolbar>*{width:auto}.hidden{display:none!important}.searchbox{position:relative}.suggestions{position:absolute;z-index:20;left:0;right:0;top:45px;background:#fff;border:1px solid var(--line);border-radius:9px;max-height:340px;overflow:auto;box-shadow:0 10px 25px rgba(0,0,0,.15);display:none}.sug{padding:10px 12px;border-bottom:1px solid #f0f2f5;cursor:pointer}.sug:hover{background:#fff2f3}.muted{color:var(--muted);font-size:12px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{padding:5px 9px;border-radius:999px;font-size:13px;font-weight:800}.movie{background:#ffe6e9;color:#d33e50}.req{background:#ededed;color:#555}.role{background:#ffe7e8;color:#d64a53}.provide{background:#e8edff;color:#3d59ad}.roles{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:12px}.role-card{border:1px solid var(--line);border-radius:12px;background:#fafbfd;overflow:hidden}.role-head{font-weight:900;text-align:center;background:#dff4ea;padding:12px}.block{padding:11px;border-bottom:1px solid var(--line)}.actor-list{padding:8px}.actor{padding:9px 10px;border-radius:8px;margin:7px 0;color:#fff;cursor:pointer}.actor.s6{background:var(--purple)}.actor.s5{background:var(--orange)}.actor.other{background:#697588}.actor-top{display:flex;justify-content:space-between;font-weight:900}.detail{display:none;border-top:1px solid rgba(255,255,255,.4);margin-top:7px;padding-top:7px;font-size:12px;line-height:1.5}.actor.open .detail{display:block}.actor-alias{font-size:12px;opacity:.75;margin-top:2px;font-weight:500}.switch{display:flex;align-items:center;gap:7px}.pill{padding:8px 12px;border-radius:999px;border:1px solid var(--line);cursor:pointer;font-weight:800}.pill.active{background:var(--red);color:#fff;border-color:var(--red)}.actor-manager{display:grid;grid-template-columns:320px 1fr;gap:15px}.list{max-height:650px;overflow:auto;border:1px solid var(--line);border-radius:10px}.list-item{padding:10px 12px;border-bottom:1px solid #eef1f5;cursor:pointer}.list-item:hover,.list-item.active{background:#fff0f2}.checkbox-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:520px;overflow:auto;border:1px solid var(--line);padding:10px;border-radius:10px}.check{display:flex;align-items:center;gap:7px;padding:7px;border-radius:7px}.check:hover{background:#f5f7fa}.check input{width:auto}.notice{padding:10px 12px;border-radius:9px;margin-bottom:12px;display:none}.notice.ok{display:block;background:#e5f8ed;color:#177642}.notice.err{display:block;background:#ffe8e8;color:#a52a2a}.movie-profile{overflow:hidden}.movie-title-main{text-align:center;font-size:28px;font-weight:950;background:#e8f7f1;padding:10px;border-radius:9px}.movie-keywords{text-align:center;font-size:19px;font-weight:850;background:#eefaf4;padding:9px;margin-top:7px;border-radius:9px}.movie-info-grid{display:grid;grid-template-columns:130px 1fr;border:1px solid #9ab7ff;margin-top:12px}.movie-info-grid>div{padding:9px 11px;border-bottom:1px solid #9ab7ff}.movie-info-grid>div:nth-last-child(-n+2){border-bottom:0}.info-label{font-weight:900;background:#dff4ea;border-right:1px solid #9ab7ff}.info-value{background:#f0ffff}.shooting-box{margin-top:13px;border:1px solid #9ab7ff}.shooting-title{padding:9px;font-size:18px;font-weight:900;background:#dff4ea}.shooting-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:0}.shooting-item{display:grid;grid-template-columns:74px 1fr;border-top:1px solid #9ab7ff;border-right:1px solid #9ab7ff;align-items:center}.shooting-item:nth-child(4n){border-right:0}.shooting-name{padding:8px;font-weight:850;background:#eefaf4}.fit-badge{margin:5px;padding:7px 8px;border-radius:8px;color:#fff;text-align:center;font-weight:900;box-shadow:0 2px 4px rgba(0,0,0,.25)}.fit-none{background:#6f7074}.fit-normal{background:#5577c7}.fit-better{background:#5474d4}.fit-perfect{background:#b329e2}.fit-excellent{background:#ff9c12}.tag.req-male{background:#dcecff;color:#2060a8}.tag.req-female{background:#ffe0ea;color:#b53c68}.tag.req-hidden{background:#fff0b8;color:#846000}.role-head.hidden-role{background:#fff0bd;color:#805d00}.youxue-intro{background:#fffbd7;border:1px solid #f0df79;border-radius:10px;padding:11px 13px;line-height:1.75;margin-bottom:13px}.youxue-mode{display:flex;gap:10px;margin-bottom:13px;flex-wrap:wrap}.youxue-mode .pill.active{background:#ff7b84;border-color:#ff7b84}.youxue-groups{display:grid;gap:10px}.youxue-group{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border-radius:11px;background:#f8fbfd}.youxue-btn{border:0;border-radius:10px;padding:9px 13px;color:#fff;font-weight:900;cursor:pointer;box-shadow:0 3px 7px rgba(0,0,0,.18);transition:.15s transform,.15s filter}.youxue-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.youxue-btn.active{outline:4px solid rgba(255,77,97,.22);transform:translateY(-1px)}.youxue-tier4{background:#9639bd}.youxue-tier3{background:#ffab1d}.youxue-tier2{background:#4d6fc4}.youxue-tier1{background:#8a8f98}.youxue-selected{margin-top:13px;text-align:center;font-size:20px;font-weight:950}.youxue-required{margin-top:10px;display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.youxue-required .tag{background:#fff0c4;color:#7b5b00}.youxue-results{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:10px}.youxue-person{border:1px solid var(--line);border-radius:11px;padding:11px;background:#fafbfd}.youxue-person.best{border-color:#b92bd9;background:#fff6ff}.youxue-person-head{display:flex;justify-content:space-between;gap:10px;font-weight:950}.youxue-score{color:#b029d1}.youxue-match{margin-top:8px;display:flex;gap:5px;flex-wrap:wrap}.youxue-match .tag{background:#e6edff;color:#3d59ad}.youxue-miss{margin-top:6px;color:#999;font-size:12px}@media(max-width:1000px){.youxue-results{grid-template-columns:repeat(2,minmax(220px,1fr))}.roles{grid-template-columns:repeat(2,minmax(250px,1fr))}.actor-manager{grid-template-columns:1fr}.checkbox-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.shooting-grid{grid-template-columns:repeat(2,minmax(145px,1fr))}.shooting-item:nth-child(4n){border-right:1px solid #9ab7ff}.shooting-item:nth-child(2n){border-right:0}}@media(max-width:620px){.youxue-results{grid-template-columns:1fr}.app{padding:9px}.row,.row3,.roles,.checkbox-list,.shooting-grid{grid-template-columns:1fr}.shooting-item{border-right:0}.movie-info-grid{grid-template-columns:95px 1fr}}.training-mode{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}.training-target{margin-top:16px;padding:12px;border-radius:10px;background:#e8f7f1;text-align:center;font-size:21px;font-weight:950;}.training-target-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:10px;}.training-target-tags .tag{background:#ffe3e7;color:#ce4050;}.training-results{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:10px;}.training-person{padding:11px 13px;border-radius:10px;color:#fff;cursor:pointer;}.training-person.s6{background:var(--purple);}.training-person.s5{background:var(--orange);}.training-person.other{background:#697588;}.training-person-head{display:flex;justify-content:space-between;gap:10px;font-size:16px;font-weight:950;}.training-person-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}.training-person-tags .tag{background:rgba(255,255,255,.22);color:#fff;}.training-person-none{margin-top:8px;font-size:12px;opacity:.75;}@media(max-width:1000px){.training-results{grid-template-columns:repeat(2,minmax(220px,1fr));}}@media(max-width:620px){.training-results{grid-template-columns:1fr;}}.movie-overview{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:18px;margin-top:14px;align-items:start;}.movie-poster-wrap{border-radius:16px;overflow:hidden;background:linear-gradient(145deg,#edf2f8,#dfe7f1);min-height:260px;box-shadow:0 10px 24px rgba(32,45,70,.14);display:flex;align-items:center;justify-content:center;}.movie-poster{display:block;width:100%;max-height:390px;object-fit:contain;}.movie-poster-fallback{color:#8792a3;font-weight:850;text-align:center;padding:30px 16px;}.movie-meta-panel{min-width:0}.audience-panel{margin-top:13px;display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:9px;}.audience-stat{background:linear-gradient(145deg,#f8faff,#eef3fb);border:1px solid #dce4ef;border-radius:12px;padding:11px 12px;}.audience-label{color:#707b8c;font-size:12px;font-weight:850;}.audience-value{margin-top:4px;font-size:18px;font-weight:950;color:#313b4c;}.audience-stat.male{background:linear-gradient(145deg,#edf6ff,#dcecff);border-color:#a9ccef;border-bottom:4px solid #4388d8;}.audience-stat.male .audience-value{color:#246cb8}.audience-stat.female{background:linear-gradient(145deg,#fff1f4,#ffe1e7);border-color:#efb5c1;border-bottom:4px solid #e35f78;}.audience-stat.female .audience-value{color:#c8435d}.audience-stat.child{border-bottom:4px solid #9aa5b5;}.audience-stat.reward{background:linear-gradient(145deg,#fff7e7,#fff0c9);border-color:#f3d28b;}.audience-stat.reward .audience-value{color:#9b6200}.actor-top-main,.training-person-main,.youxue-person-main{display:flex;align-items:center;gap:9px;min-width:0;}.actor-avatar{width:42px;height:54px;flex:0 0 42px;object-fit:cover;object-position:top center;border-radius:8px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.42);}.training-person .actor-avatar{width:46px;height:58px;flex-basis:46px}.youxue-person .actor-avatar{width:42px;height:52px;flex-basis:42px;border-color:#d8deea;background:#eef2f7;}.actor-name-wrap{min-width:0}.actor-name-wrap>div:first-child{overflow-wrap:anywhere;font-size:20px;font-weight:900;line-height:1.25;}.my-actor-photo{width:52px;height:66px;object-fit:cover;object-position:top center;border-radius:7px;background:#e8edf3;flex:0 0 34px;}.check.actor-check{align-items:center}.list-item.actor-list-rich{display:flex;align-items:center;gap:9px;}.list-item.actor-list-rich .my-actor-photo{width:38px;height:48px;flex-basis:38px}.actor-check span{font-size:22px;font-weight:900;line-height:1.2;}@media(max-width:800px){.movie-overview{grid-template-columns:1fr}.movie-poster-wrap{max-width:330px;width:100%;margin:auto}.audience-panel{grid-template-columns:repeat(2,minmax(110px,1fr))}}.check.actor-check{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;color:#fff;font-weight:900;margin:6px 0;transition:.15s;}.check.actor-check:hover{filter:brightness(1.04)}.check.actor-check input{margin-right:2px}.check.actor-check:has(input:checked){outline:3px solid rgba(255,255,255,.35);}.check.actor-check .my-actor-photo{width:56px;height:70px;border-radius:8px;flex:0 0 56px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.35);}.check.actor-check span{font-size:21px;font-weight:900;line-height:1.2;}.check.actor-check.s6{background:#7C3AED;}.check.actor-check.s5{background:#F59E0B;}.check.actor-check.s4{background:#3B82F6;}.actor-query-layout{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:16px;}.actor-query-panel{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;}.actor-query-panel-head{padding:13px 15px;font-size:18px;font-weight:950;background:linear-gradient(135deg,#e9f7f2,#f7fbfa);border-bottom:1px solid var(--line);}.actor-query-search{padding:14px}.actor-filter-grid{display:grid;gap:9px;padding:0 14px 14px}.actor-filter-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:9px;align-items:start;padding:9px 0;border-top:1px solid #edf0f3;}.actor-filter-label{font-weight:900;color:#475467;padding-top:7px}.actor-filter-options{display:flex;flex-wrap:wrap;gap:7px}.actor-filter-btn{border:1px solid #d6dde6;background:#f3f5f7;color:#4b5563;border-radius:999px;padding:7px 11px;font-weight:850;cursor:pointer;}.actor-filter-btn:hover{background:#e9eef2}.actor-filter-btn.active{color:#fff;background:var(--red);border-color:var(--red);}.actor-query-summary{padding:10px 14px;color:var(--muted);border-top:1px solid var(--line);font-size:13px;}.actor-query-results{max-height:760px;overflow:auto;padding:10px;display:grid;gap:8px;}.actor-query-result{display:flex;align-items:center;gap:11px;padding:10px 11px;border:1px solid #e3e8ee;border-radius:11px;cursor:pointer;background:#fbfcfd;}.actor-query-result:hover{border-color:#8fc8b8;background:#f2fbf7}.actor-query-result.active{border-color:var(--red);box-shadow:0 0 0 2px rgba(31,118,100,.13);background:#edf9f5;}.actor-query-result img{width:52px;height:66px;object-fit:cover;object-position:top center;border-radius:9px;background:#e8edf3;flex:0 0 52px}.actor-query-result-name{font-size:18px;font-weight:950}.actor-query-result-meta{margin-top:3px;color:var(--muted);font-size:12px}.actor-detail-empty{min-height:360px;display:flex;align-items:center;justify-content:center;color:var(--muted);padding:30px;text-align:center}.actor-detail-card{padding:18px}.actor-detail-hero{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;align-items:start;}.actor-detail-photo-wrap{min-height:245px;border-radius:15px;overflow:hidden;background:linear-gradient(145deg,#edf2f8,#dfe7f1);display:flex;align-items:center;justify-content:center;box-shadow:0 9px 22px rgba(31,42,68,.13)}.actor-detail-photo{width:100%;max-height:320px;object-fit:contain;object-position:top center}.actor-detail-name{font-size:30px;font-weight:950}.actor-detail-id{margin-top:3px;color:var(--muted);font-size:12px}.actor-detail-stars{font-size:20px;font-weight:950;color:#7C3AED;margin-top:5px}.actor-detail-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.actor-basic-grid{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:9px;}.actor-basic-item{padding:10px 11px;border-radius:10px;background:#f4f7f9;border:1px solid #e0e6eb}.actor-basic-label{font-size:11px;color:var(--muted);font-weight:850}.actor-basic-value{margin-top:3px;font-weight:950}.actor-detail-section{margin-top:15px;padding-top:14px;border-top:1px solid #e4e9ee}.actor-detail-section-title{font-size:17px;font-weight:950;margin-bottom:9px}.actor-detail-tags{display:flex;flex-wrap:wrap;gap:7px}.actor-detail-tag{border:0;border-radius:999px;padding:7px 10px;font-weight:850;background:#e8f1ff;color:#315c9d;cursor:pointer}.actor-detail-tag.role-tag{background:#ffe8eb;color:#c34251}.actor-detail-tag:hover{filter:brightness(.97)}.actor-skill-list{display:grid;gap:8px}.actor-skill{padding:10px 12px;border-radius:10px;background:#f7f8fa;border:1px solid #e2e6eb;line-height:1.6}.actor-skill.kick{background:#fff7db;border-color:#eed57f;color:#705500;font-weight:850}.actor-market-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.actor-market-badge{padding:7px 10px;border-radius:999px;background:#f3e8ff;color:#7e22ce;font-weight:900}@media(max-width:1000px){.actor-query-layout{grid-template-columns:1fr}.actor-query-results{max-height:430px}}@media(max-width:620px){.actor-detail-hero{grid-template-columns:1fr}.actor-detail-photo-wrap{max-width:250px;width:100%;margin:auto}.actor-basic-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}.actor-filter-row{grid-template-columns:1fr}}.save-error{color:#ff8f8f!important}.writer-tags-panel{margin-top:13px;border:1px solid #e2d7f3;border-radius:13px;background:linear-gradient(145deg,#fbf8ff,#f5f0ff);padding:12px;}.writer-tags-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.writer-tags-title{font-size:16px;font-weight:950;color:#65408f}.writer-tags-temp{display:inline-block;margin-left:5px;padding:2px 7px;border-radius:999px;background:#eadcff;color:#7045a0;font-size:11px;vertical-align:2px}.writer-tags-help{margin-top:3px;color:#81758d;font-size:12px;line-height:1.5}.writer-tags-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.writer-tag-add,.writer-tag-clear,.writer-tag-chip{border:0;cursor:pointer;font:inherit;font-weight:850}.writer-tag-add{border-radius:9px;padding:8px 11px;background:#7650a5;color:#fff;white-space:nowrap}.writer-tag-add.active{background:#604084}.writer-tag-clear{border-radius:9px;padding:8px 10px;background:#eee7f6;color:#6f5589;white-space:nowrap}.writer-tag-selected,.writer-tag-options{display:flex;gap:7px;flex-wrap:wrap}.writer-tag-selected{margin-top:10px;min-height:30px;align-items:center}.writer-tag-selected.empty{padding:3px 0}.writer-tag-options{margin-top:10px;padding-top:10px;border-top:1px dashed #d8c7e8}.writer-tag-chip{padding:7px 11px;border-radius:999px;background:#fff;color:#604d70;border:1px solid #d8cce4;transition:.15s transform,.15s background,.15s color}.writer-tag-chip:hover{transform:translateY(-1px)}.writer-tag-chip.active{background:#8a55bd;color:#fff;border-color:#8a55bd;box-shadow:0 3px 8px rgba(104,66,142,.18)}@media(max-width:620px){.writer-tags-head{flex-direction:column}.writer-tags-actions{width:100%;justify-content:flex-start}}.role-limit-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.role-limit-heading span{font-size:11px;line-height:1.45;color:#8a6a42;font-weight:700}.role-limit-list{display:flex;gap:7px;flex-wrap:wrap}.role-limit-toggle{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6d6d6;border-radius:999px;padding:6px 9px;background:#ededed;color:#555;font:inherit;font-size:13px;font-weight:850;cursor:pointer;transition:.15s transform,.15s opacity,.15s background,.15s border-color}.role-limit-toggle:hover{transform:translateY(-1px)}.role-limit-toggle.unlocked{background:#f7f2ec;border-color:#d8c8b6;color:#9a826b;opacity:.82}.role-limit-toggle.unlocked .role-limit-text{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:#9a826b}.role-limit-lock{font-size:14px;line-height:1}@media(max-width:620px){.role-limit-heading span{font-size:10.5px}}.inline-confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 12px;border:1px solid #d8e2ea;border-radius:10px;background:#f7fafc}.inline-confirm.hidden{display:none}.movie-manager{grid-template-columns:290px minmax(0,1fr)}.movie-edit-list-item{cursor:pointer}.movie-shooting-editor{margin-top:16px;padding:14px;border:1px solid #e0e7ee;border-radius:12px}.subsection-title{font-weight:700;margin-bottom:10px}.row4{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.movie-role-editor-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px}.movie-role-editor-card{border:1px solid #dce5ec;border-radius:12px;padding:12px;margin-bottom:12px;background:#fbfdff}.movie-role-editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.mini-btn{border:1px solid #cdd8e0;background:#fff;border-radius:7px;padding:5px 8px;margin-left:5px;cursor:pointer}.mini-btn:disabled{opacity:.4;cursor:not-allowed}.mini-btn.danger{color:#a52828}.field-hint{font-size:12px;color:#73808b;margin-top:4px}.movie-role-editor-card textarea{min-height:100px}@media(max-width:900px){.movie-manager{grid-template-columns:1fr}.row4{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media(max-width:560px){.row4{grid-template-columns:1fr}.movie-role-editor-title,.movie-role-editor-head{align-items:flex-start;flex-direction:column}}.movie-edit-list-item{display:flex;align-items:center;gap:11px;min-height:82px;padding:9px 10px;cursor:pointer;border-left:3px solid transparent;transition:background .16s ease,border-color .16s ease,transform .16s ease}.movie-edit-list-item:hover{background:#f4faf7}.movie-edit-list-item.selected{background:#eaf7f1;border-left-color:#16866f}.movie-edit-thumb-wrap{position:relative;flex:0 0 46px;width:46px;height:62px;border-radius:8px;overflow:hidden;background:linear-gradient(145deg,#edf3f7,#dce6ec);box-shadow:0 1px 4px rgba(26,52,69,.16)}.movie-edit-thumb{width:100%;height:100%;display:block;object-fit:cover;transition:transform .18s ease}.movie-edit-list-item:hover .movie-edit-thumb{transform:scale(1.035)}.movie-edit-thumb-fallback{display:none;width:100%;height:100%;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#71808b;letter-spacing:.08em;background:linear-gradient(145deg,#eef3f6,#dbe5eb)}.movie-edit-list-content{min-width:0;flex:1}.movie-edit-list-title{font-size:15px;font-weight:700;line-height:1.25;color:#263745;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.movie-edit-list-meta,.movie-edit-list-submeta{display:flex;align-items:center;gap:7px;min-width:0;font-size:12px;color:#6e7d88;line-height:1.3}.movie-edit-list-meta span:not(:last-child)::after{content:'・';margin-left:7px;color:#a0abb3}.movie-edit-stars{color:#b88013;font-weight:700;letter-spacing:-.04em}.movie-edit-list-submeta{margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:560px){.movie-edit-list-item{min-height:76px}.movie-edit-thumb-wrap{flex-basis:42px;width:42px;height:57px}}.movie-query-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.movie-control-row{margin:0;gap:7px}.movie-control-row>span{font-weight:850;color:#52616b}@media(max-width:620px){.movie-query-controls{align-items:flex-start;flex-direction:column}.movie-control-row{width:100%}}.movie-role-results-titlebar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}.movie-role-results-titlebar .section{margin:0;flex:1;min-width:240px}.movie-sort-inline{display:flex;align-items:center;gap:8px;white-space:nowrap;margin-left:auto}.movie-sort-inline>span{font-weight:850;color:#52616b}@media (max-width:768px){.movie-role-results-titlebar{align-items:flex-start}.movie-sort-inline{width:100%;justify-content:flex-end}}@media (max-width:460px){.movie-sort-inline{justify-content:flex-start;white-space:normal}}.actor-card-meta{display:flex;align-items:center;gap:8px;white-space:nowrap}.actor-expand-indicator{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:rgba(255,255,255,.18);font-size:16px;transition:transform .18s ease}.actor.open .actor-expand-indicator{transform:rotate(180deg)}.actor-basic-detail{padding-bottom:8px}.actor-analysis{margin-top:4px;border-top:1px solid rgba(255,255,255,.38);padding-top:8px}.actor-analysis-section+.actor-analysis-section{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.32)}.actor-analysis-heading{font-size:13px;font-weight:950;margin-bottom:6px;letter-spacing:.02em}.boxoffice-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.boxoffice-summary>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:8px;background:rgba(255,255,255,.16)}.boxoffice-summary span{font-size:12px}.boxoffice-summary strong{font-size:16px}.skill-analysis-list{display:grid;gap:6px}.skill-analysis-item{padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.12)}.skill-analysis-title{display:flex;align-items:flex-start;gap:6px;font-weight:850;line-height:1.4}.skill-analysis-mark{flex:0 0 auto;font-weight:950}.skill-analysis-item.active .skill-analysis-mark{color:#c9ffdc}.skill-analysis-item.inactive .skill-analysis-mark{color:#ffe0e0}.skill-analysis-item.pending .skill-analysis-mark{color:#fff0b8}.skill-analysis-name{margin:2px 0 0 20px;font-size:11px;opacity:.82;line-height:1.45}.skill-analysis-bonus{margin:3px 0 0 20px;font-weight:900}.skill-analysis-reason{margin:2px 0 0 20px;font-size:11px;opacity:.88;line-height:1.45}.actor-analysis-empty{font-size:12px;opacity:.85}@media(max-width:600px){.boxoffice-summary{grid-template-columns:1fr}.skill-analysis-title{font-size:12px}}.beta-status{margin-top:4px;font-size:12px;color:#8fd3ff;line-height:1.35;}.security-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(4,7,12,.78);backdrop-filter:blur(4px);}.security-dialog{width:min(430px,100%);box-sizing:border-box;padding:22px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#171c27;box-shadow:0 24px 70px rgba(0,0,0,.48);}.security-dialog-title{font-size:22px;font-weight:800;margin-bottom:8px}.security-dialog-text{line-height:1.65;color:#c9d0dc;margin-bottom:16px}.security-turnstile{min-height:66px;display:flex;align-items:center;justify-content:center}.security-dialog-status{min-height:24px;margin-top:12px;color:#aeb8c8;text-align:center}.security-dialog-status.error{color:#ff9b9b}.security-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}

/* S10.1 catalog, persistence, and editor pagination */
.check.actor-check.star-6{background:var(--star-6);color:#fff}
.check.actor-check.star-5{background:var(--star-5);color:#fff}
.check.actor-check.star-4{background:var(--star-4);color:#fff}
.check.actor-check.star-low{background:var(--star-low);color:#1f2937;border:1px solid #d8e0e8}
.check.actor-check.star-5:has(input:checked),.check.actor-check.star-low:has(input:checked){outline-color:rgba(31,41,55,.28)}
.check.actor-check .my-actor-name{flex:1;min-width:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.check.actor-check .my-actor-star{flex:0 0 auto;font-size:15px;opacity:.92}
.editor-pagination{justify-content:center;gap:10px;margin:10px 0 2px;flex-wrap:wrap}
.actor-query-pagination{justify-content:center;gap:10px;padding:10px 14px 14px}
.list-item.actor-list-rich.active,.movie-edit-list-item.selected{border-color:#1f7664;background:#edf9f5;box-shadow:0 0 0 2px rgba(31,118,100,.12)}
.actor-editor-list-name{font-weight:900;line-height:1.25}
@media(max-width:620px){.check.actor-check .my-actor-name{font-size:16px}.check.actor-check .my-actor-star{font-size:14px}.editor-pagination .btn,.actor-query-pagination .btn{padding:8px 12px}}

/* S10.2 unified actor star palette: 6 purple, 5 bright gold, 4 blue, below 4 white */
:root{--star-6:#7C3AED;--star-5:#ff9c12;--star-4:#4d6fc4;--star-low:#fff}
.actor.s6,.training-person.s6{background:var(--star-6)}
.actor.s5,.training-person.s5{background:var(--star-5)}
.actor.s4,.training-person.s4{background:var(--star-4)}
.actor.low,.training-person.low{background:var(--star-low);color:#1f2937;border:1px solid #d8e0e8}
.actor.low .detail,.actor.low .actor-analysis{border-color:#d8e0e8}
.actor.low .actor-expand-indicator{background:#edf1f5}
.actor.low .boxoffice-summary>div,.actor.low .skill-analysis-item{background:#f3f6f9}
.actor-query-result.star-6,.actor-list-rich.star-6,.youxue-person.star-6,.actor-detail-hero.star-6{background:var(--star-6);color:#fff}
.actor-query-result.star-5,.actor-list-rich.star-5,.youxue-person.star-5,.actor-detail-hero.star-5{background:var(--star-5);color:#fff}
.actor-query-result.star-4,.actor-list-rich.star-4,.youxue-person.star-4,.actor-detail-hero.star-4{background:var(--star-4);color:#fff}
.actor-query-result.star-low,.actor-list-rich.star-low,.youxue-person.star-low,.actor-detail-hero.star-low{background:var(--star-low);color:#1f2937}
.actor-query-result.star-6 .actor-query-result-meta,.actor-query-result.star-5 .actor-query-result-meta,.actor-query-result.star-4 .actor-query-result-meta,.actor-list-rich.star-6 .actor-editor-list-meta,.actor-list-rich.star-5 .actor-editor-list-meta,.actor-list-rich.star-4 .actor-editor-list-meta{color:rgba(255,255,255,.88)}
.actor-editor-list-meta{font-size:12px;color:#6b7280}
.actor-list-rich.star-6.active,.actor-list-rich.star-5.active,.actor-list-rich.star-4.active,.actor-query-result.star-6.active,.actor-query-result.star-5.active,.actor-query-result.star-4.active{box-shadow:inset 0 0 0 3px rgba(255,255,255,.9),0 0 0 2px rgba(31,118,100,.2)}
.youxue-person.star-6 .youxue-score,.youxue-person.star-5 .youxue-score,.youxue-person.star-4 .youxue-score{color:#fff}
.youxue-person.star-6 .youxue-miss,.youxue-person.star-5 .youxue-miss,.youxue-person.star-4 .youxue-miss{color:rgba(255,255,255,.82)}
.youxue-person.star-6 .tag,.youxue-person.star-5 .tag,.youxue-person.star-4 .tag{background:rgba(255,255,255,.22);color:#fff}
.actor-detail-hero.star-6 .actor-detail-stars,.actor-detail-hero.star-5 .actor-detail-stars,.actor-detail-hero.star-4 .actor-detail-stars{color:#fff}

/* S10.3.3 local actor skill editor */
.actor-skill-editor{margin-top:16px;padding:14px;border:1px solid #dbe4eb;border-radius:12px;background:#f8fbfd}
.actor-skill-editor .subsection-title{margin-bottom:8px}
.actor-skill-editor-note{margin-bottom:12px;padding:10px 12px;border:1px solid #f0cf86;border-radius:9px;background:#fff8e6;color:#76551b;font-size:13px;line-height:1.55}
.actor-skill-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.actor-skill-editor-grid textarea{min-height:105px}
.actor-skill-editor-wide{grid-column:1/-1}
@media(max-width:760px){.actor-skill-editor-grid{grid-template-columns:1fr}.actor-skill-editor-wide{grid-column:auto}}


/* S10.3.4 movie casting simulator UI */
body.movie-casting-modal-open{overflow:hidden}
.casting-slot-block{padding:12px;background:#fbfcfe}
.casting-slot-label{margin-bottom:8px;font-size:13px;font-weight:900;color:#5a6672}
.movie-casting-slot{width:100%;min-height:132px;border:1px dashed #aab8c5;border-radius:12px;background:#fff}
.movie-casting-slot.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#1f7664;font-weight:900;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.movie-casting-slot.empty:hover{border-color:#1f7664;background:#f0faf6;transform:translateY(-1px)}
.casting-slot-plus{font-size:34px;line-height:1}
.movie-casting-slot.loading{display:flex;align-items:center;justify-content:center;gap:9px;color:#6b7280;font-size:13px}
.casting-loading-dot{width:9px;height:9px;border-radius:999px;background:#1f7664;box-shadow:16px 0 0 rgba(31,118,100,.55),32px 0 0 rgba(31,118,100,.25);margin-right:32px;animation:castingPulse 1.1s infinite ease-in-out}
@keyframes castingPulse{0%,100%{opacity:.35}50%{opacity:1}}
.movie-casting-slot.selected{border:0;background:transparent;min-height:0}
.casting-selected-card.actor{margin:0;padding:10px;border-radius:12px;box-shadow:0 5px 14px rgba(22,35,54,.15)}
.casting-selected-summary{display:flex;align-items:center;gap:11px;font-weight:950}
.casting-selected-image-wrap{flex:0 0 70px;width:70px;height:92px;border-radius:10px;overflow:hidden;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center}
.casting-selected-image{display:block;width:100%;height:100%;object-fit:cover}
.casting-selected-name{flex:1;min-width:0;font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.casting-change-button,.casting-select-button{width:100%;border:0;border-radius:9px;padding:10px 12px;font-weight:900;cursor:pointer}
.casting-change-button{margin-top:10px;background:rgba(255,255,255,.92);color:#172033}
.casting-change-button:hover{filter:brightness(.96)}
.movie-casting-overlay{position:fixed;inset:0;z-index:9500;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(13,20,31,.66);backdrop-filter:blur(3px)}
.movie-casting-dialog{width:min(80vw,1800px);height:min(78vh,980px);display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#f7fafc;box-shadow:0 30px 90px rgba(0,0,0,.42);cursor:default}
.movie-casting-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid #d8e1e8;background:#fff}
.movie-casting-header h2{margin:0 0 4px;font-size:23px;color:#172033}
.movie-casting-summary{font-size:13px;color:#6b7280}
.movie-casting-sort{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.movie-casting-sort>span{font-weight:900;color:#52616b}
.movie-casting-message{padding:10px 20px;border-bottom:1px solid #e0e7ed;background:#f1f8f5;color:#52616b;font-size:13px}
.movie-casting-message.error{background:#fff0f0;color:#a52a2a}
.movie-casting-message.loading,.movie-casting-message.empty{background:#f4f6f8;color:#6b7280}
.movie-casting-grid{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-content:start;gap:12px;padding:16px 18px 22px}
.casting-candidate.actor{display:flex;flex-direction:column;min-height:178px;margin:0;padding:11px;border-radius:12px;box-shadow:0 4px 12px rgba(25,40,59,.12)}
.casting-candidate.actor.selected{outline:3px solid rgba(255,255,255,.9);outline-offset:-5px}
.casting-candidate-top{display:flex;align-items:flex-start;gap:9px;font-weight:900}
.casting-candidate-image-wrap{flex:0 0 58px;width:58px;height:76px;border-radius:9px;overflow:hidden;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center}
.casting-candidate-image{display:block;width:100%;height:100%;object-fit:cover}
.casting-candidate-main{flex:1;min-width:0}
.casting-candidate-name{font-size:16px;line-height:1.3;overflow-wrap:anywhere}
.casting-candidate-star{margin-top:5px;font-size:13px;opacity:.9}
.casting-assignment{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.2);font-size:11px}
.casting-assignment.current{background:rgba(255,255,255,.34)}
.casting-candidate .detail{margin-bottom:10px}
.casting-select-button{margin-top:auto;background:#fff;color:#172033}
.casting-select-button:hover{filter:brightness(.95)}
.casting-select-button:disabled{cursor:default;opacity:.68}
.actor.low .casting-select-button,.actor.low .casting-change-button{background:#edf1f5;color:#1f2937}
@media(max-width:1100px){.movie-casting-dialog{width:88vw;height:82vh}.movie-casting-grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr))}}
@media(max-width:760px){.movie-casting-overlay{padding:8px}.movie-casting-dialog{width:96vw;height:90vh;border-radius:14px}.movie-casting-header{align-items:flex-start;flex-direction:column;padding:14px}.movie-casting-sort{justify-content:flex-start}.movie-casting-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:9px}.casting-candidate-image-wrap{flex-basis:48px;width:48px;height:64px}.casting-candidate-name{font-size:14px}}
@media(max-width:480px){.movie-casting-grid{grid-template-columns:1fr}.movie-casting-dialog{height:92vh}.casting-selected-name{font-size:18px}}

/* S10.3.5 movie casting four-column accordion fix */
.movie-casting-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-flow:row;
  align-items:start;
}
.casting-candidate.actor{
  min-width:0;
  overflow:hidden;
  align-self:start;
}
.casting-candidate.actor.open{
  grid-column:1/-1;
  min-height:0;
}
.casting-candidate-top,.casting-candidate-main,.casting-selected-main{min-width:0}
.casting-candidate-alias,.casting-selected-alias{
  margin-top:4px;
  font-size:11px;
  line-height:1.35;
  opacity:.86;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  overflow-wrap:anywhere;
}
.casting-candidate-meta,.casting-selected-meta{
  display:flex;
  flex-wrap:wrap;
  gap:4px 7px;
  margin-top:5px;
  font-size:11px;
  line-height:1.3;
  opacity:.92;
}
.casting-candidate-meta span,.casting-selected-meta span{
  display:inline-flex;
  align-items:center;
  min-width:0;
}
.casting-candidate .detail{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.casting-candidate.actor.open .detail{display:block}
.casting-candidate.actor.open .casting-candidate-top{
  display:grid;
  grid-template-columns:88px minmax(0,1fr) 32px;
  align-items:start;
}
.casting-candidate.actor.open .casting-candidate-image-wrap{
  width:88px;
  height:116px;
  flex-basis:88px;
}
.casting-candidate.actor.open .casting-candidate-name{font-size:20px}
.casting-candidate.actor.open .casting-candidate-alias,
.casting-candidate.actor.open .casting-candidate-meta{font-size:13px}
.casting-selected-summary{align-items:flex-start}
.casting-selected-main{flex:1}
.casting-selected-preview{
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.38);
  font-size:12px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.casting-selected-boxoffice{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:8px;
}
.casting-selected-boxoffice span{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  padding:7px 8px;
  border-radius:8px;
  background:rgba(255,255,255,.16);
}
.casting-selected-boxoffice strong{font-size:15px}
@media(max-width:1100px){
  .movie-casting-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:760px){
  .movie-casting-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px}
  .casting-candidate.actor{min-height:148px;padding:6px}
  .casting-candidate-top{display:block;position:relative}
  .casting-candidate-image-wrap{width:100%;height:auto;aspect-ratio:3/4;max-height:112px;flex-basis:auto}
  .casting-candidate-main{margin-top:5px}
  .casting-candidate-name{font-size:11px;line-height:1.25}
  .casting-candidate-alias{font-size:9px;line-height:1.25;-webkit-line-clamp:2}
  .casting-candidate-meta{font-size:9px;gap:2px 4px}
  .casting-candidate-top>.actor-expand-indicator{position:absolute;top:2px;right:2px;width:20px;height:20px;font-size:13px}
  .casting-assignment{font-size:8px;padding:2px 4px}
  .casting-select-button{padding:7px 2px;font-size:10px}
  .casting-candidate.actor.open{padding:10px}
  .casting-candidate.actor.open .casting-candidate-top{display:grid;grid-template-columns:72px minmax(0,1fr) 28px;gap:8px}
  .casting-candidate.actor.open .casting-candidate-image-wrap{width:72px;height:96px;aspect-ratio:auto;max-height:none}
  .casting-candidate.actor.open .casting-candidate-main{margin-top:0}
  .casting-candidate.actor.open .casting-candidate-top>.actor-expand-indicator{position:static;width:24px;height:24px}
  .casting-candidate.actor.open .casting-candidate-name{font-size:16px}
  .casting-candidate.actor.open .casting-candidate-alias,.casting-candidate.actor.open .casting-candidate-meta{font-size:11px}
  .casting-candidate.actor.open .casting-select-button{font-size:12px;padding:9px}
}
@media(max-width:480px){
  .movie-casting-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px}
  .casting-candidate.actor{padding:4px;border-radius:8px;min-height:132px}
  .casting-candidate-image-wrap{max-height:88px;border-radius:6px}
  .casting-candidate-name{font-size:10px}
  .casting-candidate-alias,.casting-candidate-meta{font-size:8px}
  .casting-select-button{font-size:9px;padding:6px 1px}
  .casting-candidate.actor.open{padding:9px;border-radius:10px}
  .casting-candidate.actor.open .casting-candidate-top{grid-template-columns:64px minmax(0,1fr) 24px}
  .casting-candidate.actor.open .casting-candidate-image-wrap{width:64px;height:86px}
  .casting-candidate.actor.open .casting-candidate-name{font-size:15px}
  .casting-candidate.actor.open .casting-candidate-alias,.casting-candidate.actor.open .casting-candidate-meta{font-size:10px}
  .casting-selected-boxoffice{grid-template-columns:1fr}
}

/* S10.3.6 casting detail row: compact cards stay in four columns; expanded details occupy their own full row */
.casting-candidate.actor.open{grid-column:auto}
.casting-candidate.actor.active{
  outline:3px solid rgba(255,255,255,.92);
  outline-offset:-4px;
}
.casting-candidate.actor.active .actor-expand-indicator{transform:rotate(180deg)}
.casting-expanded-panel.actor{
  grid-column:1/-1;
  display:block;
  width:auto;
  min-width:0;
  min-height:0;
  margin:0;
  padding:16px;
  overflow:hidden;
  align-self:start;
  box-sizing:border-box;
  border-radius:14px;
  box-shadow:0 8px 22px rgba(25,40,59,.2);
}
.casting-expanded-panel .detail{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:12px 0 10px;
  padding-top:12px;
  overflow:hidden;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.casting-expanded-top{
  display:grid;
  grid-template-columns:96px minmax(0,1fr) 36px;
  align-items:start;
  gap:12px;
}
.casting-expanded-image-wrap{
  width:96px;
  height:128px;
  border-radius:11px;
  overflow:hidden;
  background:rgba(255,255,255,.22);
  display:flex;
  align-items:center;
  justify-content:center;
}
.casting-expanded-image{display:block;width:100%;height:100%;object-fit:cover}
.casting-expanded-main{min-width:0}
.casting-expanded-name{font-size:22px;font-weight:950;line-height:1.3;overflow-wrap:anywhere}
.casting-expanded-alias{margin-top:5px;font-size:13px;line-height:1.4;opacity:.88;overflow-wrap:anywhere}
.casting-expanded-meta{display:flex;flex-wrap:wrap;gap:5px 9px;margin-top:6px;font-size:13px;line-height:1.35;opacity:.94}
.casting-expanded-collapse{
  width:34px;
  height:34px;
  padding:0;
  border:2px solid rgba(255,255,255,.9);
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:inherit;
  font-size:20px;
  font-weight:950;
  cursor:pointer;
}
.casting-expanded-panel .casting-select-button{margin-top:10px}
.actor.low.casting-expanded-panel .casting-expanded-collapse{border-color:#9aa7b4;background:#edf1f5;color:#1f2937}
@media(max-width:760px){
  .casting-expanded-panel.actor{padding:10px}
  .casting-expanded-top{grid-template-columns:72px minmax(0,1fr) 28px;gap:8px}
  .casting-expanded-image-wrap{width:72px;height:96px;border-radius:8px}
  .casting-expanded-name{font-size:16px}
  .casting-expanded-alias,.casting-expanded-meta{font-size:11px}
  .casting-expanded-collapse{width:26px;height:26px;font-size:16px}
}
@media(max-width:480px){
  .casting-expanded-panel.actor{padding:8px}
  .casting-expanded-top{grid-template-columns:60px minmax(0,1fr) 24px;gap:6px}
  .casting-expanded-image-wrap{width:60px;height:80px}
  .casting-expanded-name{font-size:14px}
  .casting-expanded-alias,.casting-expanded-meta{font-size:10px}
  .casting-expanded-collapse{width:22px;height:22px;font-size:14px;border-width:1px}
}
.casting-expanded-panel.actor{cursor:default}

/* S10.3.7 casting in-card vertical expansion fix
   The active actor stays inside its own one-quarter-width grid cell. Its natural
   height expands the current grid row, so every later row moves down without overlap. */
.movie-casting-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  align-items:start!important;
}
.casting-candidate.actor,
.casting-candidate.actor.open,
.casting-candidate.actor.active{
  grid-column:auto!important;
  align-self:start!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  position:relative!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.casting-candidate.actor.active{
  min-height:0!important;
  outline:3px solid rgba(255,255,255,.92);
  outline-offset:-4px;
}
.casting-candidate.actor.active .actor-expand-indicator{transform:rotate(180deg)}
.casting-candidate-detail{
  display:block!important;
  position:static!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  margin:10px 0!important;
  padding-top:10px!important;
  overflow:visible!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.casting-candidate-detail *,
.casting-candidate.actor.active .actor-basic-detail,
.casting-candidate.actor.active .actor-analysis,
.casting-candidate.actor.active .actor-analysis-section,
.casting-candidate.actor.active .skill-analysis-item,
.casting-candidate.actor.active .skill-analysis-title,
.casting-candidate.actor.active .skill-analysis-name,
.casting-candidate.actor.active .skill-analysis-bonus,
.casting-candidate.actor.active .skill-analysis-reason{
  min-width:0!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.casting-candidate.actor.active .casting-candidate-top{
  display:grid!important;
  grid-template-columns:minmax(64px,88px) minmax(0,1fr) 32px!important;
  align-items:start!important;
  gap:9px!important;
  position:relative!important;
}
.casting-candidate.actor.active .casting-candidate-image-wrap{
  width:100%!important;
  height:auto!important;
  aspect-ratio:3/4!important;
  max-height:none!important;
  flex-basis:auto!important;
}
.casting-candidate.actor.active .casting-candidate-main{min-width:0!important;margin-top:0!important}
.casting-candidate.actor.active .casting-candidate-name,
.casting-candidate.actor.active .casting-candidate-alias,
.casting-candidate.actor.active .casting-candidate-meta{
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  -webkit-line-clamp:unset!important;
}
.casting-candidate.actor.active .casting-select-button{
  position:static!important;
  width:100%!important;
  margin-top:10px!important;
}
/* The old full-row panel is no longer rendered. Keep it hidden if an outdated
   cached fragment is ever injected during a service-worker transition. */
.casting-expanded-panel{display:none!important}
@media(max-width:760px){
  .casting-candidate.actor.active .casting-candidate-top{
    display:block!important;
    padding-top:0!important;
  }
  .casting-candidate.actor.active .casting-candidate-image-wrap{
    width:100%!important;
    height:auto!important;
    aspect-ratio:3/4!important;
    max-height:none!important;
  }
  .casting-candidate.actor.active .casting-candidate-main{margin-top:6px!important}
  .casting-candidate.actor.active .casting-candidate-top>.actor-expand-indicator{
    position:absolute!important;
    top:2px!important;
    right:2px!important;
  }
  .casting-candidate.actor.active .casting-candidate-name{font-size:12px!important}
  .casting-candidate.actor.active .casting-candidate-alias,
  .casting-candidate.actor.active .casting-candidate-meta{font-size:9px!important}
  .casting-candidate.actor.active .actor-basic-detail,
  .casting-candidate.actor.active .actor-analysis,
  .casting-candidate.actor.active .skill-analysis-title{font-size:10px!important}
  .casting-candidate.actor.active .skill-analysis-name,
  .casting-candidate.actor.active .skill-analysis-bonus,
  .casting-candidate.actor.active .skill-analysis-reason{margin-left:0!important;font-size:9px!important}
  .casting-candidate.actor.active .boxoffice-summary{grid-template-columns:1fr!important}
}
@media(max-width:480px){
  .casting-candidate.actor.active{padding:5px!important}
  .casting-candidate.actor.active .casting-candidate-name{font-size:10px!important}
  .casting-candidate.actor.active .casting-candidate-alias,
  .casting-candidate.actor.active .casting-candidate-meta{font-size:8px!important}
  .casting-candidate.actor.active .actor-basic-detail,
  .casting-candidate.actor.active .actor-analysis,
  .casting-candidate.actor.active .skill-analysis-title{font-size:9px!important}
  .casting-candidate.actor.active .skill-analysis-name,
  .casting-candidate.actor.active .skill-analysis-bonus,
  .casting-candidate.actor.active .skill-analysis-reason{font-size:8px!important}
}

/* S10.3.8 casting row containment and compact-summary fix
   Candidates are grouped into explicit four-card row containers. The active
   card grows only inside its own column; the row's natural height pushes every
   later row down, eliminating overlap without using a full-width detail panel. */
.movie-casting-grid{
  display:block!important;
  overflow:auto!important;
  padding:16px 18px 22px!important;
}
.casting-candidate-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
  gap:12px;
  width:100%;
  min-width:0;
  margin:0 0 12px;
}
.casting-candidate-row:last-child{margin-bottom:0}
.casting-candidate-row>.casting-candidate.actor,
.casting-candidate-row>.casting-candidate.actor.open,
.casting-candidate-row>.casting-candidate.actor.active{
  grid-column:auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-self:start!important;
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  min-height:238px!important;
  max-height:none!important;
  margin:0!important;
  overflow:hidden!important;
  contain:none!important;
}
.casting-candidate-row>.casting-candidate.actor.active{
  min-height:0!important;
}
.casting-candidate-row .casting-candidate-top,
.casting-candidate-row .casting-candidate.actor.active .casting-candidate-top{
  display:grid!important;
  grid-template-columns:64px minmax(0,1fr) 30px!important;
  align-items:start!important;
  gap:9px!important;
  min-width:0!important;
  position:relative!important;
}
.casting-candidate-row .casting-candidate-image-wrap,
.casting-candidate-row .casting-candidate.actor.active .casting-candidate-image-wrap{
  width:64px!important;
  height:84px!important;
  min-width:0!important;
  max-width:100%!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  flex-basis:auto!important;
}
.casting-candidate-row .casting-candidate-main{min-width:0!important;margin:0!important}
.casting-candidate-row .casting-candidate-name,
.casting-candidate-row .casting-candidate-alias,
.casting-candidate-row .casting-candidate-meta{
  min-width:0!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.casting-candidate-row .casting-candidate-name{font-size:15px!important;line-height:1.3!important}
.casting-candidate-row .casting-candidate-alias{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow:hidden!important;
  font-size:11px!important;
}
.casting-candidate-row .casting-candidate-meta{font-size:11px!important}
.casting-candidate-row .casting-candidate-top>.actor-expand-indicator{
  position:static!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  font-size:18px!important;
}
.casting-candidate-preview{
  width:100%;
  min-width:0;
  margin:9px 0 10px;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.38);
  font-size:11px;
  line-height:1.45;
}
.casting-candidate-preview-line{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  overflow-wrap:anywhere;
  word-break:break-word;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.casting-candidate-preview-line+ .casting-candidate-preview-line{margin-top:2px}
.casting-candidate-preview-line>span{font-weight:850}
.casting-candidate-row .casting-candidate-detail{
  display:block!important;
  position:static!important;
  float:none!important;
  clear:both!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0 0 10px!important;
  padding:10px 0 0!important;
  overflow:hidden!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  flex:0 0 auto!important;
}
.casting-candidate-row .casting-candidate-detail *,
.casting-candidate-row .casting-candidate-detail .actor-analysis,
.casting-candidate-row .casting-candidate-detail .actor-analysis-section,
.casting-candidate-row .casting-candidate-detail .boxoffice-summary,
.casting-candidate-row .casting-candidate-detail .skill-analysis-list,
.casting-candidate-row .casting-candidate-detail .skill-analysis-item{
  position:static!important;
  float:none!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  max-height:none!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.casting-candidate-row .casting-select-button{
  position:static!important;
  width:100%!important;
  margin-top:auto!important;
  flex:0 0 auto!important;
}
.casting-candidate-row .casting-candidate.actor.active .casting-select-button{margin-top:0!important}
@media(max-width:760px){
  .movie-casting-grid{padding:10px!important}
  .casting-candidate-row{gap:6px;margin-bottom:6px}
  .casting-candidate-row>.casting-candidate.actor,
  .casting-candidate-row>.casting-candidate.actor.open,
  .casting-candidate-row>.casting-candidate.actor.active{padding:6px!important;min-height:196px!important}
  .casting-candidate-row>.casting-candidate.actor.active{min-height:0!important}
  .casting-candidate-row .casting-candidate-top,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-top{
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr) 18px!important;
    gap:4px!important;
  }
  .casting-candidate-row .casting-candidate-image-wrap,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-image-wrap{
    width:34px!important;
    height:46px!important;
  }
  .casting-candidate-row .casting-candidate-top>.actor-expand-indicator{
    position:static!important;
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    font-size:12px!important;
  }
  .casting-candidate-row .casting-candidate-name{font-size:10px!important}
  .casting-candidate-row .casting-candidate-alias,
  .casting-candidate-row .casting-candidate-meta,
  .casting-candidate-preview{font-size:8px!important}
  .casting-candidate-preview{margin:6px 0 7px;padding-top:5px;line-height:1.3}
  .casting-candidate-preview-line{-webkit-line-clamp:2!important}
  .casting-candidate-row .casting-candidate-detail,
  .casting-candidate-row .casting-candidate-detail .actor-analysis,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-heading{font-size:9px!important}
  .casting-candidate-row .casting-candidate-detail .skill-analysis-title,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-name,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-bonus,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-reason{font-size:8px!important;margin-left:0!important}
  .casting-candidate-row .casting-candidate-detail .boxoffice-summary{grid-template-columns:1fr!important}
  .casting-candidate-row .casting-select-button{font-size:9px!important;padding:7px 2px!important}
}
@media(max-width:480px){
  .movie-casting-grid{padding:6px!important}
  .casting-candidate-row{gap:4px;margin-bottom:4px}
  .casting-candidate-row>.casting-candidate.actor,
  .casting-candidate-row>.casting-candidate.actor.open,
  .casting-candidate-row>.casting-candidate.actor.active{padding:4px!important;min-height:180px!important}
  .casting-candidate-row>.casting-candidate.actor.active{min-height:0!important}
  .casting-candidate-row .casting-candidate-top,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-top{grid-template-columns:28px minmax(0,1fr) 16px!important;gap:3px!important}
  .casting-candidate-row .casting-candidate-image-wrap,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-image-wrap{width:28px!important;height:38px!important}
  .casting-candidate-row .casting-candidate-top>.actor-expand-indicator{width:16px!important;height:16px!important;min-width:16px!important;font-size:10px!important}
  .casting-candidate-row .casting-candidate-name{font-size:8px!important}
  .casting-candidate-row .casting-candidate-alias,
  .casting-candidate-row .casting-candidate-meta,
  .casting-candidate-preview{font-size:7px!important}
  .casting-candidate-row .casting-candidate-detail,
  .casting-candidate-row .casting-candidate-detail .actor-analysis,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-heading,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-title,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-name,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-bonus,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-reason{font-size:7px!important}
  .casting-candidate-row .casting-select-button{font-size:8px!important;padding:6px 1px!important}
}



/* S10.3.9 casting dialog size, position, hint removal and single-arrow polish */
.movie-casting-overlay{
  align-items:flex-start!important;
  justify-content:center!important;
  padding:3.2vh 3vw 4vh!important;
}
.movie-casting-dialog{
  width:min(84vw,1900px)!important;
  height:min(91vh,1180px)!important;
  max-height:calc(100vh - 7.2vh)!important;
  margin:0!important;
}
.movie-casting-message.hidden{display:none!important;padding:0!important;border:0!important;min-height:0!important}
.movie-casting-dialog .actor-expand-indicator{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  padding:0!important;
  overflow:hidden!important;
  font-size:0!important;
  line-height:1!important;
  text-align:center!important;
}
.movie-casting-dialog .actor-expand-indicator::before{
  content:"▼";
  display:block;
  width:100%;
  font-size:18px;
  line-height:1;
  text-align:center;
  transform:translateY(1px);
}
@media(max-width:760px){
  .movie-casting-overlay{padding:1.8vh 2vw 2.5vh!important}
  .movie-casting-dialog{width:96vw!important;height:94vh!important;max-height:96vh!important}
  .movie-casting-dialog .actor-expand-indicator{width:20px!important;height:20px!important;min-width:20px!important}
  .movie-casting-dialog .actor-expand-indicator::before{font-size:12px}
}
@media(max-width:480px){
  .movie-casting-overlay{padding:1.2vh 1vw 1.8vh!important}
  .movie-casting-dialog{width:98vw!important;height:96vh!important;max-height:97vh!important}
  .movie-casting-dialog .actor-expand-indicator{width:18px!important;height:18px!important;min-width:18px!important}
  .movie-casting-dialog .actor-expand-indicator::before{font-size:10px}
}


/* S10.3.10 casting search, readable card text and compact mobile dialog */
.movie-casting-search-row{
  position:relative;
  z-index:30;
  padding:12px 18px;
  border-bottom:1px solid #d8e1e8;
  background:#fff;
}
.movie-casting-searchbox{max-width:760px;margin:0 auto}
.movie-casting-searchbox input{
  height:46px;
  padding:10px 72px 10px 14px;
  border:2px solid #b8c5d1;
  border-radius:11px;
  font-size:16px;
  font-weight:750;
}
.movie-casting-searchbox input:focus{border-color:#1f7664;outline:3px solid rgba(31,118,100,.14)}
.movie-casting-search-clear{
  position:absolute;
  top:7px;
  right:7px;
  height:32px;
  padding:0 10px;
  border:0;
  border-radius:8px;
  background:#e7edf2;
  color:#34424d;
  font-weight:850;
  cursor:pointer;
}
.movie-casting-suggestions{top:50px;z-index:9700;max-height:300px;text-align:left}
.movie-casting-sug{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px}
.movie-casting-sug .muted{font-size:13px;text-align:right}

.casting-candidate-row .casting-candidate-name{font-size:18px!important}
.casting-candidate-row .casting-candidate-alias,
.casting-candidate-row .casting-candidate-meta,
.casting-candidate-preview,
.casting-candidate-row .casting-assignment{font-size:14px!important}
.casting-candidate-row .casting-select-button{font-size:14px!important}
.casting-candidate-row .casting-candidate-detail,
.casting-candidate-row .casting-candidate-detail .actor-basic-detail,
.casting-candidate-row .casting-candidate-detail .actor-analysis,
.casting-candidate-row .casting-candidate-detail .actor-analysis-heading,
.casting-candidate-row .casting-candidate-detail .actor-analysis-section{font-size:15px!important;line-height:1.58!important}
.casting-candidate-row .casting-candidate-detail .skill-analysis-title,
.casting-candidate-row .casting-candidate-detail .skill-analysis-name,
.casting-candidate-row .casting-candidate-detail .skill-analysis-bonus,
.casting-candidate-row .casting-candidate-detail .skill-analysis-reason{font-size:14px!important;line-height:1.5!important}

@media(max-width:760px){
  .movie-casting-overlay{align-items:center!important;padding:12vh 11vw!important}
  .movie-casting-dialog{
    width:78vw!important;
    height:74vh!important;
    max-width:78vw!important;
    max-height:74vh!important;
    border-radius:15px!important;
  }
  .movie-casting-header{padding:11px 12px!important;gap:9px!important}
  .movie-casting-header h2{font-size:20px!important}
  .movie-casting-summary{font-size:14px!important}
  .movie-casting-sort{gap:5px!important}
  .movie-casting-sort .pill{padding:7px 9px!important;font-size:13px!important}
  .movie-casting-search-row{padding:9px 10px}
  .movie-casting-searchbox input{height:42px;font-size:15px;padding-right:66px}
  .movie-casting-search-clear{top:5px;right:5px;height:32px}
  .movie-casting-suggestions{top:46px;max-height:220px}
  .movie-casting-sug{font-size:14px;align-items:flex-start;flex-direction:column;gap:2px}
  .movie-casting-sug .muted{font-size:12px;text-align:left}
  .casting-candidate-row .casting-candidate-name{font-size:14px!important}
  .casting-candidate-row .casting-candidate-alias,
  .casting-candidate-row .casting-candidate-meta,
  .casting-candidate-preview,
  .casting-candidate-row .casting-assignment{font-size:12px!important}
  .casting-candidate-row .casting-select-button{font-size:13px!important;padding:8px 3px!important}
  .casting-candidate-row .casting-candidate-detail,
  .casting-candidate-row .casting-candidate-detail .actor-basic-detail,
  .casting-candidate-row .casting-candidate-detail .actor-analysis,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-heading,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-section{font-size:13px!important;line-height:1.55!important}
  .casting-candidate-row .casting-candidate-detail .skill-analysis-title,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-name,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-bonus,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-reason{font-size:12px!important;line-height:1.48!important}
}
@media(max-width:480px){
  .movie-casting-overlay{padding:13vh 11vw!important}
  .movie-casting-dialog{width:78vw!important;height:72vh!important;max-width:78vw!important;max-height:72vh!important}
  .movie-casting-header h2{font-size:18px!important}
  .movie-casting-summary{font-size:13px!important}
  .movie-casting-sort .pill{font-size:12px!important;padding:6px 8px!important}
  .movie-casting-search-row{padding:8px}
  .movie-casting-searchbox input{height:40px;font-size:14px}
  .casting-candidate-row .casting-candidate-name{font-size:13px!important}
  .casting-candidate-row .casting-candidate-alias,
  .casting-candidate-row .casting-candidate-meta,
  .casting-candidate-preview,
  .casting-candidate-row .casting-assignment{font-size:11px!important}
  .casting-candidate-row .casting-select-button{font-size:12px!important;padding:7px 2px!important}
  .casting-candidate-row .casting-candidate-detail,
  .casting-candidate-row .casting-candidate-detail .actor-basic-detail,
  .casting-candidate-row .casting-candidate-detail .actor-analysis,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-heading,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-section{font-size:12px!important}
  .casting-candidate-row .casting-candidate-detail .skill-analysis-title,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-name,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-bonus,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-reason{font-size:11px!important}
}


/* S10.3.11 mobile casting layout correction
   Keep the dialog near 90% of the phone viewport and use three readable cards
   per row instead of compressing four cards into the reduced dialog. */
@media(max-width:760px){
  .movie-casting-overlay{
    align-items:center!important;
    justify-content:center!important;
    padding:7vh 5vw!important;
  }
  .movie-casting-dialog{
    width:90vw!important;
    height:86vh!important;
    max-width:90vw!important;
    max-height:86vh!important;
    border-radius:15px!important;
  }
  .movie-casting-header{
    padding:11px 12px 10px!important;
    gap:8px!important;
  }
  .movie-casting-header h2{
    font-size:20px!important;
    line-height:1.25!important;
  }
  .movie-casting-summary{
    font-size:13px!important;
    line-height:1.35!important;
  }
  .movie-casting-sort{
    gap:6px!important;
  }
  .movie-casting-sort .pill{
    padding:7px 10px!important;
    font-size:13px!important;
  }
  .movie-casting-search-row{
    padding:8px 10px!important;
  }
  .movie-casting-searchbox input{
    height:41px!important;
    font-size:14px!important;
  }
  .movie-casting-grid{
    padding:8px!important;
  }
  .casting-candidate-row{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    margin-bottom:6px!important;
  }
  .casting-candidate-row>.casting-candidate.actor,
  .casting-candidate-row>.casting-candidate.actor.open,
  .casting-candidate-row>.casting-candidate.actor.active{
    min-width:0!important;
    min-height:210px!important;
    padding:6px!important;
    border-radius:10px!important;
  }
  .casting-candidate-row>.casting-candidate.actor.active{
    min-height:0!important;
  }
  .casting-candidate-row .casting-candidate-top,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-top{
    display:grid!important;
    grid-template-columns:36px minmax(0,1fr)!important;
    gap:6px!important;
    padding-right:18px!important;
    align-items:start!important;
    position:relative!important;
  }
  .casting-candidate-row .casting-candidate-image-wrap,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-image-wrap{
    width:36px!important;
    height:48px!important;
    max-width:36px!important;
    border-radius:7px!important;
  }
  .casting-candidate-row .casting-candidate-top>.actor-expand-indicator,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-top>.actor-expand-indicator{
    position:absolute!important;
    top:0!important;
    right:0!important;
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
  }
  .movie-casting-dialog .actor-expand-indicator::before{
    font-size:10px!important;
  }
  .casting-candidate-row .casting-candidate-main,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-main{
    min-width:0!important;
    margin:0!important;
  }
  .casting-candidate-row .casting-candidate-name,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-name{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:3!important;
    overflow:hidden!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    line-break:strict!important;
    font-size:13px!important;
    line-height:1.3!important;
  }
  .casting-candidate-row .casting-candidate-alias,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-alias{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    white-space:normal!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    font-size:10px!important;
    line-height:1.3!important;
  }
  .casting-candidate-row .casting-candidate-meta,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-meta{
    gap:2px 5px!important;
    font-size:10px!important;
    line-height:1.3!important;
  }
  .casting-candidate-preview{
    margin:7px 0 8px!important;
    padding-top:6px!important;
    font-size:10px!important;
    line-height:1.4!important;
  }
  .casting-candidate-preview-line{
    -webkit-line-clamp:2!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
    line-break:strict!important;
  }
  .casting-candidate-row .casting-assignment{
    font-size:10px!important;
  }
  .casting-candidate-row .casting-select-button{
    min-height:36px!important;
    padding:8px 3px!important;
    font-size:12px!important;
  }
  .casting-candidate-row .casting-candidate-detail,
  .casting-candidate-row .casting-candidate-detail .actor-basic-detail,
  .casting-candidate-row .casting-candidate-detail .actor-analysis,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-heading,
  .casting-candidate-row .casting-candidate-detail .actor-analysis-section{
    font-size:11px!important;
    line-height:1.5!important;
  }
  .casting-candidate-row .casting-candidate-detail .skill-analysis-title,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-name,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-bonus,
  .casting-candidate-row .casting-candidate-detail .skill-analysis-reason{
    font-size:10px!important;
    line-height:1.45!important;
  }
}
@media(max-width:480px){
  .movie-casting-overlay{
    padding:7vh 5vw!important;
  }
  .movie-casting-dialog{
    width:90vw!important;
    height:86vh!important;
    max-width:90vw!important;
    max-height:86vh!important;
  }
  .movie-casting-header h2{font-size:18px!important}
  .movie-casting-summary{font-size:12px!important}
  .movie-casting-sort .pill{font-size:12px!important;padding:6px 9px!important}
  .movie-casting-search-row{padding:7px 8px!important}
  .movie-casting-searchbox input{height:39px!important;font-size:14px!important}
  .movie-casting-grid{padding:7px!important}
  .casting-candidate-row{gap:5px!important;margin-bottom:5px!important}
  .casting-candidate-row>.casting-candidate.actor,
  .casting-candidate-row>.casting-candidate.actor.open,
  .casting-candidate-row>.casting-candidate.actor.active{
    min-height:205px!important;
    padding:5px!important;
  }
  .casting-candidate-row>.casting-candidate.actor.active{min-height:0!important}
  .casting-candidate-row .casting-candidate-top,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-top{
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:5px!important;
    padding-right:17px!important;
  }
  .casting-candidate-row .casting-candidate-image-wrap,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-image-wrap{
    width:34px!important;
    height:46px!important;
    max-width:34px!important;
  }
  .casting-candidate-row .casting-candidate-name,
  .casting-candidate-row .casting-candidate.actor.active .casting-candidate-name{
    font-size:12px!important;
  }
  .casting-candidate-row .casting-candidate-alias,
  .casting-candidate-row .casting-candidate-meta,
  .casting-candidate-preview,
  .casting-candidate-row .casting-assignment{
    font-size:9px!important;
  }
  .casting-candidate-row .casting-select-button{
    min-height:34px!important;
    padding:7px 2px!important;
    font-size:11px!important;
  }
}

/* S10.3.12 casting-modal-only close controls and box-office label fit */
.movie-casting-dialog{position:relative!important}
.movie-casting-header{padding-right:72px!important}
.movie-casting-close{
  position:absolute;
  top:12px;
  right:14px;
  z-index:80;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:0;
  border:2px solid rgba(255,255,255,.92);
  border-radius:999px;
  background:#c63f4d;
  color:#fff;
  box-shadow:0 4px 12px rgba(95,22,31,.32);
  font:900 30px/1 Arial,sans-serif;
  cursor:pointer;
  touch-action:manipulation;
}
.movie-casting-close:hover{filter:brightness(1.08);transform:scale(1.03)}
.movie-casting-close:focus-visible{outline:3px solid rgba(198,63,77,.28);outline-offset:3px}
.movie-casting-dialog .boxoffice-summary>div{
  flex-wrap:nowrap!important;
  gap:5px!important;
  padding:6px 7px!important;
}
.movie-casting-dialog .boxoffice-summary span{
  flex:1 1 auto;
  min-width:0;
  white-space:nowrap!important;
  font-size:11px!important;
}
.movie-casting-dialog .boxoffice-summary strong{
  flex:0 0 auto;
  white-space:nowrap!important;
  font-size:15px!important;
}
@media(max-width:760px){
  .movie-casting-header{padding-right:58px!important}
  .movie-casting-close{
    top:9px;
    right:9px;
    width:40px;
    height:40px;
    font-size:27px;
  }
  .movie-casting-dialog .boxoffice-summary>div{gap:3px!important;padding:5px 4px!important}
  .movie-casting-dialog .boxoffice-summary span{font-size:10px!important}
  .movie-casting-dialog .boxoffice-summary strong{font-size:13px!important}
}
@media(max-width:480px){
  .movie-casting-close{width:38px;height:38px;font-size:26px}
}


/* S10.5.3 scoped fixes: casting modal refresh/role info and My Actors image layout */
.movie-casting-heading{display:grid;grid-template-columns:minmax(220px,auto) minmax(300px,1fr);align-items:start;gap:16px;flex:1;min-width:0}
.movie-casting-heading-copy{min-width:0}
.movie-casting-role-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-width:0;max-width:720px}
.movie-casting-role-info-group{min-width:0;padding:6px 7px;border:1px solid #dfe6ec;border-radius:9px;background:#f6f8fa}
.movie-casting-role-label{display:block;margin-bottom:4px;color:#52616b;font-size:10px;font-weight:950;line-height:1.2;white-space:nowrap}
.movie-casting-role-tags{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}
.movie-casting-role-info .tag{padding:3px 6px;font-size:11px;line-height:1.2}
.movie-casting-role-empty{color:#8a949d;font-size:11px;font-weight:800}
#myList.checkbox-list{grid-template-columns:repeat(3,minmax(0,1fr))}
#myList .actor-check{min-width:0;min-height:82px;margin:0;padding:8px 10px;gap:9px}
#myList .actor-check>input{flex:0 0 auto;margin:0}
#myList .my-actor-photo-wrap{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 54px;width:54px;height:68px;overflow:hidden;border-radius:8px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35)}
#myList .my-actor-photo{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover;object-position:top center;border:0;border-radius:0;flex:none;background:transparent}
#myList .my-actor-photo-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.78);font-size:18px;font-weight:950}
#myList .my-actor-text{display:flex;align-items:baseline;gap:5px;min-width:0;flex:1}
#myList .my-actor-name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}
#myList .my-actor-star{flex:0 0 auto;font-size:16px;white-space:nowrap;opacity:.94}
#myList .actor-check.star-low .my-actor-photo-wrap{background:#edf1f5;border-color:#d4dce4}
#myList .actor-check.star-low .my-actor-photo-fallback{color:#7a8792}
@media(max-width:1180px){
  .movie-casting-heading{grid-template-columns:1fr;gap:8px;width:100%}
  .movie-casting-role-info{max-width:none;width:100%}
}
@media(max-width:760px){
  .movie-casting-header{gap:10px!important}
  .movie-casting-heading{padding-right:44px}
  .movie-casting-role-info{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .movie-casting-role-info-group{padding:5px}
  .movie-casting-role-info .tag{padding:2px 5px;font-size:10px}
  #myList.checkbox-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px;padding:7px}
  #myList .actor-check{min-height:72px;padding:7px;gap:7px}
  #myList .my-actor-photo-wrap{flex-basis:44px;width:44px;height:56px}
  #myList .my-actor-text{display:block}
  #myList .my-actor-name{display:block;font-size:14px;line-height:1.25}
  #myList .my-actor-star{display:block;margin-top:3px;font-size:12px;line-height:1.2}
}
@media(max-width:380px){
  #myList .actor-check{padding:6px;gap:5px}
  #myList .my-actor-photo-wrap{flex-basis:40px;width:40px;height:51px}
  #myList .my-actor-name{font-size:13px}
  #myList .my-actor-star{font-size:11px}
}

/* S10.6.1 shooting type selection, conditional skill safety and compact mobile actor list */
.shooting-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#dff4ea;border-bottom:1px solid #9ab7ff}
.shooting-title-row .shooting-title{background:transparent;flex:0 0 auto}
.shooting-selected-status{padding:8px 11px;color:#45535f;font-size:13px;font-weight:800;text-align:right}
.shooting-selected-status strong{color:#0f766e;font-size:15px}
.shooting-hint{padding:8px 11px;border-bottom:1px solid #9ab7ff;background:#f7fbfa;color:#65727d;font-size:12px;font-weight:750;line-height:1.45}
button.shooting-item{appearance:none;width:100%;margin:0;padding:0;border:0;border-top:1px solid #9ab7ff;border-right:1px solid #9ab7ff;border-radius:0;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}
button.shooting-item:nth-child(4n){border-right:0}
button.shooting-item:hover{background:#f1fbf7}
button.shooting-item:focus-visible{position:relative;z-index:2;outline:3px solid rgba(15,118,110,.32);outline-offset:-3px}
button.shooting-item.active{position:relative;z-index:1;background:#e7f8f1;box-shadow:inset 0 0 0 3px #0f766e}
button.shooting-item.active .shooting-name{background:#cceee1;color:#075f51}
button.shooting-item.active::after{content:"✓ 已選";position:absolute;right:5px;top:4px;padding:2px 5px;border-radius:999px;background:#0f766e;color:#fff;font-size:9px;font-weight:950;line-height:1.2}

.casting-candidate-row{align-items:start!important}
.casting-candidate-row>.casting-candidate.actor:not(.active){height:var(--casting-collapsed-height,auto)!important;min-height:var(--casting-collapsed-height,0)!important}
.casting-candidate-row>.casting-candidate.actor.active{height:auto!important;min-height:0!important;align-self:start!important}

@media(max-width:760px){
  .shooting-title-row{align-items:flex-start;flex-direction:column;gap:0}
  .shooting-selected-status{padding-top:0;text-align:left}
  .shooting-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  button.shooting-item:nth-child(4n){border-right:1px solid #9ab7ff}
  button.shooting-item:nth-child(2n){border-right:0}
  #myList.checkbox-list{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px;padding:6px}
  #myList .actor-check{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-width:0;min-height:112px;padding:7px 4px 6px;gap:4px;text-align:center}
  #myList .actor-check>input{position:absolute;z-index:3;top:4px;right:4px;margin:0;width:16px;height:16px}
  #myList .my-actor-photo-wrap{flex:0 0 43px;width:43px;height:55px;margin:0}
  #myList .my-actor-text{display:block;width:100%;min-width:0;flex:0 0 auto}
  #myList .my-actor-name{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.2}
  #myList .my-actor-star{display:block;margin-top:2px;font-size:10px;line-height:1.15}
}
@media(max-width:380px){
  #myList.checkbox-list{gap:4px;padding:4px}
  #myList .actor-check{min-height:103px;padding:5px 2px 4px;gap:3px}
  #myList .actor-check>input{top:3px;right:3px;width:14px;height:14px}
  #myList .my-actor-photo-wrap{flex-basis:38px;width:38px;height:49px}
  #myList .my-actor-name{font-size:11px}
  #myList .my-actor-star{font-size:9px}
}


/* S10.6.2: shooting selection containment and clearer non-green state */
.shooting-box{overflow:hidden}
.shooting-grid{grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden}
.shooting-selected-status strong{color:#1d4ed8}
button.shooting-item{min-width:0;overflow:hidden}
button.shooting-item .shooting-name,button.shooting-item .fit-badge{min-width:0}
button.shooting-item:focus-visible{outline:2px solid #60a5fa;outline-offset:-2px}
button.shooting-item.active{position:relative;z-index:0;background:#eff6ff;box-shadow:inset 0 0 0 2px #2563eb}
button.shooting-item.active .shooting-name{background:#dbeafe;color:#1e3a8a}
button.shooting-item.active::after{background:#2563eb}
@media(max-width:760px){
  .shooting-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* S10.6.3: contained shooting selection + mobile-only sticky movie summary/editor list */
button.shooting-item{position:relative;contain:paint}
button.shooting-item:focus,button.shooting-item:focus-visible{outline:0!important;box-shadow:none!important}
button.shooting-item.active{z-index:0!important;box-shadow:none!important;background:#eff6ff}
button.shooting-item.active::before{content:"";position:absolute;inset:2px;border:2px solid #2563eb;border-radius:2px;pointer-events:none;z-index:4}
button.shooting-item.active::after{z-index:5}
.mobile-movie-summary-toggle,.movie-edit-list-toggle{display:none}
@media(max-width:760px){
  /* S10.7.1: controls and search suggestions must stay above the sticky summary; role results stay below it. */
  .top,.tabs,#notice{position:relative;z-index:90}
  #moviePage{position:relative}
  #moviePage>.movie-search-card{position:relative;z-index:90}
  #moviePage>.movie-search-card .suggestions{z-index:120}
  #movieResults{position:relative;z-index:1}
  #movieHeader.has-mobile-summary{position:sticky;top:0;z-index:50}
  #movieHeader.has-mobile-summary .movie-profile{max-height:78vh;margin-bottom:9px;padding:9px;overflow-y:auto;overscroll-behavior:contain;border:1px solid #b9c9dc;box-shadow:0 8px 22px rgba(24,45,70,.18)}
  .mobile-movie-summary-toggle{position:sticky;top:-9px;z-index:8;display:flex;width:100%;flex-direction:column;align-items:stretch;gap:0;margin:-9px -9px 9px;padding:10px 12px;border:0;border-bottom:1px solid #cbd8e7;background:#f7fbff;color:#223b5c;font:inherit;text-align:left;cursor:pointer}
  .mobile-movie-summary-heading{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:10px}
  .mobile-movie-summary-label{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}
  .mobile-movie-summary-label strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
  .mobile-movie-summary-label>span{font-size:11px;color:#6a7887}
  .mobile-movie-summary-action{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#2563eb;color:#fff;font-size:12px;font-weight:900}
  .mobile-movie-summary-compact{display:grid;gap:4px;margin-top:7px;padding-top:7px;border-top:1px dashed #c7d5e3}
  .mobile-movie-summary-row{display:grid;min-width:0;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:6px;font-size:10.5px;line-height:1.35}
  .mobile-movie-summary-key{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:2px 5px;border-radius:999px;font-weight:900;white-space:nowrap}
  .mobile-movie-summary-value{min-width:0;overflow:hidden;color:#4f5f70;text-overflow:ellipsis;white-space:nowrap}
  .mobile-movie-summary-topics .mobile-movie-summary-key{background:#e3f4ed;color:#176a59}
  .mobile-movie-summary-writer .mobile-movie-summary-key{background:#f1e7fb;color:#6d3f91}
  .mobile-movie-summary-shooting .mobile-movie-summary-key{background:#e5edff;color:#315ca8}
  #mobileMovieSummary.is-collapsed{max-height:none!important;padding:0!important;overflow:hidden!important}
  #mobileMovieSummary.is-collapsed .mobile-movie-summary-toggle{position:static;margin:0;border-bottom:0}
  #mobileMovieSummary.is-collapsed .mobile-movie-summary-content{display:none}
  #mobileMovieSummary:not(.is-collapsed) .mobile-movie-summary-content{display:block}
  #mobileMovieSummary:not(.is-collapsed) .mobile-movie-summary-compact{display:none}
  .movie-edit-list-toggle{display:flex;width:100%;align-items:center;justify-content:center;margin-top:8px;padding:9px 12px;border:1px solid #c9d6e3;border-radius:9px;background:#eef5fb;color:#28506f;font:inherit;font-weight:900;cursor:pointer}
  .movie-edit-list-panel{margin-top:8px}
  .movie-edit-list-panel.is-collapsed{display:none}
}

/* S10.6.4 editor option picker */
.editor-option-picker{width:100%;min-height:46px;border:1px solid #b8c5d1;border-radius:10px;background:#fff;padding:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;text-align:left;cursor:pointer}.editor-option-picker:hover{border-color:#16866f;background:#f7fcfa}.editor-option-picker.has-value{border-color:#5e8f82}.editor-option-placeholder{color:#7c8792}.editor-option-chip{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#e8f4f0;color:#176a59;font-size:13px;font-weight:800}.editor-option-overlay{position:fixed;inset:0;z-index:12000;background:rgba(18,27,34,.65);display:flex;align-items:center;justify-content:center;padding:18px}.editor-option-dialog{width:min(760px,94vw);max-height:min(82vh,820px);display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.35);overflow:hidden}.editor-option-head,.editor-option-foot{display:flex;align-items:center;gap:10px;padding:14px 16px}.editor-option-head{justify-content:space-between;border-bottom:1px solid #e4e9ee;font-size:19px}.editor-option-close{border:0;background:#eef2f5;width:34px;height:34px;border-radius:999px;font-size:24px;cursor:pointer}.editor-option-tools{display:flex;gap:9px;padding:12px 16px;border-bottom:1px solid #edf0f3}.editor-option-tools input{flex:1}.editor-option-grid{padding:14px 16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;overflow:auto}.editor-option-item{margin:0;padding:9px 10px;border:1px solid #d7dee5;border-radius:9px;display:flex;align-items:center;gap:7px;cursor:pointer;font-size:14px}.editor-option-item input{width:auto}.editor-option-item.selected{background:#e8f7f1;border-color:#16866f;color:#145d50}.editor-option-foot{justify-content:flex-end;border-top:1px solid #e4e9ee}.editor-option-foot .muted{margin-right:auto}.editor-option-empty{grid-column:1/-1;text-align:center;padding:30px}body.editor-option-open{overflow:hidden}@media(max-width:760px){.editor-option-overlay{padding:8px}.editor-option-dialog{width:96vw;max-height:90vh}.editor-option-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}.editor-option-tools{padding:10px;flex-wrap:wrap}.editor-option-tools .btn{width:auto}.editor-option-foot{padding:10px;flex-wrap:wrap}}@media(max-width:420px){.editor-option-grid{grid-template-columns:1fr}}
.movie-lineup-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-left:auto}.movie-lineup-status{font-size:12px;font-weight:800;color:#64717c;white-space:nowrap}.movie-lineup-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.movie-lineup-button{padding:8px 11px;font-size:13px;line-height:1.2}.movie-lineup-button:disabled{opacity:.45;cursor:not-allowed}.movie-lineup-actions .btn.gray{color:#5b6470}@media(max-width:768px){.movie-lineup-tools{width:100%;justify-content:flex-start;margin-left:0;padding:9px 10px;border:1px solid #dbe5ec;border-radius:10px;background:#f8fbfd}.movie-lineup-status{width:100%;white-space:normal}.movie-lineup-actions{width:100%}}@media(max-width:430px){.movie-lineup-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.movie-lineup-button{width:100%;padding:9px 8px}.movie-lineup-actions .movie-lineup-button:last-child:nth-child(3){grid-column:1/-1}}

/* S10.7.4: compact team totals, actor-local partner hints, and honest candidate labels */
.movie-team-analysis{flex:1 1 360px;min-width:280px;display:grid;gap:7px;padding:9px 12px;border:1px solid #b9d8cf;border-radius:12px;background:linear-gradient(135deg,#f3fbf8,#edf7ff);box-shadow:0 3px 10px rgba(31,118,100,.08)}@media (min-width:1001px){.movie-team-analysis{position:relative;left:-90px}}.movie-team-totals{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;color:#263b4d;font-size:14px;font-weight:850}
.movie-team-total-line{white-space:nowrap}
.movie-team-totals strong{color:#16715f;font-size:19px;letter-spacing:.01em}
.movie-team-analysis-state{font-size:12px;color:#667684;font-weight:750}
.movie-team-analysis-state.error{color:#b24747}
.movie-team-analysis.loading{opacity:.82}
.selected-team-analysis .actor-analysis-empty{padding:7px 0}
.selected-team-partner-section{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.32)}
.selected-team-partner-list{display:grid;gap:7px}
.selected-team-partner-skill{padding:8px 9px;border-radius:9px;background:rgba(255,255,255,.13)}
.selected-team-partner-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.selected-team-partner-name{font-weight:950;line-height:1.35}
.selected-team-partner-effect{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.2);font-size:11px;font-weight:900;white-space:nowrap}
.selected-team-partner-roles{display:grid;gap:4px;font-size:11px;line-height:1.5}
.selected-team-partner-role{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px;align-items:start}
.selected-team-partner-role b{white-space:nowrap;color:#e6f5ff}
.selected-team-partner-role span{overflow-wrap:anywhere}
@media(max-width:1000px){
  .movie-team-analysis{order:2;flex-basis:100%;width:100%;min-width:0}
  .movie-lineup-tools{order:3}
}
@media(max-width:768px){
  .movie-team-analysis{order:2;width:100%;min-width:0;padding:8px 9px}
  .movie-lineup-tools{order:3}
  .movie-team-totals{justify-content:flex-start;gap:12px;font-size:13px}
  .movie-team-totals strong{font-size:17px}
}
@media(max-width:430px){
  .movie-team-totals{display:flex;align-items:flex-start;gap:6px}
  .movie-team-total-line{white-space:normal}
  .movie-team-analysis-state{width:100%}
  .selected-team-partner-role{grid-template-columns:1fr}
}


/* S10.7.5: synchronized role sections, compact mobile summary, actor list collapses, and clearer partner requirements */
.role-card>[data-role-section]{box-sizing:border-box}
.selected-team-partner-requirement{margin:-1px 0 7px;padding:6px 7px;border-radius:7px;background:rgba(255,255,255,.1);font-size:11px;line-height:1.45}
.selected-team-partner-requirement b{color:#e6f5ff}
.mobile-list-toggle{display:none}
.mobile-collapsible-list-panel{margin-top:8px}
.my-actor-list-actions{margin-bottom:8px}
@media(max-width:760px){
  .mobile-movie-summary-compact{display:flex;min-width:0;align-items:center;gap:4px;margin-top:7px;padding-top:7px;overflow:hidden;border-top:1px dashed #c7d5e3;font-size:var(--mobile-summary-font-size,10.5px);line-height:1.25;white-space:nowrap}
  .mobile-movie-summary-row{display:inline-flex;min-width:0;flex:0 1 auto;align-items:center;gap:3px;font-size:inherit;line-height:inherit}
  .mobile-movie-summary-key{display:inline;font-size:inherit;min-height:0;padding:0;border-radius:0;background:transparent!important;font-weight:950;white-space:nowrap}
  .mobile-movie-summary-key::after{content:"："}
  .mobile-movie-summary-value{display:inline;min-width:0;overflow:hidden;font-size:inherit;color:#4f5f70;text-overflow:ellipsis;white-space:nowrap}
  .mobile-movie-summary-separator{flex:0 0 auto;color:#a1afbc;font-size:inherit}
  .mobile-movie-summary-compact.is-tight{gap:2px}
  .mobile-movie-summary-compact.is-tight .mobile-movie-summary-row{gap:1px}
  .mobile-movie-summary-compact.is-measuring{overflow:visible}
  .mobile-movie-summary-compact.is-measuring .mobile-movie-summary-row{flex:none}
  .mobile-movie-summary-compact.is-measuring .mobile-movie-summary-value{overflow:visible;text-overflow:clip}
  .mobile-list-toggle{display:flex;width:100%;align-items:center;justify-content:center;margin-top:8px;padding:9px 12px;border:1px solid #c9d6e3;border-radius:9px;background:#eef5fb;color:#28506f;font:inherit;font-weight:900;cursor:pointer}
  .mobile-collapsible-list-panel.is-collapsed{display:none}
  .my-actor-search-toolbar{display:block}
  .my-actor-search-toolbar input{width:100%!important;min-width:0!important}
  .my-actor-list-actions{align-items:stretch}
  .my-actor-list-actions .btn{flex:1 1 auto}
  .actor-edit-list-panel{margin-top:8px}
  .actor-query-list-panel{margin-top:8px}
}

/* S10.8.0: hidden-role control and smart team recommendation */
.hidden-role-option{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 2px;padding:11px 12px;border:1px solid #cddce6;border-radius:11px;background:linear-gradient(135deg,#f8fbfd,#f0f7f5)}
.hidden-role-panel{margin-top:12px;border-color:#d6c9e8;background:linear-gradient(135deg,#fbf9ff,#f2f7fb);box-shadow:0 3px 10px rgba(83,64,128,.06)}
.hidden-role-copy{display:flex;min-width:0;flex-direction:column;gap:2px;color:#324957}.hidden-role-copy strong{font-size:14px}.hidden-role-copy span{font-size:12px;line-height:1.45;color:#687985}
.shooting-required-notice{margin:10px 12px 12px;padding:10px 12px;border:1px solid #e2a3a3;border-radius:9px;background:#fff0f0;color:#9d2d2d;font-size:13px;font-weight:900;line-height:1.45;text-align:center}
.smart-team-shooting-prompt{position:fixed;inset:0;z-index:9850;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.34);backdrop-filter:blur(2px);opacity:0;transition:opacity .16s ease}.smart-team-shooting-prompt.hidden{display:none}.smart-team-shooting-prompt.visible{opacity:1}
.smart-team-shooting-prompt-card{position:relative;display:flex;align-items:flex-start;gap:13px;width:min(390px,calc(100vw - 36px));padding:18px 44px 18px 18px;border:1px solid #e7a0a0;border-radius:16px;background:#fffafa;box-shadow:0 18px 48px rgba(55,24,24,.28);transform:translateY(7px) scale(.98);transition:transform .18s ease}.smart-team-shooting-prompt.visible .smart-team-shooting-prompt-card{transform:translateY(0) scale(1)}
.smart-team-shooting-prompt-icon{display:grid;flex:0 0 auto;place-items:center;width:34px;height:34px;border-radius:50%;background:#d94e4e;color:#fff;font-size:22px;font-weight:950;line-height:1}
.smart-team-shooting-prompt-copy{display:flex;min-width:0;flex-direction:column;gap:4px}.smart-team-shooting-prompt-copy strong{color:#8d2424;font-size:17px;line-height:1.25}.smart-team-shooting-prompt-copy span{color:#4c3030;font-size:14px;font-weight:850;line-height:1.45}.smart-team-shooting-prompt-copy small{margin-top:2px;color:#8d6f6f;font-size:11px;line-height:1.35}
.smart-team-shooting-prompt-close{position:absolute;top:8px;right:9px;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#9a6b6b;font-size:24px;line-height:1;cursor:pointer}.smart-team-shooting-prompt-close:hover{background:#f7dddd;color:#8d2424}
@media(max-width:760px){.smart-team-shooting-prompt{align-items:center;padding:16px}.smart-team-shooting-prompt-card{width:min(350px,calc(100vw - 32px));padding:17px 42px 17px 16px;border-radius:15px}.smart-team-shooting-prompt-copy strong{font-size:16px}.smart-team-shooting-prompt-copy span{font-size:13px}}

.shooting-box.requires-selection{border-color:#d85b5b;box-shadow:0 0 0 3px rgba(216,91,91,.14);animation:shooting-required-pulse .38s ease-in-out 2}
@keyframes shooting-required-pulse{0%,100%{transform:translateX(0)}35%{transform:translateX(-3px)}70%{transform:translateX(3px)}}
.hidden-role-toggle{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;border:1px solid #c7d4dd;border-radius:999px;padding:6px 9px;background:#fff;color:#66747e;font:inherit;font-size:12px;font-weight:900;cursor:pointer;transition:.16s ease}
.hidden-role-toggle:hover{transform:translateY(-1px);border-color:#589f90}.hidden-role-toggle.active{border-color:#298a74;background:#e8f7f1;color:#176a59}.hidden-role-toggle-track{position:relative;width:34px;height:19px;border-radius:999px;background:#adb8c0;transition:.16s ease}.hidden-role-toggle-knob{position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.16s ease}.hidden-role-toggle.active .hidden-role-toggle-track{background:#23836e}.hidden-role-toggle.active .hidden-role-toggle-knob{transform:translateX(15px)}
.smart-team-button{padding:8px 12px;border:1px solid #7a55bd!important;background:linear-gradient(135deg,#7651bd,#4d77c8)!important;color:#fff!important;font-size:13px;line-height:1.2;box-shadow:0 4px 10px rgba(88,73,171,.22)}.smart-team-button:hover{filter:brightness(1.06);transform:translateY(-1px)}.smart-team-button:disabled{opacity:.55;cursor:not-allowed;transform:none}
.smart-team-overlay{position:fixed;inset:0;z-index:9700;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(11,17,29,.72);backdrop-filter:blur(5px)}.smart-team-overlay.hidden{display:none}body.smart-team-modal-open{overflow:hidden}
.smart-team-dialog{position:relative;width:min(1180px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.22);border-radius:20px;background:#f6f8fc;box-shadow:0 28px 90px rgba(0,0,0,.45)}
.smart-team-close{position:absolute;z-index:3;top:13px;right:14px;width:38px;height:38px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:27px;line-height:1;cursor:pointer}.smart-team-close:hover{background:rgba(255,255,255,.28)}
.smart-team-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 68px 18px 22px;background:linear-gradient(135deg,#3e2b78,#315f9b 58%,#21826f);color:#fff}.smart-team-header h2{margin:1px 0 5px;color:#fff;font-size:27px}.smart-team-header p{margin:0;color:rgba(255,255,255,.84);font-size:13px;line-height:1.45}.smart-team-eyebrow{font-size:11px;font-weight:950;letter-spacing:.16em;color:#d9d2ff}.smart-team-header-mark{flex:0 0 auto;padding:9px 13px;border:1px solid rgba(255,255,255,.25);border-radius:12px;background:rgba(255,255,255,.12);font-weight:950;letter-spacing:.08em}
.smart-team-body{min-height:260px;padding:18px;overflow:auto}.smart-team-footer{padding:10px 18px;border-top:1px solid #dce3eb;background:#fff;color:#75818c;font-size:11px;line-height:1.45}
.smart-team-loading{min-height:330px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.smart-team-spinner{display:flex;gap:8px;margin-bottom:18px}.smart-team-spinner span{width:13px;height:13px;border-radius:50%;background:#5d5bb8;animation:smart-team-pulse 1.05s ease-in-out infinite}.smart-team-spinner span:nth-child(2){animation-delay:.15s}.smart-team-spinner span:nth-child(3){animation-delay:.3s}@keyframes smart-team-pulse{0%,80%,100%{transform:scale(.75);opacity:.45}40%{transform:scale(1.16);opacity:1}}
.smart-team-loading-title{font-size:21px;font-weight:950;color:#33475b}.smart-team-loading-steps{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:14px 0}.smart-team-loading-steps span{padding:7px 10px;border:1px solid #cfd8e8;border-radius:999px;background:#fff;color:#53647a;font-size:12px;font-weight:850}.smart-team-loading-note{max-width:560px;color:#768492;font-size:12px;line-height:1.6}
.smart-team-error{min-height:260px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px;text-align:center}.smart-team-error strong{font-size:20px;color:#3e4c58}.smart-team-error p{max-width:620px;color:#7a5b5b;line-height:1.6}.smart-team-intro{margin:0 0 12px;padding:10px 12px;border:1px solid #d7e2ec;border-radius:11px;background:#fff;color:#536270;font-size:12px;line-height:1.55}.smart-team-results{display:grid;gap:16px}
.smart-team-result{overflow:hidden;border:1px solid #d5dee8;border-radius:16px;background:#fff;box-shadow:0 7px 20px rgba(38,58,79,.08)}.smart-team-result.rank-1{border-color:#d9b44a;box-shadow:0 8px 24px rgba(185,141,31,.14)}.smart-team-result-head{display:flex;align-items:center;gap:14px;padding:13px 15px;border-bottom:1px solid #e5eaf0;background:linear-gradient(135deg,#fbfcff,#f2f6fb)}.smart-team-result.rank-1 .smart-team-result-head{background:linear-gradient(135deg,#fffaf0,#f7f2ff)}
.smart-team-rank{display:flex;align-items:center;gap:4px;flex:0 0 auto}.smart-team-rank span{font-size:11px;color:#798692;font-weight:850}.smart-team-rank strong{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#516fae;color:#fff;font-size:17px}.rank-1 .smart-team-rank strong{background:#b6851a}.rank-2 .smart-team-rank strong{background:#627385}.rank-3 .smart-team-rank strong{background:#9a6648}
.smart-team-result-score{display:flex;min-width:0;flex:1;align-items:baseline;gap:13px;flex-wrap:wrap}.smart-team-result-score strong{font-size:20px;color:#14725f}.smart-team-result-score span{font-size:14px;font-weight:900;color:#4d6478}.smart-team-apply{flex:0 0 auto;padding:9px 15px}
.smart-team-actor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}.smart-team-actor-card{min-width:0;overflow:hidden;border:1px solid #dbe2e9;border-radius:12px;background:#fff}.smart-team-actor-card.star-6{border-color:#9c83d4;background:#f7f3ff}.smart-team-actor-card.star-5{border-color:#e6b368;background:#fff8ed}.smart-team-actor-card.star-4{border-color:#8ba2d8;background:#f2f5ff}.smart-team-actor-card.expanded{grid-column:1/-1;border-color:#5d8f83;box-shadow:0 4px 13px rgba(36,110,92,.12)}
.smart-team-actor-head{width:100%;display:flex;align-items:center;gap:10px;padding:9px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.smart-team-actor-head:hover{background:rgba(41,107,91,.055)}.smart-team-actor-photo{flex:0 0 43px;width:43px;height:56px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:8px;background:#e8edf2}.smart-team-actor-image{width:100%;height:100%;object-fit:cover}.smart-team-actor-photo-fallback{font-size:10px;color:#87929d}.smart-team-actor-copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}.smart-team-role-name{font-size:10px;font-weight:900;color:#778491}.smart-team-actor-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;color:#2e3d49}.smart-team-actor-copy>span:last-child{font-size:11px;color:#697884}.smart-team-actor-toggle{flex:0 0 auto;padding:4px 6px;border-radius:999px;background:#edf3f7;color:#4f6679;font-size:10px;font-weight:900}.smart-team-actor-detail{padding:12px;border-top:1px solid #e0e6ec;background:#344658;color:#fff}.smart-team-profile-alias{font-size:12px;opacity:.86}.smart-team-profile-meta{display:flex;gap:7px;flex-wrap:wrap;margin:6px 0}.smart-team-profile-meta span{padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.13);font-size:11px}.smart-team-actor-detail .casting-selected-preview{margin:8px 0;padding:8px;border-radius:8px;background:rgba(255,255,255,.1);font-size:12px;line-height:1.55}
@media(max-width:900px){.smart-team-actor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.smart-team-dialog{width:97vw;max-height:94vh}}
@media(max-width:760px){.hidden-role-option{align-items:flex-start;flex-direction:column}.hidden-role-toggle{align-self:flex-end}.smart-team-overlay{padding:7px;align-items:flex-end}.smart-team-dialog{width:100%;max-height:94vh;border-radius:18px 18px 8px 8px}.smart-team-header{padding:16px 56px 14px 15px}.smart-team-header h2{font-size:22px}.smart-team-header-mark{display:none}.smart-team-body{padding:10px}.smart-team-result-head{align-items:flex-start;gap:9px;flex-wrap:wrap;padding:11px}.smart-team-result-score{min-width:180px;flex-direction:column;gap:2px}.smart-team-result-score strong{font-size:18px}.smart-team-apply{width:100%}.smart-team-actor-grid{grid-template-columns:1fr;padding:9px}.smart-team-actor-card.expanded{grid-column:auto}.smart-team-footer{padding:8px 11px}.movie-lineup-actions .smart-team-button{grid-column:1/-1;width:100%}}

/* RC41: hidden role remains visible but disabled; actor variants share one team identity */
.role-card.disabled{filter:grayscale(.72);opacity:.58;background:#f3f4f5;pointer-events:none}.role-card.disabled .role-head.hidden-role{background:#d7dadd!important;color:#70767b!important}.movie-casting-slot.disabled{display:flex;align-items:center;justify-content:center;min-height:120px;border:1px dashed #b9bec3;border-radius:10px;background:#eceff1;color:#70777d;font-weight:850}

/* S10.9 神本推薦與藝人排行榜 */
.god-movie-intro{margin-bottom:14px;padding:11px 13px;border:1px solid #d9e3ec;border-radius:11px;background:#f8fbfd;color:#526373;font-size:13px;line-height:1.7}.god-movie-search{max-width:680px}.god-movie-selected{margin-top:14px}.god-movie-selected-card{display:flex;align-items:center;gap:13px;padding:12px;border:1px solid #d7e2eb;border-radius:13px;background:linear-gradient(135deg,#f8fbff,#edf8f4)}.god-movie-selected-card>div{min-width:0;flex:1}.god-movie-selected-card strong{display:block;font-size:20px;color:#245d52}.god-movie-selected-card div div{margin-top:3px;color:#6a7886;font-size:12px}.god-movie-actor-photo,.actor-ranking-photo{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#e8edf2;color:#7c8792;font-weight:900}.god-movie-actor-photo{flex:0 0 52px;width:52px;height:68px;border-radius:10px}.actor-ranking-photo{flex:0 0 42px;width:42px;height:54px;border-radius:8px}.god-movie-actor-photo img,.actor-ranking-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.god-movie-placeholder{padding:26px;text-align:center}.god-movie-loading{min-height:240px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;text-align:center;color:#516271}.god-movie-loading span{font-size:12px;color:#7a8792}.god-movie-spinner{width:38px;height:38px;border:4px solid #d8e6e1;border-top-color:#227461;border-radius:50%;animation:godMovieSpin .85s linear infinite}@keyframes godMovieSpin{to{transform:rotate(360deg)}}.god-movie-result-summary{margin-bottom:14px;padding:11px 13px;border-radius:10px;background:#e8f7f1;color:#245f52}.god-movie-tier-list{display:grid;gap:16px}.god-movie-tier{overflow:hidden;border:1px solid #d5dee8;border-radius:15px;background:#fff}.god-movie-tier.rank-1{border-color:#d8b54b}.god-movie-tier header{display:flex;align-items:center;gap:13px;padding:13px 15px;background:linear-gradient(135deg,#f7fafc,#edf3f7);border-bottom:1px solid #e1e7ed}.god-movie-tier.rank-1 header{background:linear-gradient(135deg,#fff8e9,#f9f3ff)}.god-movie-tier header>span{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:8px;border-radius:999px;background:#536f93;color:#fff;font-weight:950}.god-movie-tier.rank-1 header>span{background:#b3851e}.god-movie-tier header>div{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}.god-movie-tier header strong{font-size:18px;color:#176b59}.god-movie-tier header small{font-size:12px;color:#617384;font-weight:850}.god-movie-tier header em{font-size:12px;font-style:normal;font-weight:850;color:#6b7783}.god-movie-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px}.god-movie-card{padding:12px;border:1px solid #dce3ea;border-radius:11px;background:#fbfcfe}.god-movie-card-title{font-size:16px;font-weight:950;color:#354757}.god-movie-card-score{margin-top:6px;font-size:12px;font-weight:850;color:#28705e}.god-movie-conditions{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.god-movie-conditions span{padding:4px 7px;border-radius:999px;background:#edf1f6;color:#596b7c;font-size:10px;font-weight:800}.god-movie-empty{min-height:180px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;text-align:center;color:#6b7782}.actor-ranking-summary{margin-top:11px;color:#6b7783;font-size:12px}.actor-ranking-row{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;border:0;border-bottom:1px solid #e8edf2;background:#fff;color:inherit;text-align:left;cursor:pointer}.actor-ranking-row:hover{background:#f1f8f5}.actor-ranking-rank{flex:0 0 64px;font-size:16px;font-weight:950;color:#8c6917}.actor-ranking-name{display:flex;min-width:150px;flex:1;flex-direction:column}.actor-ranking-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px}.actor-ranking-name small{margin-top:2px;color:#7b8791}.actor-ranking-tiers{flex:2;color:#5c6b78;font-size:12px;font-weight:800}.actor-ranking-count{display:flex;min-width:86px;align-items:flex-end;flex-direction:column}.actor-ranking-count strong{font-size:23px;color:#20705d}.actor-ranking-count small{color:#7b8791}.actor-ranking-pagination{justify-content:center;margin-top:15px}.actor-ranking-pagination span{font-size:12px;color:#667582}
@media(max-width:900px){.god-movie-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.actor-ranking-tiers{display:none}}
@media(max-width:620px){.god-movie-selected-card{align-items:flex-start;flex-wrap:wrap}.god-movie-selected-card .btn{width:100%}.god-movie-grid{grid-template-columns:1fr}.god-movie-tier header{align-items:flex-start;flex-wrap:wrap}.god-movie-tier header em{width:100%;padding-left:71px}.actor-ranking-row{gap:8px;padding:9px 6px}.actor-ranking-rank{flex-basis:50px;font-size:13px}.actor-ranking-photo{flex-basis:36px;width:36px;height:48px}.actor-ranking-name{min-width:0}.actor-ranking-count{min-width:58px}.actor-ranking-count strong{font-size:19px}}
/* God-Movie RC4: collapsible tiers and tie-share leaderboard */
.god-movie-tier header{padding:0}.god-movie-tier-toggle{width:100%;display:flex;align-items:center;gap:13px;padding:13px 15px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.god-movie-tier-toggle>span{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:8px;border-radius:999px;background:#536f93;color:#fff;font-weight:950}.god-movie-tier.rank-1 .god-movie-tier-toggle>span{background:#b3851e}.god-movie-tier-toggle>div{display:flex;min-width:0;flex:1;flex-direction:column;gap:3px}.god-movie-tier-toggle strong{font-size:18px;color:#176b59}.god-movie-tier-toggle small{font-size:12px;color:#617384;font-weight:850}.god-movie-tier-toggle em{font-size:12px;font-style:normal;font-weight:850;color:#6b7783}.god-movie-tier-toggle i{font-size:20px;font-style:normal;color:#657685;transition:transform .18s ease}.god-movie-tier.is-collapsed .god-movie-tier-toggle i{transform:rotate(-90deg)}.god-movie-tier.is-collapsed .god-movie-grid{display:none}.god-movie-tier.is-collapsed header{border-bottom:0}.god-movie-tier-toggle:focus-visible{outline:3px solid rgba(34,116,97,.28);outline-offset:-3px}
@media(max-width:620px){.god-movie-tier-toggle{align-items:flex-start;flex-wrap:wrap}.god-movie-tier-toggle em{width:auto;margin-left:71px}.god-movie-tier-toggle i{margin-left:auto}}
@media(max-width:620px){.god-movie-tier .god-movie-tier-toggle em{width:auto;margin-left:71px;padding-left:0}.god-movie-tier .god-movie-tier-toggle i{margin-left:auto}}


/* RC51 compact PWA install entry and non-blocking reminder */
.top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 14px}
.top-brand{min-width:0}
.pwa-install-entry{position:relative;justify-self:end;z-index:150}
.pwa-install-entry-button{width:150px;min-height:44px;display:grid;grid-template-columns:28px minmax(0,1fr) 13px;align-items:center;gap:7px;padding:7px 9px;border:1px solid rgba(15,118,110,.32);border-radius:11px;background:linear-gradient(135deg,#0f766e 0%,#168f7d 62%,#2e8b57 100%);color:#fff;box-shadow:0 6px 16px rgba(15,118,110,.20);cursor:pointer;text-align:left;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.pwa-install-entry-button:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,118,110,.27);filter:brightness(1.03)}
.pwa-install-entry-button:focus-visible,.pwa-install-now-button:focus-visible,.pwa-install-later-button:focus-visible,.pwa-install-guide-primary:focus-visible,.pwa-install-guide-secondary:focus-visible,.pwa-install-guide-close:focus-visible,.pwa-install-prompt-close:focus-visible{outline:3px solid rgba(56,189,248,.5);outline-offset:2px}
.pwa-install-entry-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:rgba(255,255,255,.17);font-size:17px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.pwa-install-entry-copy{display:flex;min-width:0;line-height:1.15}
.pwa-install-entry-copy strong{font-size:14px;font-weight:950;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pwa-install-entry-copy small{display:none}
.pwa-install-entry-arrow{font-size:20px;line-height:1;font-weight:700;opacity:.86;transform:translateY(-1px)}
.pwa-install-prompt{position:absolute;top:calc(100% + 7px);right:0;width:min(286px,calc(100vw - 20px));padding:12px;border:1px solid #b8ddd4;border-radius:13px;background:#fff;box-shadow:0 14px 36px rgba(20,45,57,.24);color:#24313a;text-align:left;z-index:220;animation:pwaInstallPromptIn .18s ease-out}
@keyframes pwaInstallPromptIn{from{opacity:0;transform:translateY(-5px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
.pwa-install-prompt::before{content:"";position:absolute;right:27px;top:-7px;width:12px;height:12px;background:#fff;border-left:1px solid #b8ddd4;border-top:1px solid #b8ddd4;transform:rotate(45deg)}
.pwa-install-prompt-close{position:absolute;right:6px;top:6px;width:26px;height:26px;border:0;border-radius:50%;background:#eef5f3;color:#45615a;font-size:19px;line-height:1;cursor:pointer}
.pwa-install-prompt-kicker,.pwa-install-guide-kicker{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:#dcf7ed;color:#0f766e;font-size:10px;font-weight:950;letter-spacing:.07em}
.pwa-install-prompt-title{margin-top:7px;padding-right:24px;font-size:16px;font-weight:950;line-height:1.28;color:#164e45}
.pwa-install-prompt-text{margin-top:5px;color:#5f6b73;font-size:11.5px;line-height:1.5}
.pwa-install-prompt-status{min-height:0;margin-top:0;color:#9a5b0b;font-size:11px;font-weight:800;line-height:1.4}
.pwa-install-prompt-status:not(:empty){min-height:16px;margin-top:6px}
.pwa-install-prompt-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:10px}
.pwa-install-now-button,.pwa-install-later-button{border:0;border-radius:9px;padding:8px 10px;font:inherit;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}
.pwa-install-now-button{background:#0f766e;color:#fff;box-shadow:0 4px 10px rgba(15,118,110,.20)}
.pwa-install-now-button:disabled{opacity:.58;cursor:wait}
.pwa-install-later-button{background:#edf2f5;color:#53606a}
.pwa-install-guide-overlay{position:fixed;inset:0;z-index:11000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(5,14,20,.68);backdrop-filter:blur(4px)}
.pwa-install-guide-dialog{width:min(520px,100%);max-height:min(760px,calc(100vh - 28px));overflow:auto;padding:20px;border:1px solid rgba(255,255,255,.22);border-radius:19px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.42)}
.pwa-install-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:14px;border-bottom:1px solid #e5ecea}
.pwa-install-guide-head strong{display:block;margin-top:7px;color:#164e45;font-size:22px;line-height:1.25}
.pwa-install-guide-close{flex:0 0 auto;width:34px;height:34px;border:0;border-radius:50%;background:#edf4f2;color:#355b52;font-size:24px;line-height:1;cursor:pointer}
.pwa-install-guide-section{margin-top:16px}
.pwa-install-browser-warning{margin-bottom:13px;padding:10px 12px;border:1px solid #f1c977;border-radius:10px;background:#fff7df;color:#875410;font-size:13px;font-weight:850;line-height:1.5}
.pwa-install-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pwa-install-steps li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:start;padding:11px;border:1px solid #dce8e5;border-radius:12px;background:#f8fbfa}
.pwa-install-step-number{width:31px;height:31px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0f766e;color:#fff;font-weight:950}
.pwa-install-steps strong{display:block;color:#24453e;font-size:15px;line-height:1.35}
.pwa-install-steps li div>span{display:block;margin-top:4px;color:#65726f;font-size:12px;line-height:1.55}
.pwa-install-share-row{display:flex!important;align-items:center;gap:8px}
.pwa-install-share-icon{width:25px;height:25px;display:inline-flex!important;align-items:center;justify-content:center;margin:0!important;border:2px solid #2878c8;border-radius:5px;color:#2878c8;font-size:17px;font-weight:950;line-height:1}
.pwa-install-guide-message{min-height:0;margin-top:0;color:#0f766e;font-size:13px;font-weight:850;text-align:center}
.pwa-install-guide-message:not(:empty){min-height:20px;margin-top:12px}
.pwa-install-guide-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:17px;padding-top:15px;border-top:1px solid #e5ecea}
.pwa-install-guide-primary,.pwa-install-guide-secondary{border:0;border-radius:10px;padding:10px 14px;font:inherit;font-weight:900;cursor:pointer}
.pwa-install-guide-primary{background:#0f766e;color:#fff}
.pwa-install-guide-secondary{background:#edf2f5;color:#52606a}
@media(max-width:760px){
 .top{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px}
 .pwa-install-entry{width:auto;align-self:start}
 .pwa-install-entry-button{width:136px;min-height:40px;grid-template-columns:26px minmax(0,1fr) 11px;gap:6px;padding:6px 8px;border-radius:10px}
 .pwa-install-entry-icon{width:26px;height:26px;border-radius:7px;font-size:16px}
 .pwa-install-entry-copy strong{font-size:13px}
 .pwa-install-entry-arrow{font-size:18px}
 .pwa-install-prompt{position:fixed;left:50%;right:auto;top:auto;bottom:max(12px,env(safe-area-inset-bottom));width:min(320px,calc(100vw - 20px));padding:11px;transform:translateX(-50%);z-index:10000;box-shadow:0 15px 42px rgba(20,45,57,.30)}
 .pwa-install-prompt::before{display:none}
 @keyframes pwaInstallPromptIn{from{opacity:0;transform:translate(-50%,7px) scale(.99)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
}
@media(max-width:460px){
 .top h1{font-size:28px;line-height:1.15}
 .pwa-install-entry-button{width:130px}
 .pwa-install-prompt-title{font-size:15px}
 .pwa-install-prompt-text{font-size:11px}
 .pwa-install-prompt-actions{grid-template-columns:minmax(0,1fr) auto}
 .pwa-install-now-button,.pwa-install-later-button{padding:8px 9px;font-size:11.5px}
 .pwa-install-guide-overlay{padding:10px}
 .pwa-install-guide-dialog{padding:16px;border-radius:16px}
 .pwa-install-guide-head strong{font-size:20px}
 .pwa-install-guide-actions{display:grid;grid-template-columns:1fr}
 .pwa-install-guide-primary,.pwa-install-guide-secondary{width:100%}
}
@media(max-width:360px){
 .top{gap:6px}
 .pwa-install-entry-button{width:118px;grid-template-columns:24px minmax(0,1fr) 10px;padding:5px 7px}
 .pwa-install-entry-icon{width:24px;height:24px;font-size:15px}
 .pwa-install-entry-copy strong{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.pwa-install-entry-button,.pwa-install-prompt{transition:none;animation:none}}

.movie-role-editor-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.movie-role-editor-card.is-hidden-role{border-color:#e8c766;background:#fffaf0;box-shadow:0 0 0 2px rgba(232,199,102,.16) inset}.movie-role-hidden-switch{display:inline-flex;align-items:center;gap:7px;border:1px solid #cfd8df;border-radius:999px;padding:5px 9px;background:#f2f5f7;color:#56636d;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.movie-role-hidden-switch.active{border-color:#d3a91f;background:#fff0bd;color:#805d00}.movie-role-hidden-track{position:relative;width:34px;height:19px;border-radius:999px;background:#b8c2ca;transition:.18s background}.movie-role-hidden-switch.active .movie-role-hidden-track{background:#d3a91f}.movie-role-hidden-knob{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.18s transform}.movie-role-hidden-switch.active .movie-role-hidden-knob{transform:translateX(15px)}@media(max-width:560px){.movie-role-editor-title-row{align-items:flex-start;flex-direction:column;gap:7px}}