:root{
  --blue:#3b6fe0;
  --blue-light:#eaf0fc;
  --blue-border:#c3d4f5;
  --ink:#1f2733;
  --muted:#8a94a6;
  --line:#e4e8f0;
  --bg:#f4f6fb;
  --l1:#2e9e6b; --l2:#3b6fe0; --l3:#d9822b; --l4:#c0392b;
  --radius:10px;
}
*{box-sizing:border-box;}
html,body{margin:0;height:100%;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink);
  background:var(--bg);
  font-size:13px;
}

/* 顶部条 */
.topbar{
  display:flex;align-items:center;gap:24px;
  padding:0 22px;height:56px;
  background:#fff;border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20;
}
.brand-logo{font-size:16px;font-weight:600;color:var(--blue);white-space:nowrap;}
.asset-picker{display:flex;align-items:center;gap:8px;}
.asset-picker label{color:var(--muted);}
.asset-picker select{min-width:280px;}
.progress{margin-left:auto;display:flex;align-items:center;gap:10px;}
#progressText{color:var(--muted);white-space:nowrap;}
.progress-bar{width:160px;height:8px;background:var(--line);border-radius:6px;overflow:hidden;}
.progress-fill{height:100%;width:0;background:var(--blue);transition:width .3s;}

select{
  appearance:none;padding:6px 28px 6px 10px;border:1px solid var(--blue-border);
  border-radius:7px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238a94a6'/%3E%3C/svg%3E") no-repeat right 10px center;
  color:var(--ink);cursor:pointer;font-size:13px;
}

/* 布局 */
.workspace{padding:16px;display:flex;flex-direction:column;gap:14px;}
.card{
  background:#fff;border:1px solid var(--blue-border);border-radius:var(--radius);
  box-shadow:0 1px 3px rgba(30,60,120,.04);
}
.card.grow{display:flex;flex-direction:column;}
.card-head{
  padding:11px 16px;border-bottom:1px solid var(--line);
  font-weight:600;font-size:13px;color:var(--ink);
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
}
.hint{font-weight:400;color:var(--muted);font-size:12px;}

