:root{
  --ink:#2a2a2a; --brand:#2e7d4f; --brand2:#38935f; --paper:#faf7f2;
  --line:#e3ddd2; --ok:#256025; --warn:#8a5a20; --bad:#8a2020; --muted:#8a847a;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",Segoe UI,sans-serif;
  color:var(--ink);background:var(--paper);font-size:14px;line-height:1.6}
.top{display:flex;align-items:center;gap:18px;padding:10px 18px;background:var(--brand);color:#fff;
  position:sticky;top:0;z-index:20;flex-wrap:wrap}
.brand{font-weight:700;font-size:16px;letter-spacing:.5px;white-space:nowrap}
.tabs{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.tab{background:rgba(255,255,255,.12);color:#fff;border:none;padding:6px 12px;border-radius:6px;
  cursor:pointer;font-size:13px}
.tab:hover{background:rgba(255,255,255,.22)}
.tab.active{background:#fff;color:var(--brand);font-weight:600}
.userbar{display:flex;align-items:center;gap:8px}
.ub-user{font-size:13px;color:#fff}
main{max-width:1180px;margin:0 auto;padding:18px}
.view{display:none}
.view.active{display:block}
h2{font-size:18px;margin:6px 0 12px;color:var(--brand)}
h3{font-size:15px;margin:16px 0 8px;color:var(--brand2)}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;margin:10px 0;
  box-shadow:0 1px 3px rgba(0,0,0,.04)}
.card.ok{border-color:#bfe0bf;background:#f4fbf4}
.card.warn{border-color:#ecd9a8;background:#fdf8ec}
.card.bad{border-color:#e6b3b3;background:#fdf4f4}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.kpi{flex:1;min-width:120px;background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:12px;text-align:center}
.kpi .n{font-size:22px;font-weight:700}
.kpi .l{font-size:12px;color:var(--muted);margin-top:2px}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;color:#fff;white-space:nowrap}
.b-ok{background:var(--ok)} .b-warn{background:var(--warn)} .b-bad{background:var(--bad)} .b-gray{background:#9a958c}
.btn{background:var(--brand);color:#fff;border:none;padding:8px 16px;border-radius:7px;cursor:pointer;
  font-size:13px;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:filter .12s,transform .05s}
.btn:hover{background:var(--brand2)}
.btn:active{transform:translateY(1px);filter:brightness(.97)}
.btn:focus-visible{outline:2px solid var(--brand2);outline-offset:2px}
.btn.s{padding:5px 10px;font-size:12px}
.btn.danger{background:var(--bad)}
.btn.danger:hover{background:#a82828}
.slevel-toolbar{display:flex;align-items:center;gap:14px;margin:6px 0 10px;flex-wrap:wrap}
.slevel-toggle{font-size:13px;color:#334;cursor:pointer;user-select:none}
.slevel-toggle input{vertical-align:-1px;margin-right:4px}
.tip{font-size:12.5px;color:var(--muted);background:#f1ece3;border-left:3px solid var(--brand2);
  padding:8px 10px;border-radius:4px;margin:0 0 10px}
.muted{color:var(--muted);font-size:12px}
.fail{color:var(--bad);font-weight:600}
.pass{color:var(--ok)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:6px 0}
.form-grid>div{display:flex;flex-direction:column;gap:3px}
label{font-size:12px;color:var(--muted);margin-top:6px}
input,select,textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:6px;
  font-size:13px;font-family:inherit;background:#fff;color:var(--ink)}
textarea{resize:vertical}
table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
th,td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
th{background:#f1ece3;font-weight:600}
tr:nth-child(even) td{background:#fcfaf6}
.chip{display:inline-block;background:#eef3ee;color:var(--brand);border-radius:10px;padding:1px 8px;
  font-size:12px;margin:2px 3px 0 0}
/* 发布排期表 · 账号筛选条 */
.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
.filter-bar>b{color:var(--ink)}
.filter-chip{cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);
  border-radius:20px;padding:5px 13px;font-size:12.5px;font-weight:600;transition:filter .12s,background .12s,color .12s}
.filter-chip:hover{background:#f3f6f3}
.filter-chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.filter-chip.empty{border-color:#e0b878;color:#9a6a1e;background:#fdf8ec}
.filter-chip.empty.active{background:#b5852f;color:#fff;border-color:#b5852f}
.filter-chip.empty::after{content:""}
/* 内容效能：表格内数字录入框 */
.perf-num{width:62px;padding:3px 5px;font-size:12px;text-align:right}
.perf-date{width:132px;padding:3px 5px;font-size:12px}
.rev{list-style:none;padding-left:0;margin:6px 0 0}
.rev li{font-size:13px;padding:3px 0;border-top:1px dashed var(--line)}
.brief-fields>div{padding:1px 0}
.overlay{position:fixed;inset:0;background:rgba(30,30,30,.55);display:flex;align-items:center;
  justify-content:center;z-index:100}
.login-box{background:#fff;border-radius:14px;padding:26px 28px;width:380px;max-width:92vw;
  box-shadow:0 12px 40px rgba(0,0,0,.25)}
.login-box h2{margin-top:0}
.alerts{list-style:none;padding-left:0;margin:6px 0}
.alerts li{padding:5px 9px;border-radius:6px;margin-bottom:5px;font-size:13px}
.al-red{background:#fdf4f4;color:#8a2020;border-left:3px solid #c0392b}
.al-green{background:#f4fbf4;color:#256025;border-left:3px solid #3f7a4e}
.al-warn{background:#fdf8ec;color:#8a5a20;border-left:3px solid #caa15a}
/* 通用弹窗：全局可用，居中基础上略偏右(60% 位置)，贴近右侧操作列 */
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9999}
.modal-box{background:#fff;border-radius:10px;width:92%;max-width:740px;max-height:88vh;overflow:auto;box-shadow:0 10px 40px rgba(0,0,0,.2);margin-left:min(14vw,240px)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #eee}
.modal-body{padding:16px 18px}
.modal-foot{padding:12px 18px;border-top:1px solid #eee;display:flex;gap:8px;justify-content:flex-end}
@media (max-width: 900px){.modal-box{margin-left:0}}

/* S级拍摄计划融合 */
.slevel-cust{margin-bottom:14px}
.splan-list{list-style:none;padding-left:0;margin:10px 0 0}
.splan{padding:8px 10px;border:1px solid #eee;border-radius:7px;margin-bottom:7px;background:#fcfcfd}
.splan-h{display:flex;justify-content:space-between;align-items:center;gap:12px}
.splan-main{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.splan-side{flex:0 0 auto}
.tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;background:#eef1f5;color:#556;margin-left:2px}
.tag.node{background:#e7eefb;color:#2c5aa0}
.tag.ok{background:#e9f7ec;color:#2c7a3f}
.tag.pri-P0{background:#fde8e8;color:#b3261e;font-weight:600}
.tag.pri-P1{background:#fdf0e4;color:#b56a1e}
.tag.pri-P2{background:#eef1f5;color:#778}
.sm{font-size:12px}
.push-row{display:flex;align-items:center;gap:6px}
.sel-sm{font-size:12px;padding:4px 6px;border:1px solid #b9c2cd;border-radius:6px;background:#fff;color:#334;max-width:200px}
.sel-sm:focus{outline:none;border-color:#2c5aa0}
.toast{position:fixed;left:50%;bottom:38px;transform:translateX(-50%) translateY(20px);background:#2b2b2b;color:#fff;padding:10px 18px;border-radius:8px;font-size:13px;opacity:0;pointer-events:none;transition:.25s;z-index:99}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* 内容原型库 */
.arche-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:8px}
.arche-card .tier{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:600}
.tier-旗舰{background:#f3eafc;color:#7a3fb0}
.tier-模板{background:#e9f3fb;color:#2c6aa0}
.tier-保量{background:#eef1f5;color:#778}

/* 选题分镜详情（双审查看分镜弹窗） */
.shot-title{font-size:15px;line-height:1.6;margin-bottom:8px;padding:10px 12px;background:#faf7f2;border-left:3px solid #b8956a;border-radius:4px}
.shot-title b{color:#7a5535;margin-right:4px}
.shot-pain{font-size:13px;line-height:1.7;margin-bottom:14px;padding:8px 12px;background:#fff8ec;border-radius:4px;color:#3a3a3a}
.shot-pain b{color:#7a5535;margin-right:4px}
.shot-pain.muted{color:#aaa}
.shot-tbl{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid #ece6da;border-radius:6px;overflow:hidden}
.shot-tbl thead th{background:#5b4636;color:#fff;padding:9px 10px;text-align:left;font-weight:600;font-size:12px;letter-spacing:.3px}
.shot-tbl tbody td,.shot-tbl tbody th{padding:10px 12px;border-top:1px solid #ece6da;vertical-align:top;line-height:1.65;color:#3a3a3a}
.shot-tbl tbody tr:nth-child(even) td{background:#fdfaf5}
.shot-tbl .shot-no{width:42px;text-align:center;color:#7a5535;font-weight:600;background:#faf7f2}
.shot-tbl tbody th{background:#faf7f2;color:#7a5535;text-align:left;font-weight:600;width:120px}
/* 剧本库分镜编辑器：表格内的输入框撑满单元格 */
.sc-shot-tbl td{padding:4px}
.sc-shot-tbl textarea,.sc-shot-tbl select{width:100%;box-sizing:border-box;border:1px solid #e2e2e2;border-radius:4px;padding:5px 7px;font-size:12px;font-family:inherit;line-height:1.5;resize:vertical;background:#fff}
.sc-shot-tbl textarea:focus,.sc-shot-tbl select:focus{outline:none;border-color:#b8956a}

/* 双审工作台 L1：漏斗数字 / 状态筛选 / 我的待审 */
.filter-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 12px}
.funnel{display:flex;gap:8px;flex-wrap:wrap}
.fc{display:inline-block;padding:4px 12px;border-radius:18px;font-size:12.5px;font-weight:600;border:1px solid transparent}
.fc-warn{background:#fdf8ec;color:var(--warn);border-color:#ecd9a8}
.fc-amber{background:#fdf3e6;color:#9a6a16;border-color:#f0d3a8}
.fc-ok{background:#f4fbf4;color:var(--ok);border-color:#bfe0bf}
.fc-bad{background:#fdf4f4;color:var(--bad);border-color:#e6b3b3}
.brief-tabs{display:flex;gap:4px;flex-wrap:wrap}
.brief-tab{background:#fff;border:1px solid var(--line);color:var(--ink);padding:5px 12px;border-radius:7px;cursor:pointer;font-size:13px}
.brief-tab:hover{background:#f1ece3}
.brief-tab.active{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.brief-tab.mine{background:#eef3ee;color:var(--brand);border-color:#cfe3cf}
.brief-tab.mine.active{background:var(--brand);color:#fff;border-color:var(--brand)}

/* 双审工作台 L2/L3/L4：搜索/排序/分组 + 列表/详情分离 + 分页 + 逾期/每日摘要 */
.list-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
.list-tools .ipt{flex:1;min-width:200px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:#fff}
.list-tools .sel{padding:6px 8px;border:1px solid var(--line);border-radius:7px;font-size:13px;background:#fff}
.list-tools .lbl{font-size:12px;color:var(--muted)}
.fc-over{background:#fff1f1;color:var(--bad);border-color:#e6b3b3}
.grp-head{font-size:12.5px;font-weight:600;color:var(--brand);margin:10px 0 4px;padding:3px 8px;background:#f3f7f3;border-radius:6px}
.brief-sum{border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:8px;padding:9px 12px;margin:7px 0;background:#fff;cursor:pointer;transition:box-shadow .12s}
.brief-sum:hover{box-shadow:0 2px 10px rgba(0,0,0,.08)}
.shot-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 12px;margin-top:4px}
.shot-checklist .sc-cell{display:flex;flex-direction:column;gap:3px}
.shot-checklist .sc-cell label{font-size:12px;color:var(--muted);font-weight:600;margin:0}
.shot-checklist .sc-cell textarea{padding:5px 8px;border:1px solid var(--line);border-radius:5px;font-size:12.5px;resize:vertical;min-height:34px;background:#fff}
.shot-checklist .sc-cell textarea:focus{outline:none;border-color:var(--brand)}
.brief-checklist{width:100%;border-collapse:collapse;font-size:12.5px;background:#fcfbfa;border-radius:5px;overflow:hidden}
.brief-checklist th,.brief-checklist td{padding:4px 8px;border:1px solid #ececec;text-align:left;vertical-align:top}
.brief-checklist th{background:#f6f4ef;font-weight:600}
.brief-sum.over{border-left-color:var(--bad);background:#fff8f8}
.bs-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bs-id{font-size:12px;color:#fff;background:#2f6fed;border-radius:4px;padding:1px 6px;font-weight:600}
.bs-theme{font-size:14px}
.bs-od{font-size:12px;color:#fff;background:var(--bad);border-radius:4px;padding:1px 6px;font-weight:600}
.bs-meta{margin-top:3px;font-size:12.5px;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.bs-meta .dot{color:var(--muted)}
.pager{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0 4px;font-size:13px}
.pg-info{color:var(--muted);margin-right:6px}
.pg-btn{padding:4px 9px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer;font-size:13px}
.pg-btn:hover:not(:disabled){background:#f1ece3}
.pg-btn.active{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.pg-btn:disabled{opacity:.45;cursor:not-allowed}
.pg-ell{color:var(--muted);padding:0 2px}
.brief-daily{border:1px solid #ecd9a8;background:#fffdf6;border-radius:8px;padding:10px 12px;margin:6px 0 10px}
.bd-head{font-size:13px;font-weight:600;color:var(--warn);margin-bottom:6px}
.bd-row{display:flex;gap:8px;flex-wrap:wrap}
.bd-pill{background:#fff;border:1px solid var(--line);border-radius:14px;padding:3px 10px;font-size:12.5px;color:var(--ink)}
.bd-pill b{color:var(--brand)}
.bd-pill.mine{background:#eef3ee;border-color:#cfe3cf}
.bd-pill.od{background:#fff1f1;border-color:#e6b3b3;color:var(--bad)}
.bd-pill.od b{color:var(--bad)}
.bd-od{margin-top:6px;font-size:12.5px;color:var(--bad)}
.bd-od a{color:var(--bad);text-decoration:underline;margin-right:4px;cursor:pointer}
.bd-soft{margin-top:6px;font-size:12.5px;color:var(--ink)}

/* ===========================
   内容效能 · 表格精修（续12）
   =========================== */
.kpi-row{display:flex;gap:12px;flex-wrap:wrap}
.kpi-card{flex:1;min-width:140px;background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;position:relative;overflow:hidden}
.kpi-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line)}
.kpi-card.primary::before{background:var(--brand)}
.kpi-card.success::before{background:var(--ok)}
.kpi-card.info::before{background:#2c5aa0}
.kpi-card.accent::before{background:#b5852f}
.kpi-card.neutral::before{background:var(--muted)}
.kpi-card .kpi-n{font-size:24px;font-weight:700;color:var(--ink);line-height:1.15}
.kpi-card .kpi-l{font-size:12px;color:var(--muted);margin-top:5px}

.perf-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--line);background:#fff;
  margin-top:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.perf-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.perf-table th,.perf-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:8px 10px;text-align:left;vertical-align:middle;background:#fff}
.perf-table th:last-child,.perf-table td:last-child{border-right:none}
.perf-table tbody tr:last-child td{border-bottom:none}

/* 分组表头 */
.perf-table .grp-row th{background:var(--brand);color:#fff;font-weight:600;text-align:center;
  font-size:12px;letter-spacing:1px;padding:7px 10px;border-right:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.25)}
.perf-table .grp-row th:last-child{border-right:none}
.perf-table .grp-row .grp-solo{background:var(--brand);color:#fff;font-weight:600;font-size:12px;
  text-align:center;letter-spacing:1px;vertical-align:middle}
.perf-table .lbl-row th{background:#f5f0e6;color:var(--ink);font-weight:500;font-size:12px;
  padding:7px 10px;text-align:center;border-right:1px solid var(--line)}
.perf-table .lbl-row th:last-child{border-right:none}

/* 行内交互 */
.perf-table tbody tr{transition:background-color .12s}
.perf-table tbody tr:hover td{background:#fbf9f4}
.perf-table tbody tr:nth-child(even) td{background:#fcfaf6}
.perf-table tbody tr:nth-child(even):hover td{background:#f8f5ec}
.perf-table .rank-cell{text-align:center;font-weight:700;color:var(--muted);font-size:12px}

/* 单元格内容 */
.perf-table .perf-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;font-size:13px;line-height:1.45;max-height:42px;
  word-break:break-word}
.perf-table .ellipsis{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;vertical-align:middle}
.perf-table .ctype-chip{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;
  background:#eef3ee;color:var(--brand);white-space:nowrap}
.perf-table .muted{color:var(--muted)}
.perf-table .muted-sm{font-size:11px;color:var(--muted);font-weight:normal;margin-left:1px}
.perf-table .days-num{font-weight:700;color:var(--ink);font-size:13px}

/* 数字输入 */
.perf-table .perf-num{width:100%;padding:4px 6px;font-size:12px;text-align:right;
  border:1px solid var(--line);border-radius:5px;background:#fff;font-family:inherit}
.perf-table .perf-num:focus{outline:none;border-color:var(--brand);background:#fffefb;
  box-shadow:0 0 0 2px rgba(46,125,79,.15)}
.perf-table .perf-num-leads{font-weight:700;text-align:center}
.perf-table .perf-leads-hit{background:rgba(46,125,79,.10);border-color:var(--brand);color:var(--brand)}
.perf-table .perf-date{width:100%;padding:4px 6px;font-size:12px;border:1px solid var(--line);
  border-radius:5px;background:#fff;font-family:inherit}
.perf-table .perf-date:focus{outline:none;border-color:var(--brand)}

/* 强调指标 */
.perf-table .pct-eng{color:var(--brand);font-weight:600}
.perf-table .pct-vel{color:var(--ok);font-weight:700}

/* 操作区 */
.perf-table .perf-actions{display:flex;flex-direction:column;align-items:center;gap:4px}
.perf-table .perf-source{display:inline-block;padding:1px 7px;border-radius:8px;font-size:10px;
  font-weight:600;letter-spacing:.5px;background:#eee;color:var(--muted);text-transform:uppercase}
.perf-table .perf-source.skeleton{background:#f1ece3;color:#8a5a20}
.perf-table .perf-source.manual{background:#eef3ee;color:var(--brand)}
.perf-table .perf-source.api{background:#e7eefb;color:#2c5aa0}

