/* 浩瀚电商工具箱 - 通用工具组件样式
   规则：所有选择器限定在 .pp-app 内，不触碰 body/html/全局标签，避免污染主题模板。
   可被任意主题页面安全引用。 */

.pp-app{
  --pp-bg:#070b14;--pp-panel:#0d1526;--pp-ink:#e8eefc;--pp-ink2:#8fa3c4;--pp-ink3:#5c7297;
  --pp-line:rgba(56,189,248,.14);--pp-line2:rgba(56,189,248,.28);
  --pp-cyan:#22d3ee;--pp-purple:#a78bfa;--pp-up:#ff4d5e;--pp-down:#22c55e;--pp-amber:#f5a524;
  position:relative;isolation:isolate;container-type:inline-size;
  background:var(--pp-bg);
  background-image:
    radial-gradient(circle at 12% -6%,rgba(34,211,238,.10),transparent 42%),
    radial-gradient(circle at 88% 0%,rgba(167,139,250,.08),transparent 40%);
  color:var(--pp-ink);
  border:1px solid var(--pp-line);border-radius:14px;
  padding:22px 20px 26px;margin:22px 0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;
  text-align:left;
}
.pp-app *,.pp-app *::before,.pp-app *::after{box-sizing:border-box}
.pp-app p{margin:0}
.pp-app a{color:var(--pp-cyan);text-decoration:none}
.pp-app .pp-mono{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}

.pp-app .pp-head{padding-bottom:16px;border-bottom:1px solid var(--pp-line);margin-bottom:18px}
.pp-app .pp-brand{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--pp-ink2);letter-spacing:.5px}
.pp-app .pp-dot{width:6px;height:6px;border-radius:50%;background:var(--pp-cyan);box-shadow:0 0 9px var(--pp-cyan)}
.pp-app h2.pp-title{font-size:21px;font-weight:600;letter-spacing:-.3px;margin:12px 0 6px;line-height:1.35;color:var(--pp-ink)}
.pp-app h2.pp-title em{font-style:normal;color:var(--pp-cyan)}
.pp-app .pp-sub{font-size:13px;color:var(--pp-ink2);max-width:660px}
.pp-app .pp-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.pp-app .pp-tag{font-size:11px;padding:3px 9px;border:1px solid var(--pp-line);border-radius:20px;color:var(--pp-ink2);background:rgba(255,255,255,.02)}
.pp-app .pp-tag b{color:var(--pp-cyan);font-weight:500}

.pp-app .pp-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;align-items:start}
.pp-app .pp-card{background:linear-gradient(180deg,var(--pp-panel) 0%,#0b1222 100%);border:1px solid var(--pp-line);border-radius:10px;position:relative;overflow:hidden}
.pp-app .pp-card::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(34,211,238,.05),transparent 90px)}
.pp-app .pp-ch{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 15px;border-bottom:1px solid var(--pp-line);position:relative}
.pp-app .pp-ch h3{font-size:12.5px;font-weight:600;letter-spacing:.4px;margin:0;color:var(--pp-ink)}
.pp-app .pp-ch span{font-size:11px;color:var(--pp-ink3)}
.pp-app .pp-cb{padding:13px 15px 17px}

