/* ===== v3.426：重复主题面板（样式） =====
   一律用主题变量，暗色 / 玻璃跟着走，不写死颜色。
   独立 panel，不碰页面原有的 .mpanel / #mask。 */

#tpWrap{position:fixed;inset:0;z-index:9993;display:none}
#tpWrap.on{display:block}

#tpMask{position:absolute;inset:0;background:rgba(16,24,40,.32);backdrop-filter:blur(1.5px)}
html[data-theme=dark] #tpMask{background:rgba(0,0,0,.55)}

#tpBox{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(1120px,calc(100vw - 48px));max-height:min(88vh,900px);
  display:flex;flex-direction:column;
  background:var(--panel,#fff);color:var(--tx,#21252b);
  border:1px solid var(--line,#eceef1);border-radius:16px;
  box-shadow:0 24px 64px rgba(16,24,40,.24),0 4px 12px rgba(16,24,40,.08);
  overflow:hidden;font-size:13px;line-height:1.5;
  animation:tpIn .16s ease-out;
}
@keyframes tpIn{from{opacity:0;transform:translate(-50%,-48%) scale(.985)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}

/* ---------- 头 ---------- */
#tpHead{padding:14px 18px 10px;border-bottom:1px solid var(--line,#eceef1);flex:0 0 auto}
#tpTitle{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
#tpTitle b{font-size:16px;font-weight:700;letter-spacing:.2px}
#tpTitle span{font-size:12px;color:var(--sub,#8a919c)}
#tpTitle .tp-err{color:var(--danger,#d9534f)}

#tpBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#tpBar input[type=search]{
  flex:1 1 200px;min-width:140px;height:30px;padding:0 10px;box-sizing:border-box;
  border:1px solid var(--line,#eceef1);border-radius:8px;
  background:var(--bg,#f7f8fa);color:var(--tx,#21252b);
  font-family:inherit;font-size:13px;outline:none;
}
#tpBar input[type=search]:focus{border-color:var(--acc,#3370ff)}
#tpBar select{
  height:30px;padding:0 6px;border:1px solid var(--line,#eceef1);border-radius:8px;
  background:var(--bg,#f7f8fa);color:var(--tx,#21252b);font-family:inherit;font-size:12px;outline:none;
}
#tpBar .tp-chk{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--sub,#8a919c);cursor:pointer;user-select:none}
#tpBar button{
  height:30px;padding:0 11px;border:1px solid var(--line,#eceef1);border-radius:8px;
  background:var(--bg,#f7f8fa);color:var(--tx,#21252b);
  font-family:inherit;font-size:12px;cursor:pointer;white-space:nowrap;
}
#tpBar button:hover{border-color:var(--acc,#3370ff);color:var(--acc,#3370ff)}
#tpBar button.pri{background:var(--acc,#3370ff);border-color:var(--acc,#3370ff);color:#fff}
#tpBar button.pri:hover{opacity:.92;color:#fff}
#tpBar button:disabled{opacity:.5;cursor:default}

/* ---------- 身 ---------- */
#tpBody{flex:1 1 auto;overflow:auto;overscroll-behavior:contain;padding:10px 14px 14px;background:var(--bg,#f7f8fa)}

.tp-empty{padding:56px 20px;text-align:center;color:var(--sub,#8a919c);font-size:13px}
.tp-empty b{display:block;font-size:15px;color:var(--tx,#21252b);margin-bottom:6px}

/* 组卡片 */
.tp-g{background:var(--panel,#fff);border:1px solid var(--line,#eceef1);border-radius:12px;margin-bottom:10px;overflow:hidden}
.tp-g.hit{box-shadow:0 0 0 2px color-mix(in srgb,var(--acc,#3370ff) 40%,transparent)}
.tp-gh{
  display:flex;align-items:center;gap:8px;padding:8px 12px;
  border-bottom:1px solid var(--line,#eceef1);
  background:color-mix(in srgb,var(--panel,#fff) 94%,var(--hov,#f2f3f5) 6%);
  flex-wrap:wrap;
}
.tp-bd{
  font-size:11px;font-weight:600;line-height:19px;padding:0 7px;border-radius:6px;white-space:nowrap;
}
.tp-bd.same{color:#c0392b;background:rgba(217,83,79,.12);border:1px solid rgba(217,83,79,.24)}
.tp-bd.near{color:#b07d00;background:rgba(245,179,1,.14);border:1px solid rgba(245,179,1,.30)}
html[data-theme=dark] .tp-bd.same{color:#ff8b84;background:rgba(217,83,79,.18)}
html[data-theme=dark] .tp-bd.near{color:#f5c451;background:rgba(245,179,1,.16)}

.tp-gc{font-size:12px;color:var(--tx,#21252b);font-weight:600}
.tp-gk{font-size:11px;color:var(--sub,#8a919c);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46%}
.tp-gh .sp{flex:1 1 auto}
.tp-mini{
  height:24px;padding:0 9px;border:1px solid var(--line,#eceef1);border-radius:7px;
  background:var(--panel,#fff);color:var(--sub,#8a919c);font-family:inherit;font-size:11px;cursor:pointer;
}
.tp-mini:hover{border-color:var(--acc,#3370ff);color:var(--acc,#3370ff)}
.tp-mini.pri{background:var(--acc,#3370ff);border-color:var(--acc,#3370ff);color:#fff}
.tp-mini.pri:hover{opacity:.92;color:#fff}
.tp-mini.danger:hover{border-color:var(--danger,#d9534f);color:var(--danger,#d9534f)}
.tp-mini:disabled{opacity:.45;cursor:default}

/* 条目行 */
.tp-it{
  display:flex;align-items:center;gap:9px;padding:7px 12px;
  border-bottom:1px solid color-mix(in srgb,var(--line,#eceef1) 62%,transparent);
  min-height:38px;box-sizing:border-box;
}
.tp-it:last-child{border-bottom:none}
.tp-it:hover{background:var(--hov,#f2f3f5)}
.tp-it.main{background:color-mix(in srgb,var(--acc,#3370ff) 5%,transparent)}
.tp-it.done{animation:tpDone 1.4s ease-out}
@keyframes tpDone{0%,35%{background:rgba(26,143,77,.14)}100%{background:transparent}}
.tp-it.bad{animation:tpBad 1.4s ease-out}
@keyframes tpBad{0%,35%{background:rgba(217,83,79,.14)}100%{background:transparent}}

.tp-idx{
  flex:0 0 auto;width:18px;height:18px;border-radius:5px;font-size:10px;font-weight:600;
  line-height:18px;text-align:center;color:var(--sub,#8a919c);background:var(--hov,#f2f3f5);
}
.tp-it.main .tp-idx{background:var(--acc,#3370ff);color:#fff}

.tp-nm{
  flex:1 1 auto;min-width:0;font-size:13px;font-weight:500;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.tp-nm em{font-style:normal;background:rgba(245,179,1,.28);border-radius:3px;padding:0 1px}

.tp-kids{
  flex:0 0 auto;font-size:11px;line-height:18px;padding:0 6px;border-radius:6px;
  color:var(--acc,#3370ff);background:color-mix(in srgb,var(--acc,#3370ff) 10%,transparent);
  white-space:nowrap;cursor:default;
}
.tp-kids.zero{color:var(--sub,#8a919c);background:var(--hov,#f2f3f5)}

.tp-doc{
  flex:0 1 auto;max-width:24%;min-width:0;font-size:11px;color:var(--sub,#8a919c);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding-left:8px;border-left:1px solid color-mix(in srgb,var(--line,#eceef1) 80%,transparent);
  cursor:pointer;
}
.tp-doc:hover{color:var(--acc,#3370ff)}
.tp-path{
  flex:0 1 auto;max-width:22%;min-width:0;font-size:11px;color:var(--sub,#8a919c);
  opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.tp-ops{flex:0 0 auto;display:flex;gap:3px;opacity:.35;transition:opacity .12s}
.tp-it:hover .tp-ops,.tp-it:focus-within .tp-ops{opacity:1}
@media (hover:none){.tp-ops{opacity:1}}
.tp-ops button{
  width:26px;height:26px;padding:0;border:1px solid transparent;border-radius:7px;
  background:transparent;color:var(--sub,#8a919c);cursor:pointer;font-size:13px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
}
.tp-ops button:hover{background:var(--panel,#fff);border-color:var(--line,#eceef1);color:var(--acc,#3370ff)}
.tp-ops button.danger:hover{color:var(--danger,#d9534f);border-color:rgba(217,83,79,.35)}

/* 行内改名 */
.tp-edit{
  flex:1 1 auto;min-width:0;height:26px;padding:0 8px;box-sizing:border-box;
  border:1px solid var(--acc,#3370ff);border-radius:7px;
  background:var(--panel,#fff);color:var(--tx,#21252b);font-family:inherit;font-size:13px;outline:none;
}

/* ---------- 脚 ---------- */
#tpFoot{
  flex:0 0 auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:9px 16px;border-top:1px solid var(--line,#eceef1);
  font-size:11px;color:var(--sub,#8a919c);
  background:color-mix(in srgb,var(--panel,#fff) 94%,var(--hov,#f2f3f5) 6%);
}
#tpFoot .tp-st{font-weight:500}
#tpFoot .tp-st.ok{color:#1a8f4d}
#tpFoot .tp-st.bad{color:var(--danger,#d9534f)}
#tpFoot .tp-st.busy{color:var(--acc,#3370ff)}
#tpFoot .sp{flex:1 1 auto}
#tpFoot .tp-note{opacity:.8;max-width:62%;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 扫描中的骨架条 */
#tpLoad{height:3px;background:linear-gradient(90deg,transparent,var(--acc,#3370ff),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:tpRun 1.1s linear infinite}
@keyframes tpRun{0%{background-position:-40% 0}100%{background-position:140% 0}}

/* 手机：铺满，操作按钮常显 */
@media (max-width:640px){
  #tpBox{width:100vw;max-height:100vh;height:100%;border-radius:0;top:0;left:0;transform:none;animation:none}
  #tpHead{padding:12px 12px 8px}
  #tpBar input[type=search]{flex:1 1 100%}
  .tp-doc,.tp-path{max-width:34%}
  .tp-nm{font-size:14px}
  #tpFoot .tp-note{display:none}
}