/* 素材信息（单行，字段均匀分布） */
.asset-info{padding:12px 18px;}
.info-row.one{display:flex;align-items:center;gap:6px 12px;flex-wrap:nowrap;}
.field{display:flex;flex-direction:column;gap:3px;flex:1 1 0;min-width:0;}
.field .k{color:var(--muted);font-size:11px;white-space:nowrap;}
.field .v{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.field .v a{color:var(--blue);text-decoration:none;white-space:nowrap;}
/* 素材标题：蓝色加粗，占据约 3 倍于其它字段的宽度 */
.title-field{flex:3 1 0;}
.title-field .v{color:var(--blue);font-weight:700;font-size:14px;}

/* ① 素材信息栏固定在治理人条下方，浅红底色以示区分 */
.sticky-info{position:sticky;top:56px;z-index:15;background:#fdf3f3;border-color:#f0d7d7;box-shadow:0 2px 6px rgba(30,60,120,.06);}
.sticky-info .card-head{background:#fdf3f3;}

/* 标签区 */
.tag-region{padding:14px 16px;display:flex;flex-direction:column;gap:14px;}
.biz-domain{display:flex;gap:24px;flex-wrap:wrap;}
.tag-dim{display:flex;align-items:center;gap:8px;}
.dim-label{color:var(--muted);white-space:nowrap;min-width:66px;}
/* 必填红星：确认治理完成时会被拦截的项 */
.req-star{color:#e5484d;font-weight:700;margin-left:2px;cursor:help;}
/* 三栏：普通维度占左两栏（自动流动），品牌相关维度集中在右侧一栏 */
.primary-tags{display:grid;grid-template-columns:2fr 1fr;gap:10px 24px;align-items:start;}
.pt-general{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;align-items:start;}
.pt-brand{display:flex;flex-direction:column;gap:10px;padding-left:20px;border-left:1px dashed var(--line);}
.ptag{display:flex;align-items:flex-start;gap:8px;}
.ptag .dim-label{padding-top:5px;}
.chips{display:flex;flex-wrap:wrap;gap:5px;}
.chip{
  padding:3px 10px;border:1px solid var(--blue-border);border-radius:20px;
  background:#fff;color:var(--ink);cursor:pointer;font-size:12px;user-select:none;
  transition:all .12s;
}
.chip:hover{border-color:var(--blue);}
.chip.on{background:var(--blue);color:#fff;border-color:var(--blue);}

/* 面包屑 */
.breadcrumb{padding:8px 16px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);}
.breadcrumb .crumb{color:var(--blue);cursor:pointer;}
.breadcrumb .sep{margin:0 6px;color:var(--muted);}

/* Miller 五栏（栏位变窄，行内元素相应收紧） */
.miller{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-bottom:1px solid var(--line);}
.miller-col{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:300px;}
.miller-col:last-child{border-right:none;}
.col-head{padding:8px 12px;background:var(--blue-light);color:var(--blue);font-weight:600;font-size:12px;border-bottom:1px solid var(--line);}
.col-body{padding:6px;overflow-y:auto;max-height:360px;flex:1;}

/* 目录/文件行 */
.node{
  display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;
  cursor:pointer;user-select:none;font-size:12.5px;line-height:1.3;
}
.node:hover{background:var(--blue-light);}
.node.active{background:var(--blue-light);outline:1px solid var(--blue-border);}
.node .ico{width:16px;text-align:center;flex-shrink:0;}
.node .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.node .ext{font-size:10px;color:#fff;padding:1px 5px;border-radius:4px;background:var(--muted);flex-shrink:0;}
.node .sz{color:var(--muted);font-size:11px;flex-shrink:0;}
.node .arrow{color:var(--muted);flex-shrink:0;}
.node.file{cursor:grab;}
.node.file:active{cursor:grabbing;}
.node.assigned{opacity:.4;background:#f0f2f6;}
.node.assigned .tier-badge{display:inline-flex;}
.tier-badge{display:none;align-items:center;font-size:10px;font-weight:700;color:#fff;
  padding:1px 5px;border-radius:4px;flex-shrink:0;}
.tier-L1{background:var(--l1);} .tier-L2{background:var(--l2);}
/* 继承自上层文件夹的标记：空心弱化，与「自己身上打的」区分开 */
.tier-badge.inherited{background:transparent!important;border:1px dashed currentColor;font-weight:600;}
.tier-badge.tier-L1.inherited{color:var(--l1);} .tier-badge.tier-L2.inherited{color:var(--l2);}
.ct-badge.inherited{background:transparent;border:1px dashed #7a5cff;color:#7a5cff;font-weight:600;}
.node.selected{outline:2px solid var(--blue);background:#fff;}
.empty{color:var(--muted);padding:16px;text-align:center;font-size:12px;}

/* L 分级框：两层（L1 成品 / L2 非成品） */
.lboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:14px 16px;}
.lbox{border:2px dashed var(--blue-border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:150px;transition:all .15s;}
.lbox[data-tier="L1"]{border-color:#bfe3d0;} .lbox[data-tier="L2"]{border-color:#c3d4f5;}
.lbox.dragover{border-style:solid;background:var(--blue-light);transform:translateY(-2px);}
.lbox-head{padding:9px 12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);}
.lbox-title{font-weight:700;}
.lbox[data-tier="L1"] .lbox-title{color:var(--l1);} .lbox[data-tier="L2"] .lbox-title{color:var(--l2);}
.lbox-count{background:var(--line);color:var(--ink);border-radius:20px;padding:1px 9px;font-size:11px;font-weight:700;}
.lbox-body{padding:8px;overflow-y:auto;flex:1;max-height:220px;display:flex;flex-direction:column;gap:5px;}
.dropped{display:flex;align-items:center;gap:6px;background:#f7f9fc;border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:12px;}
.dropped .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dropped .rm{color:var(--muted);cursor:pointer;font-weight:700;padding:0 3px;}
.dropped .rm:hover{color:var(--l4);}

/* 内容类型 */
.selected-file{padding:8px 16px;color:var(--muted);font-size:12px;}
.selected-file b{color:var(--blue);}
.content-types{padding:0 16px 16px;display:flex;flex-wrap:wrap;gap:8px;}
.content-types .chip{padding:5px 14px;}

/* ============ 顶部配置后台入口 ============ */
.admin-link{
  margin-left:6px;color:var(--blue);text-decoration:none;font-size:13px;
  border:1px solid var(--blue-border);border-radius:7px;padding:6px 12px;white-space:nowrap;
}
.admin-link:hover{background:var(--blue-light);}

/* ============ 待治理清单 ============ */
.worklist{padding:12px 16px;display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;}
.wl-item{
  display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--line);
  border-radius:8px;cursor:pointer;transition:all .12s;
}
.wl-item:hover{border-color:var(--blue);background:var(--blue-light);}
.wl-item.active{border-color:var(--blue);background:var(--blue-light);box-shadow:inset 3px 0 0 var(--blue);}
.wl-status{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap;flex-shrink:0;}
.st-todo{background:#eef0f4;color:#8a94a6;}
.st-doing{background:#fff3e0;color:#d9822b;}
.st-done{background:#e6f5ee;color:#2e9e6b;}
.wl-brand{font-size:12px;color:#fff;background:var(--blue);border-radius:5px;padding:1px 8px;flex-shrink:0;}
.wl-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}

/* ============ 内容类型徽标 ============ */
.ct-badge{
  font-size:10px;color:#fff;background:#7a5cff;padding:1px 6px;border-radius:4px;flex-shrink:0;font-weight:600;
}
.ct-warn{font-size:10px;color:#fff;background:var(--l4);padding:1px 6px;border-radius:4px;flex-shrink:0;}

/* L1 未填内容类型高亮 */
.dropped.need-ct{border-color:var(--l4);background:#fdeeec;}
.dropped.selected{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);}
.dropped{cursor:pointer;}

/* L 框提示 */
.lbox-head{gap:6px;}
.lbox-tip{font-size:10px;color:var(--l1);border:1px solid #bfe3d0;border-radius:4px;padding:0 5px;margin-right:auto;}
.lbox-tip.alt{color:var(--l2);border-color:#c3d4f5;}

/* 选中文件条 */
.selected-file .req{color:var(--l4);}
.mini-tier{font-size:11px;font-weight:700;color:#fff;padding:1px 6px;border-radius:4px;}

/* ============ 配置后台 ============ */
.save-tip{color:var(--muted);font-size:12px;white-space:nowrap;}
.save-tip.saved{color:var(--l1);font-weight:600;}
.btn-reset{
  border:1px solid var(--blue-border);background:#fff;color:var(--l4);
  border-radius:7px;padding:6px 12px;cursor:pointer;font-size:12px;
}
.btn-reset:hover{background:#fdeeec;}
.progress .btn-reset{margin-left:10px;}

.admin-layout{display:flex;min-height:calc(100vh - 56px);}
.admin-nav{width:200px;background:#fff;border-right:1px solid var(--line);padding:12px 0;flex-shrink:0;}
.nav-item{padding:11px 20px;cursor:pointer;font-size:14px;color:var(--ink);border-left:3px solid transparent;}
.nav-item:hover{background:var(--blue-light);}
.nav-item.active{background:var(--blue-light);color:var(--blue);font-weight:600;border-left-color:var(--blue);}
.admin-main{flex:1;padding:20px;overflow-y:auto;}

.admin-card{background:#fff;border:1px solid var(--blue-border);border-radius:var(--radius);max-width:760px;}
.admin-card-head{padding:14px 18px;border-bottom:1px solid var(--line);font-weight:600;font-size:15px;display:flex;align-items:center;gap:10px;}
.admin-card-head .cnt{font-size:12px;font-weight:400;color:var(--muted);}
.rows{padding:14px 18px;display:flex;flex-direction:column;gap:8px;}

.edit-row{display:flex;gap:8px;align-items:center;}
.edit-row input{flex:1;padding:7px 10px;border:1px solid var(--blue-border);border-radius:7px;font-size:13px;}
.edit-row.sub input{background:#fafbfd;}
.add-row{padding:14px 18px;border-top:1px dashed var(--line);display:flex;gap:8px;align-items:center;}
.add-row.sub{padding:8px 0 2px;border-top:none;}
.add-row input{flex:1;padding:7px 10px;border:1px solid var(--blue-border);border-radius:7px;font-size:13px;}

.btn-add{background:var(--blue);color:#fff;border:none;border-radius:7px;padding:7px 14px;cursor:pointer;font-size:13px;white-space:nowrap;}
.btn-add:hover{opacity:.9;}
.btn-add.sm{padding:6px 10px;font-size:12px;}
.btn-del{background:#fff;color:var(--l4);border:1px solid var(--blue-border);border-radius:7px;padding:6px 12px;cursor:pointer;font-size:12px;white-space:nowrap;}
.btn-del:hover{background:#fdeeec;}
.multi-lbl{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);white-space:nowrap;}
.multi-lbl.req{color:#e5484d;}

/* 业务域 / 主标签 分块 */
.biz-block{margin:14px 18px;border:1px solid var(--line);border-radius:9px;overflow:hidden;}
.biz-l1-head{display:flex;gap:8px;align-items:center;padding:10px 12px;background:var(--blue-light);}
.biz-l1-head .l1name{flex:1;padding:7px 10px;border:1px solid var(--blue-border);border-radius:7px;font-size:13px;font-weight:600;background:#fff;}
.biz-l2-rows{padding:10px 12px;display:flex;flex-direction:column;gap:6px;}

/* ============ 登录遮罩 ============ */
.login-overlay{
  position:fixed;inset:0;z-index:1000;background:rgba(31,39,51,.55);
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);
}
.login-box{
  background:#fff;border-radius:14px;padding:32px 30px;width:320px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:10px;
}
.login-title{font-size:19px;font-weight:700;color:var(--blue);text-align:center;}
.login-sub{font-size:13px;color:var(--muted);text-align:center;margin-bottom:6px;}
.login-box input{padding:10px 12px;border:1px solid var(--blue-border);border-radius:8px;font-size:14px;}
.login-box input:focus{outline:none;border-color:var(--blue);}
.login-err{color:var(--l4);font-size:12px;min-height:16px;}
.login-box button{background:var(--blue);color:#fff;border:none;border-radius:8px;padding:11px;font-size:14px;cursor:pointer;font-weight:600;}
.login-box button:hover{opacity:.92;}

/* ============ 顶部"已治理 X 条"展开面板 ============ */
.done-wrap{position:relative;margin-left:auto;}
.done-toggle{
  display:flex;align-items:center;gap:6px;cursor:pointer;
  border:1px solid var(--blue-border);border-radius:8px;padding:6px 12px;color:var(--blue);font-weight:600;
  user-select:none;
}
.done-toggle:hover{background:var(--blue-light);}
.done-toggle .caret{font-size:10px;}
.done-panel{
  position:absolute;top:calc(100% + 6px);right:0;width:340px;max-height:380px;overflow-y:auto;
  background:#fff;border:1px solid var(--blue-border);border-radius:10px;box-shadow:0 8px 24px rgba(30,60,120,.15);
  z-index:30;padding:6px;
}
.done-head{padding:8px 10px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);margin-bottom:4px;}
.done-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;cursor:pointer;}
.done-item:hover{background:var(--blue-light);}
.di-title{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.di-time{font-size:11px;color:var(--muted);white-space:nowrap;}

/* ============ 底部确认栏 ============ */
.confirm-bar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:#fff;border:1px solid var(--blue-border);border-radius:var(--radius);padding:14px 18px;
}
.confirm-actions{display:flex;align-items:center;gap:16px;}
.atomic-name{display:flex;align-items:center;gap:8px;flex:1;max-width:520px;}
.atomic-name label{color:var(--muted);white-space:nowrap;font-size:13px;}
.atomic-name input{flex:1;padding:8px 11px;border:1px solid var(--blue-border);border-radius:8px;font-size:13px;}
.atomic-name input:focus{outline:none;border-color:var(--blue);}
.confirm-msg{font-size:13px;}
.confirm-msg.err{color:var(--l4);}
.confirm-msg.ok{color:var(--l1);}
.btn-confirm{
  background:var(--l1);color:#fff;border:none;border-radius:9px;padding:11px 22px;
  font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;
}
.btn-confirm:hover{opacity:.92;}

/* ============ 配置后台：素材总表 ============ */
.admin-card.wide{max-width:none;}
.filters{padding:14px 18px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;border-bottom:1px solid var(--line);}
.filters select,.filters input{padding:7px 10px;border:1px solid var(--blue-border);border-radius:7px;font-size:13px;}
.filters #fKw{min-width:200px;}
.flt-spacer{flex:1;}
.page-size{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px;}

.tbl-wrap{overflow-x:auto;}
.asset-tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.asset-tbl th,.asset-tbl td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;}
.asset-tbl th{background:var(--blue-light);color:var(--blue);font-weight:600;position:sticky;top:0;}
.asset-tbl tr:hover td{background:#fafbfd;}
.asset-tbl .td-title{max-width:220px;overflow:hidden;text-overflow:ellipsis;}
.asset-tbl .td-link a{color:var(--blue);text-decoration:none;}
.asset-tbl .td-time{color:var(--muted);}
.badge-done{font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;}
.badge-done.yes{background:#e6f5ee;color:var(--l1);}
.badge-done.no{background:#eef0f4;color:var(--muted);}

.pager{padding:14px 18px;display:flex;align-items:center;justify-content:center;gap:16px;}
.pg-btn{border:1px solid var(--blue-border);background:#fff;border-radius:7px;padding:7px 14px;cursor:pointer;font-size:13px;color:var(--ink);}
.pg-btn:hover:not(:disabled){background:var(--blue-light);border-color:var(--blue);}
.pg-btn:disabled{opacity:.4;cursor:not-allowed;}
.pg-info{font-size:13px;color:var(--muted);}

/* ============ L 框文件复选框（多选） ============ */
.dropped .ck{width:15px;height:15px;flex-shrink:0;cursor:pointer;accent-color:var(--blue);margin:0;}
.dropped.checked-row{border-color:var(--blue);background:var(--blue-light);}

/* ============ 暂时搁置按钮 ============ */
.btn-shelve{
  background:#fff;color:var(--l3);border:1px solid #f2d9bd;border-radius:9px;
  padding:11px 18px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;
}
.btn-shelve:hover{background:#fdf3e8;}
.confirm-msg.shelved{color:var(--l3);}

/* ============ 素材表：搁置状态 ============ */
.badge-done.shelved{background:#fdf3e8;color:var(--l3);}
/* 归档 / 删除：同属「治理完成」，但结论不同，配色与已完成区分 */
.badge-done.archived{background:#fdf6e8;color:#a4741d;}
.badge-done.deleted{background:#fdeeec;color:#c0392b;}
.res-file .rf-ico{flex-shrink:0;}

/* ============ 搁置二次确认弹窗 ============ */
.modal-mask{
  position:fixed;inset:0;z-index:900;background:rgba(31,39,51,.45);
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px);
}
.modal-mask[hidden]{display:none;}
.modal-box{
  background:#fff;border-radius:14px;padding:26px 28px;width:360px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);text-align:center;
}
.modal-title{font-size:17px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.modal-text{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:20px;}
.modal-actions{display:flex;gap:12px;justify-content:center;}
.btn-cancel{background:#fff;border:1px solid var(--blue-border);color:var(--ink);border-radius:9px;padding:9px 20px;cursor:pointer;font-size:14px;}
.btn-cancel:hover{background:var(--bg);}
.btn-shelve-ok{background:var(--l3);border:none;color:#fff;border-radius:9px;padding:9px 20px;cursor:pointer;font-size:14px;font-weight:600;}
.btn-shelve-ok:hover{opacity:.92;}

/* ============ 已治理列表：搁置标记 ============ */
.di-shelve{font-size:10px;font-weight:700;color:#fff;background:var(--l3);padding:1px 6px;border-radius:4px;flex-shrink:0;}

/* ============ 素材表行内编辑 ============ */
.cell-in{width:100%;min-width:70px;padding:5px 7px;border:1px solid var(--blue-border);border-radius:6px;font-size:12px;}
.cell-in:focus{outline:none;border-color:var(--blue);}
tr.editing td{background:#f4f8ff;}
.row-ops{display:flex;gap:6px;white-space:nowrap;}
.btn-edit{border:1px solid var(--blue-border);background:#fff;color:var(--blue);border-radius:6px;padding:4px 12px;cursor:pointer;font-size:12px;}
.btn-edit:hover{background:var(--blue-light);}
.btn-save{border:none;background:var(--blue);color:#fff;border-radius:6px;padding:4px 12px;cursor:pointer;font-size:12px;}
.btn-save:hover{opacity:.9;}
.btn-cancel-sm{border:1px solid var(--blue-border);background:#fff;color:var(--muted);border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px;}
.btn-cancel-sm:hover{background:var(--bg);}

/* ============ 整理结果弹窗 ============ */
.result-box{width:560px;max-width:92vw;max-height:82vh;text-align:left;display:flex;flex-direction:column;padding:0;}
.result-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);}
.result-head .modal-title{margin:0;font-size:15px;}
.result-body{padding:16px 20px;overflow-y:auto;}
.res-meta{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px;color:var(--ink);padding-bottom:12px;border-bottom:1px dashed var(--line);margin-bottom:12px;}
.res-meta b{color:var(--muted);font-weight:400;}
.res-name{color:var(--blue);font-weight:600;}
.res-empty{color:var(--muted);}
.res-empty-box{padding:24px;text-align:center;color:var(--muted);background:var(--bg);border-radius:8px;}
.res-sec{margin-bottom:14px;}
.res-sec-h{font-size:12px;font-weight:700;color:var(--blue);margin-bottom:6px;}
.res-sec-b{font-size:13px;}
.res-tag-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:5px;}
.res-dim{color:var(--muted);font-size:12px;min-width:96px;}
.res-chip{background:var(--blue-light);color:var(--blue);border-radius:20px;padding:2px 10px;font-size:12px;}
.res-tier{margin-bottom:10px;}
.res-tier-h{font-size:12px;font-weight:600;margin-bottom:5px;display:flex;align-items:center;gap:6px;}
.res-file{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#f7f9fc;border:1px solid var(--line);border-radius:6px;margin-bottom:4px;font-size:12.5px;}
.rf-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ============ 网盘节点删除标记 ============ */
.node .del-btn{
  flex-shrink:0; cursor:pointer; font-size:13px; line-height:1;
  color:var(--muted); opacity:.7; padding:3px 5px; margin-left:2px; border-radius:5px;
  border:1px solid transparent; transition:all .12s;
}
.node:hover .del-btn{ opacity:1; border-color:var(--line); }
.node .del-btn:hover{ color:var(--l4); background:#fdeeec; border-color:#f2c9c3; }
.node .del-btn.on{ opacity:1; color:#fff; background:var(--l4); border-color:var(--l4); }
.node .del-btn.disabled{ opacity:.25; cursor:not-allowed; }
/* 已标记删除的行：置灰 + 删除线 + 左侧红条 */
.node.del-marked{ opacity:.6; background:#fdf3f3; box-shadow:inset 3px 0 0 var(--l4); }
.node.del-marked .nm{ text-decoration:line-through; text-decoration-color:var(--l4); color:var(--l4); }
.node.del-marked .ico{ filter:grayscale(1); }

/* 弹窗内删除清单 */
.del-section{ margin:12px 0 4px; text-align:left; }
.del-section-h{ font-size:12.5px; color:var(--ink); margin-bottom:8px; }
.del-list{
  max-height:200px; overflow-y:auto; text-align:left; border:1px solid var(--line);
  border-radius:8px; padding:6px; background:#fbfbfd; margin:8px 0 4px;
}
.del-item{ display:flex; align-items:center; gap:8px; padding:5px 8px; font-size:12.5px; border-bottom:1px solid var(--line); }
.del-item:last-child{ border-bottom:none; }
.del-item .ico{ flex-shrink:0; }
.del-item .dn{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.del-item .dt{ flex-shrink:0; font-size:10px; color:#fff; background:var(--l4); border-radius:4px; padding:1px 6px; }

/* ============ L1 需OCR入库标记 ============ */
.ocr-btn{
  flex-shrink:0; cursor:pointer; font-size:10px; padding:1px 7px; border-radius:10px;
  border:1px solid var(--blue-border); color:var(--muted); background:#fff; white-space:nowrap; user-select:none;
}
.ocr-btn.on{ background:#2e9e6b; color:#fff; border-color:#2e9e6b; }
.ocr-btn.on:hover{ background:#278a5c; }
.ocr-btn.off{ color:var(--l4); border-color:#f2c9c3; background:#fff; }
.ocr-btn.off:hover{ background:var(--l4); color:#fff; border-color:var(--l4); }
.ocr-tag{ font-size:10px; color:#fff; background:#2e9e6b; border-radius:4px; padding:1px 6px; flex-shrink:0; }

/* ============ ② 品牌（只读） ============ */
.brand-fixed{
  display:inline-block; padding:5px 14px; border-radius:7px;
  background:var(--blue); color:#fff; font-weight:600; font-size:13px;
  min-width:52px; text-align:center; cursor:default;
}

/* ============ 品牌相关标签维度：下拉 + 已选 ============ */
.ptag.brand-dim{ align-items:flex-start; }
.ptag.brand-dim .dim-body{ flex:1; display:flex; flex-direction:column; gap:5px; min-width:0; }
.tag-select{ max-width:100%; font-size:12.5px; padding:5px 26px 5px 9px; }
.tag-select:disabled{ opacity:.55; cursor:not-allowed; }
.sel-chips{ display:flex; flex-wrap:wrap; gap:5px; }
.sel-chip{
  display:inline-flex; align-items:center; gap:5px;
  background:var(--blue); color:#fff; border-radius:20px; padding:3px 6px 3px 11px; font-size:12px;
}
.sel-chip .x{ cursor:pointer; opacity:.75; font-size:11px; padding:0 3px; }
.sel-chip .x:hover{ opacity:1; }

/* ============ 配置后台：分品牌选项分组 ============ */
.brand-group{ border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-bottom:8px; background:#fafbfd; }
.brand-group-h{ font-weight:600; font-size:12.5px; color:var(--blue); margin-bottom:6px; display:flex; align-items:center; gap:8px; }
.brand-group-h .cnt{ font-weight:400; color:var(--muted); font-size:11px; }
.scoped-tag{ font-size:10px; color:#fff; background:var(--l3); border-radius:4px; padding:2px 7px; white-space:nowrap; }

/* ============ L 分级：右上角悬停提示 ============ */
.lbox-head{position:relative;}
.lb-help{
  width:16px;height:16px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--blue-border); border-radius:50%;
  font-size:11px; font-weight:700; color:var(--blue); background:#fff;
  cursor:help; user-select:none;
}
.lb-help:hover{ background:var(--blue); color:#fff; border-color:var(--blue); }
.lb-help::after{
  content:attr(data-tip);
  position:absolute; top:calc(100% + 8px); right:0; z-index:60;
  width:290px; padding:9px 11px;
  background:#1f2733; color:#fff; border-radius:8px;
  font-size:11.5px; font-weight:400; line-height:1.65; white-space:pre-line;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
  opacity:0; visibility:hidden; transition:opacity .15s;
  pointer-events:none; text-align:left;
}
.lb-help:hover::after{ opacity:1; visibility:visible; }

/* ============ 复审提示条 ============ */
.audit-banner{
  background:#fff7e6; border:1px solid #f2d9bd; color:#8a5a1a;
  border-radius:var(--radius); padding:11px 16px; font-size:13px;
}
.audit-banner[hidden]{ display:none; }
.audit-banner b{ color:var(--l3); }

/* ============ 配置后台：抽查配置 ============ */
.audit-form{ padding:16px 18px; display:flex; flex-direction:column; gap:14px; max-width:640px; }
.audit-row{ display:flex; align-items:center; gap:12px; }
.audit-row label{ min-width:230px; color:var(--ink); font-size:13px; }
.audit-row input[type=number]{ width:110px; padding:7px 10px; border:1px solid var(--blue-border); border-radius:7px; font-size:13px; }
.audit-row .unit{ color:var(--muted); font-size:12px; }
.audit-hint{ color:var(--muted); font-size:12px; line-height:1.7; background:var(--bg); padding:10px 12px; border-radius:8px; }
.dev-badge{ font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px; }
.dev-ok{ background:#e6f5ee; color:var(--l1); }
.dev-bad{ background:#fdeeec; color:var(--l4); }
.round-tag{ font-size:10px; color:#fff; background:var(--l3); border-radius:4px; padding:1px 6px; }

/* ============ 框选（矩形多选） ============ */
.col-body{ position:relative; }
.rubber{
  position:absolute; z-index:5; pointer-events:none;
  border:1px solid var(--blue); background:rgba(59,111,224,.12); border-radius:3px;
}
.node.multi-sel{ background:var(--blue-light); outline:2px solid var(--blue); }
.sel-count{
  padding:6px 16px; font-size:12px; color:var(--blue);
  background:var(--blue-light); border-bottom:1px solid var(--line);
}
.sel-count[hidden]{ display:none; }

/* 末栏（第五栏）文件夹标识：已达展示层级上限，不再下钻，但仍可整体拖拽归级 */
.dir-badge{
  flex-shrink:0; font-size:10px; color:#fff; background:var(--muted);
  border-radius:4px; padding:1px 6px; white-space:nowrap;
}
.node.folder:hover .dir-badge{ background:var(--blue); }

/* ============ L 框中的「文件夹整体」单元 ============ */
.dropped.dir-unit{ background:#f4f8ff; border-color:var(--blue-border); }
.dir-unit-badge{
  flex-shrink:0; font-size:10px; color:#fff; background:var(--blue);
  border-radius:4px; padding:1px 6px; white-space:nowrap;
}

/* ============ 顶部：重置本条 ============ */
.btn-reset-one{
  margin-left:auto; white-space:nowrap; cursor:pointer;
  border:1px solid #f2d9bd; background:#fff; color:var(--l3);
  border-radius:8px; padding:6px 12px; font-size:13px; font-weight:600;
}
.btn-reset-one:hover{ background:#fdf3e8; border-color:var(--l3); }
.topbar .btn-reset-one + .done-wrap{ margin-left:12px; }
.btn-reset-ok{
  background:var(--l3); border:none; color:#fff; border-radius:9px;
  padding:9px 20px; cursor:pointer; font-size:14px; font-weight:600;
}
.btn-reset-ok:hover{ opacity:.92; }

/* ============ 顶部：demo 示例入口 ============ */
.demo-link{
  margin-left:6px; white-space:nowrap; text-decoration:none;
  border:1px solid #f2d9bd; border-radius:7px; padding:6px 12px;
  color:var(--l3); background:#fff; font-size:13px; font-weight:600;
}
.demo-link:hover{ background:#fdf3e8; border-color:var(--l3); }

/* ============================================================
   2026-08-05 治理模型调整
   版本状态置顶（含归档/删除处置）· 五栏目录 · L 分层两层 · 继承标记
   ============================================================ */

/* ---- 版本状态：置顶一行，与下方品牌/业务域用虚线分隔 ---- */
.version-row{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding-bottom:12px;border-bottom:1px dashed var(--line);
}
.version-row .dim-label{padding-top:0;}
.version-chips{gap:6px;}
/* 处置类选项（归档/删除）：与普通版本状态视觉分开，并在左侧加一道竖线 */
.version-chips .chip.disp{position:relative;font-weight:600;}
.version-chips .chip.disp-archived{border-color:#e3c89a;color:#a4741d;}
.version-chips .chip.disp-archived:hover{border-color:#c99a3c;background:#fdf6e8;}
.version-chips .chip.disp-archived.on{background:#c99a3c;border-color:#c99a3c;color:#fff;}
.version-chips .chip.disp-deleted{border-color:#eebbb4;color:#c0392b;}
.version-chips .chip.disp-deleted:hover{border-color:#c0392b;background:#fdeeec;}
.version-chips .chip.disp-deleted.on{background:#c0392b;border-color:#c0392b;color:#fff;}
/* 第一个处置选项前加分隔线，把「状态」和「处置」在视觉上断开 */
.version-chips .chip.disp:first-of-type{margin-left:10px;}
.version-chips .chip.disp:first-of-type::before{
  content:"";position:absolute;left:-11px;top:2px;bottom:2px;width:1px;background:var(--line);
}
.version-hint{font-size:11px;color:var(--muted);margin-left:auto;}

/* ---- 已治理列表：处置结论徽标 ---- */
.di-archived,.di-deleted{
  font-size:10px;font-weight:700;color:#fff;padding:1px 6px;border-radius:4px;flex-shrink:0;
}
.di-archived{background:#c99a3c;}
.di-deleted{background:#c0392b;}

/* ---- 五栏后单栏变窄：行内元素收紧，避免文件名被挤没 ---- */
.miller-col{min-width:0;}
.miller .node{gap:5px;padding:5px 6px;font-size:12px;}
.miller .node .nm{min-width:0;}
.miller .node .ext{font-size:9px;padding:1px 4px;}
.miller .node .sz{font-size:10px;}
.miller .ct-badge,.miller .tier-badge{font-size:9px;padding:1px 4px;}
.miller .dir-badge{font-size:9px;}

/* ---- 选中项说明中的文件夹提示 ---- */
.sel-dir-note{font-size:11px;color:#a4741d;background:#fdf6e8;border-radius:4px;padding:1px 6px;}

/* ---- 单栏条目超出渲染上限时的提示 ---- */
.col-overflow{
  margin:6px 4px 2px;padding:8px 10px;border-radius:6px;
  background:#fff8e6;border:1px dashed #e3c89a;color:#8a6420;
  font-size:11px;line-height:1.6;
}
.col-overflow b{color:#a4741d;}

/* ============ 素材标题搜索（顶部，治理人右侧） ============ */
.mat-search{position:relative;margin-left:10px;}
.mat-search input{
  width:230px;padding:6px 10px;font-size:13px;
  border:1px solid var(--blue-border);border-radius:7px;background:#fff;color:var(--ink);
  outline:none;transition:border-color .12s, box-shadow .12s;
}
.mat-search input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(47,109,215,.12);}
.mat-search input::-webkit-search-cancel-button{cursor:pointer;}
.ms-panel{
  position:absolute;top:calc(100% + 6px);left:0;z-index:60;
  width:440px;max-height:400px;overflow-y:auto;
  background:#fff;border:1px solid var(--line);border-radius:10px;
  box-shadow:0 8px 24px rgba(30,60,120,.16);
}
.ms-panel[hidden]{display:none;}
.ms-head{
  padding:7px 12px;font-size:11px;color:var(--muted);
  background:var(--blue-light);border-bottom:1px solid var(--line);
  position:sticky;top:0;
}
.ms-item{
  display:flex;align-items:center;gap:8px;padding:8px 12px;
  cursor:pointer;border-bottom:1px solid #f2f4f8;
}
.ms-item:last-child{border-bottom:none;}
.ms-item:hover{background:var(--blue-light);}
.ms-title{
  flex:1;min-width:0;font-size:13px;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ms-item:hover .ms-title{color:var(--blue);font-weight:600;}
.ms-meta{font-size:11px;color:var(--muted);flex-shrink:0;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ms-empty{padding:16px 12px;text-align:center;font-size:12px;color:var(--muted);line-height:1.8;}
.ms-empty span{font-size:11px;color:#a8b0be;}

/* ---- 业务域悬停说明：tooltip 靠左展开，避免贴着卡片右边被裁 ---- */
.tag-dim{position:relative;}
.lb-help.side::after{ right:auto; left:0; width:330px; }
/* 定义正文与「编号 名称」之间已用空行分隔，保留换行渲染 */
.lb-help.side{ margin-left:2px; }

/* ============================================================
   2026-08-06 上传时间 / 原子命名豁免 / 素材反馈
   ============================================================ */

/* ---- ① 信息栏：上传到网盘的时间，红色加粗 ---- */
.up-time{ color:#c0392b; font-weight:700; }

/* ---- 原子命名下方的状态提示 ---- */
.atomic-hint{ margin-top:4px; font-size:11px; color:var(--muted); line-height:1.5; }
.atomic-hint.ok{ color:var(--l1); font-weight:600; }

/* ---- 顶部反馈按钮 ---- */
.btn-feedback{
  margin-left:auto; white-space:nowrap; cursor:pointer;
  border:1px solid #c3d4f5; background:#fff; color:var(--blue);
  border-radius:8px; padding:6px 12px; font-size:13px; font-weight:600;
}
.btn-feedback:hover{ background:var(--blue-light); border-color:var(--blue); }
/* 反馈按钮已占用 margin-left:auto，重置按钮改为普通间距 */
.btn-feedback + .btn-reset-one{ margin-left:8px; }

/* ---- 反馈弹窗 ---- */
.fb-meta{
  display:flex; flex-direction:column; gap:6px;
  background:#f7f9fc; border:1px solid var(--line); border-radius:8px;
  padding:9px 12px; margin-bottom:12px; font-size:12px;
}
.fb-meta > div{ display:flex; gap:10px; align-items:baseline; }
.fb-k{ color:var(--muted); min-width:44px; flex-shrink:0; }
.fb-v{ color:var(--ink); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fb-textarea{
  width:100%; box-sizing:border-box; padding:9px 11px;
  border:1px solid var(--blue-border); border-radius:8px;
  font-size:13px; line-height:1.6; color:var(--ink); resize:vertical;
  font-family:inherit; outline:none;
}
.fb-textarea:focus{ border-color:var(--blue); box-shadow:0 0 0 2px rgba(47,109,215,.12); }
.fb-tip{ margin-top:8px; font-size:11px; color:var(--muted); }
.fb-msg{ margin-right:auto; font-size:12px; }
.fb-msg.err{ color:#c0392b; font-weight:600; }

/* ---- 配置后台：反馈处理列表 ---- */
.fb-content-cell{ max-width:420px; white-space:pre-wrap; word-break:break-word; line-height:1.6; }
.fb-mat-cell{ max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fb-unresolved-badge{
  margin-left:8px; font-size:11px; font-weight:700; color:#fff;
  background:#c0392b; border-radius:20px; padding:1px 8px;
}
.fb-resolve-sel{ font-size:12px; padding:3px 6px; border:1px solid var(--blue-border); border-radius:6px; }
tr.fb-done{ background:#fafbfc; color:var(--muted); }
tr.fb-done .fb-content-cell{ color:var(--muted); }

/* ============================================================
   2026-08-07 L 框全选 · 物料类型多选 · 可配置悬停提示
   ============================================================ */

/* ---- L 框全选条 ---- */
.lbox-selall{
  padding:5px 12px; border-bottom:1px solid var(--line);
  background:#fafbfd; font-size:11.5px; color:var(--muted);
}
.lbox-selall[hidden]{ display:none; }
.lbox-selall label{ display:inline-flex; align-items:center; gap:5px; cursor:pointer; user-select:none; }
.lbox-selall input{ cursor:pointer; }
.lbox-selall:hover{ background:var(--blue-light); color:var(--blue); }
.selall-n{
  background:var(--line); color:var(--ink); border-radius:20px;
  padding:0 7px; font-size:10px; font-weight:700;
}

/* ---- 物料类型：多选的三态（未选 / 部分选 / 全选） ---- */
.content-types .chip{ position:relative; }
.content-types .chip.partial{
  background:var(--blue-light); border-color:var(--blue); color:var(--blue); font-weight:600;
}
.content-types .chip.partial::after{
  content:"部分"; position:absolute; top:-7px; right:-6px;
  font-size:9px; font-weight:700; color:#fff; background:var(--blue);
  border-radius:8px; padding:0 4px; line-height:1.5;
}
/* chip 内的问号：默认不抢位，hover 时提示浮出 */
.chip-help{ width:13px; height:13px; font-size:9px; margin-left:5px; vertical-align:middle; }
.content-types .chip.on .chip-help{ border-color:#fff; color:#fff; background:transparent; }
.chip-help::after{ width:280px; left:auto; right:0; }

/* L 框头的角标与问号在无配置时隐藏 */
.lbox-tip[hidden], .lb-help[hidden]{ display:none; }

/* ---- 配置后台：悬停提示列 ---- */
.tip-input{
  flex:2 1 0; min-width:0; padding:5px 8px; font-size:12px;
  border:1px solid var(--line); border-radius:6px; color:var(--muted);
  font-family:inherit;
}
.tip-input:focus{ border-color:var(--blue); color:var(--ink); outline:none; }
.tip-input::placeholder{ color:#c2c8d2; }
.edit-row .tip-input, .biz-l1-head .tip-input{ margin-left:6px; }
.tip-col-hint{
  font-size:11px; color:var(--muted); padding:4px 0 8px;
}
/* L 分层配置页 */
.ltier-block{
  border:1px solid var(--line); border-radius:var(--radius);
  padding:12px 14px; margin-bottom:12px;
}
.ltier-h{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.ltier-tag{
  font-size:11px; font-weight:700; color:#fff; border-radius:4px; padding:2px 8px;
}
.ltier-tag.L1{ background:var(--l1); } .ltier-tag.L2{ background:var(--l2); }
.ltier-row{ display:flex; align-items:flex-start; gap:10px; margin-bottom:8px; }
.ltier-row > label{ min-width:74px; font-size:12px; color:var(--muted); padding-top:6px; }
.ltier-row input, .ltier-row textarea{
  flex:1; padding:6px 9px; font-size:13px; border:1px solid var(--line);
  border-radius:6px; font-family:inherit; color:var(--ink);
}
.ltier-row textarea{ min-height:96px; line-height:1.7; resize:vertical; }
.ltier-row input:focus, .ltier-row textarea:focus{ border-color:var(--blue); outline:none; }