.pp-app .pp-grp{margin-bottom:15px}
.pp-app .pp-grp-t{font-size:10.5px;color:var(--pp-ink3);letter-spacing:1.1px;margin-bottom:9px;display:flex;align-items:center;gap:8px}
.pp-app .pp-grp-t::after{content:"";flex:1;height:1px;background:var(--pp-line)}
.pp-app .pp-field{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.pp-app .pp-field label{font-size:12.5px;color:var(--pp-ink2);white-space:nowrap}
.pp-app .pp-field .pp-hint{font-size:10.5px;color:var(--pp-ink3)}
.pp-app .pp-ig{display:flex;align-items:center;background:#0a1424;border:1px solid #1b2b45;border-radius:7px;padding:0 9px;height:33px;transition:border-color .15s,box-shadow .15s}
.pp-app .pp-ig:focus-within{border-color:var(--pp-cyan);box-shadow:0 0 0 3px rgba(34,211,238,.10)}
.pp-app .pp-ig i{font-style:normal;color:var(--pp-ink3);font-size:12px;margin:0 3px}
.pp-app .pp-ig input{background:none;border:0;outline:0;color:var(--pp-ink);width:72px;text-align:right;font-size:13.5px;
  font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;-moz-appearance:textfield;padding:0}
.pp-app .pp-ig input::-webkit-outer-spin-button,.pp-app .pp-ig input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.pp-app .pp-kpi{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr;gap:10px;padding:15px}
.pp-app .pp-k{background:#0a1424;border:1px solid var(--pp-line);border-radius:9px;padding:12px 13px}
.pp-app .pp-k .pp-lab{font-size:10.5px;color:var(--pp-ink3);margin-bottom:5px}
.pp-app .pp-k .pp-val{font-size:25px;font-weight:600;letter-spacing:-.5px;line-height:1.1;
  font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
.pp-app .pp-k .pp-val.pp-sm{font-size:18px}
.pp-app .pp-k .pp-foot{font-size:10.5px;color:var(--pp-ink3);margin-top:5px}
.pp-app .pp-k.pp-hero{background:linear-gradient(135deg,rgba(34,211,238,.10),rgba(167,139,250,.06));border-color:var(--pp-line2)}
.pp-app .pp-k.pp-hero .pp-val{font-size:32px}
.pp-app .pp-up{color:var(--pp-up)}.pp-app .pp-down{color:var(--pp-down)}.pp-app .pp-neu{color:var(--pp-ink2)}
.pp-app .pp-badge{display:inline-block;font-size:10px;padding:1px 7px;border-radius:20px;margin-right:4px}
.pp-app .pp-badge.pp-ok{background:rgba(34,197,94,.14);color:#4ade80;border:1px solid rgba(34,197,94,.3)}
.pp-app .pp-badge.pp-bad{background:rgba(255,77,94,.14);color:#ff7b88;border:1px solid rgba(255,77,94,.3)}

.pp-app .pp-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 15px 12px}
.pp-app .pp-chip{font-size:12px;padding:5px 12px;border-radius:20px;border:1px solid #1b2b45;color:var(--pp-ink2);
  background:#0a1424;cursor:pointer;transition:all .15s;user-select:none;line-height:1.3}
.pp-app .pp-chip:hover{border-color:var(--pp-line2);color:var(--pp-ink)}
.pp-app .pp-chip.pp-on{background:rgba(34,211,238,.13);border-color:var(--pp-cyan);color:var(--pp-cyan)}

.pp-app .pp-stack{display:flex;height:32px;border-radius:7px;overflow:hidden;background:#0a1424;border:1px solid var(--pp-line)}
.pp-app .pp-seg{position:relative;transition:width .35s cubic-bezier(.4,0,.2,1)}
.pp-app .pp-seg span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:rgba(255,255,255,.92)}
.pp-app .pp-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:10px}
.pp-app .pp-lg{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--pp-ink2)}
.pp-app .pp-lg i{width:9px;height:9px;border-radius:2px;display:inline-block}
.pp-app .pp-lg b{color:var(--pp-ink);font-weight:500;font-family:ui-monospace,Consolas,monospace}

.pp-app .pp-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pp-app table{width:100%;border-collapse:collapse;font-size:12.5px;margin:0}
.pp-app th{font-size:10.5px;color:var(--pp-ink3);font-weight:400;text-align:right;padding:7px 7px;border-bottom:1px solid var(--pp-line);white-space:nowrap}
.pp-app th:first-child{text-align:left}
.pp-app td{padding:6px 7px;border-bottom:1px solid rgba(56,189,248,.06);text-align:right;white-space:nowrap}
.pp-app td:first-child{text-align:left;color:var(--pp-ink)}
.pp-app tr.pp-sel td{background:rgba(34,211,238,.055)}
.pp-app tbody tr{cursor:pointer}
.pp-app tbody tr:hover td{background:rgba(255,255,255,.02)}
.pp-app .pp-tin{width:62px;background:#0a1424;border:1px solid #1b2b45;border-radius:6px;color:var(--pp-ink);
  text-align:right;padding:3px 6px;font-size:12.5px;font-family:ui-monospace,Consolas,monospace;outline:0}
.pp-app .pp-tin:focus{border-color:var(--pp-cyan)}

.pp-app .pp-lock{position:relative}
.pp-app .pp-lock>.pp-locked{filter:blur(5px);opacity:.45;pointer-events:none;user-select:none}
.pp-app .pp-lock-mask{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;text-align:center;padding:10px;background:linear-gradient(180deg,rgba(7,11,20,.35),rgba(7,11,20,.82))}
.pp-app .pp-lock-mask p{font-size:12px;color:var(--pp-ink2)}
.pp-app .pp-lock-mask b{color:var(--pp-cyan);font-weight:500}

.pp-app .pp-btn{display:inline-block;padding:9px 18px;border-radius:8px;font-size:13px;cursor:pointer;border:0;
  background:linear-gradient(135deg,#22d3ee,#3b82f6);color:#04121c;font-weight:600;white-space:nowrap;
  font-family:inherit;line-height:1.4;text-align:center}
.pp-app .pp-btn:hover{filter:brightness(1.08)}
.pp-app .pp-btn.pp-ghost{background:none;border:1px solid var(--pp-line2);color:var(--pp-cyan);font-weight:400}

.pp-app .pp-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:16px;padding:13px 16px;border-radius:10px;border:1px solid var(--pp-line2);
  background:linear-gradient(135deg,rgba(167,139,250,.10),rgba(34,211,238,.06))}
.pp-app .pp-bar-txt{font-size:12.5px;color:var(--pp-ink2)}
.pp-app .pp-bar-txt b{color:var(--pp-ink);font-weight:500;display:block;font-size:13.5px;margin-bottom:2px}

.pp-app .pp-faq{margin-top:22px;border-top:1px solid var(--pp-line);padding-top:6px}
.pp-app .pp-faq details{border-bottom:1px solid var(--pp-line);padding:11px 0}
.pp-app .pp-faq summary{cursor:pointer;font-size:13.5px;color:var(--pp-ink);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
.pp-app .pp-faq summary::-webkit-details-marker{display:none}
.pp-app .pp-faq summary::after{content:"+";color:var(--pp-cyan);font-size:16px;flex:none}
.pp-app .pp-faq details[open] summary::after{content:"-"}
.pp-app .pp-faq p{font-size:12.5px;color:var(--pp-ink2);margin-top:7px;padding-right:16px}

.pp-app .pp-foot-note{margin-top:20px;padding-top:14px;border-top:1px solid var(--pp-line);font-size:11px;color:var(--pp-ink3);line-height:1.9}

.pp-app .pp-toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%,18px);background:#12203a;
  border:1px solid var(--pp-line2);color:var(--pp-ink);padding:10px 18px;border-radius:9px;font-size:13px;
  opacity:0;pointer-events:none;transition:all .25s;z-index:99999;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.pp-app .pp-toast.pp-on{opacity:1;transform:translate(-50%,0)}

.pp-app .pp-err{padding:16px;border:1px dashed rgba(255,77,94,.4);border-radius:9px;color:#ff7b88;font-size:13px;background:rgba(255,77,94,.05)}

/* 窄容器自适应：跟随工具自身宽度（主题内容区往往比视口窄） */
@container (max-width: 980px){
  .pp-app .pp-grid{grid-template-columns:1fr}
  .pp-app .pp-kpi{grid-template-columns:1fr 1fr}
  .pp-app .pp-k.pp-hero{grid-column:span 2}
  .pp-app .pp-k.pp-hero .pp-val{font-size:28px}
  .pp-app h2.pp-title{font-size:18px}
  .pp-app .pp-bar{flex-direction:column;align-items:flex-start}
}
@media(max-width:900px){
.pp-app{padding:16px 12px 20px;border-radius:10px}
.grid{grid-template-columns:1fr}
.pp-app .pp-grid{grid-template-columns:1fr}
.pp-app .pp-kpi{grid-template-columns:1fr 1fr}
.pp-app .pp-k.pp-hero{grid-column:span 2}
.pp-app .pp-k.pp-hero .pp-val{font-size:28px}
.pp-app h2.pp-title{font-size:18px}
.pp-app .pp-bar{flex-direction:column;align-items:flex-start}
.wrap{padding:0 12px 40px}
.tablewrap{overflow-x:auto}
.pro{flex-direction:column;align-items:flex-start}
}
