:root{
  --s1:#2a78d6; --s2:#1baf7a; --s3:#eda100; --s4:#008300; --s5:#4a3aa7; --s6:#e34948;
  --good:#0ca30c; --warn:#fab219; --serious:#ec835a; --critical:#d03b3b;
  --surface:#ffffff; --plane:#f2f4f7;
  --ink1:#0b0b0b; --ink2:#52514e; --ink3:#898781;
  --grid:#e1e0d9; --axis:#c3c2b7; --line:rgba(15,30,51,.08);
  --sidebar:#0e1c30; --radius:12px;
  --shadow:0 1px 2px rgba(15,30,51,.04),0 6px 20px rgba(15,30,51,.06);
  font-size:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;background:var(--plane);color:var(--ink1);-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px}

/* ================= 登录 ================= */
#login{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(130deg,#0a1626 0%,#12305c 48%,#1c4e8f 100%);overflow:hidden}
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;animation:float 9s ease-in-out infinite}
.orb1{width:560px;height:560px;background:radial-gradient(circle,#2a78d6,transparent 70%);top:-180px;right:-120px}
.orb2{width:480px;height:480px;background:radial-gradient(circle,#1baf7a,transparent 70%);bottom:-200px;left:-140px;animation-delay:-4s}
.orb3{width:300px;height:300px;background:radial-gradient(circle,#4a3aa7,transparent 70%);top:40%;left:38%;animation-delay:-2s;opacity:.35}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-34px)}}
#login .grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:44px 44px}
.login-card{position:relative;z-index:2;width:960px;max-width:95vw;display:flex;border-radius:22px;overflow:hidden;
  box-shadow:0 40px 120px rgba(0,0,0,.5);animation:cardIn .6s ease}
@keyframes cardIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.login-left{flex:1.18;background:linear-gradient(165deg,rgba(19,41,74,.92),rgba(10,22,38,.96));
  color:#fff;padding:52px 48px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid rgba(255,255,255,.06)}
.login-left h1{font-size:31px;font-weight:700;letter-spacing:1.5px;margin-top:26px;line-height:1.4}
.login-left .en{color:#5f7ba3;font-size:12px;letter-spacing:3.5px;text-transform:uppercase;margin-top:8px}
.login-left .sub{color:#9fb6d8;margin-top:16px;line-height:1.95;font-size:13.5px}
.login-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}
.login-badges span{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.05);color:#cfdcf0;border-radius:99px;padding:4px 13px;font-size:12px}
.login-nums{display:flex;gap:34px;margin-top:30px}
.login-nums b{display:block;font-size:24px;font-weight:700;color:#fff}
.login-nums span{font-size:12px;color:#7690b5}
.login-foot{color:#5f7ba3;font-size:12px;line-height:1.9;margin-top:34px}
.login-right{flex:1;background:#fff;padding:46px 46px;display:flex;flex-direction:column;justify-content:center}
.login-right h2{font-size:21px;margin-bottom:5px}
.login-right .hint{color:var(--ink3);font-size:13px;margin-bottom:22px}
.acct-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}
.acct-chips button{border:1px solid #dcdbd5;background:#f8f8f6;border-radius:99px;padding:5px 13px;font-size:12px;color:var(--ink2)}
.acct-chips button:hover{border-color:var(--s1);color:var(--s1);background:#eef4fc}
.login-err{color:var(--critical);font-size:12.5px;min-height:18px;margin-top:8px}
.fld{margin-bottom:15px}
.fld label{display:block;font-size:13px;color:var(--ink2);margin-bottom:6px}
.fld input,.fld select,.fld textarea{width:100%;border:1px solid #d8d7d1;border-radius:9px;padding:0 12px;outline:none;background:#fff;transition:border .15s,box-shadow .15s}
.fld input,.fld select{height:41px}
.fld textarea{padding:9px 12px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--s1);box-shadow:0 0 0 3px rgba(42,120,214,.14)}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 18px;border:none;border-radius:9px;
  background:linear-gradient(135deg,#2a78d6,#1c5cab);color:#fff;font-size:14px;font-weight:600;transition:filter .15s,transform .1s}
.btn-primary:hover{filter:brightness(1.08)}
.btn-primary:active{transform:scale(.98)}
.login-right .btn-primary{width:100%;height:45px;margin-top:6px;font-size:15px;letter-spacing:6px}
.brand-mark{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#3987e5,#1baf7a);
  display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:20px;box-shadow:0 6px 18px rgba(42,120,214,.4)}

/* ================= 布局 ================= */
#app{display:none;min-height:100vh}
#app.on{display:flex}
/* nav-calm-20260711：导航配色转沉稳——中性石墨底、低饱和强调、去发光 */
.sidebar{width:224px;flex:none;background:linear-gradient(180deg,#1b2129,#141920);color:#b4bcc6;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.sb-brand{display:flex;align-items:center;gap:10px;padding:18px;border-bottom:1px solid rgba(255,255,255,.06)}
.sb-brand .brand-mark{width:35px;height:35px;font-size:15px;border-radius:10px;box-shadow:none;background:linear-gradient(135deg,#3d5470,#3a5f56)}
.sb-brand div b{display:block;color:#eef1f4;font-size:15px;letter-spacing:.5px}
.sb-brand div span{font-size:10.5px;color:#838b95;letter-spacing:.8px}
.nav{padding:10px;flex:1;overflow:auto}
.nav-sec{font-size:11px;color:#6b737d;padding:13px 11px 6px;letter-spacing:2px}
.nav a{display:flex;align-items:center;gap:10px;padding:9.5px 12px;border-radius:9px;color:#aeb6c0;text-decoration:none;font-size:13.5px;margin-bottom:2px;cursor:pointer;transition:background .15s;position:relative}
.nav a svg{width:17px;height:17px;flex:none;opacity:.8}
.nav a:hover{background:rgba(255,255,255,.05);color:#eef1f4}
.nav a.active{background:#2b3542;color:#fff;box-shadow:inset 3px 0 0 #5b7fa6}
.nav .badge{margin-left:auto;background:#a5544f;color:#fff;font-size:10.5px;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px;font-weight:700}
.sb-foot{padding:14px 18px;border-top:1px solid rgba(255,255,255,.06);font-size:11px;color:#6b737d;line-height:1.8}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:60px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:20}
.topbar .pg-title{font-size:16.5px;font-weight:700;letter-spacing:.5px}
.topbar .pg-sub{font-size:11.5px;color:var(--ink3);margin-left:2px}
.topbar .spacer{flex:1}
.gsearch{display:flex;align-items:center;gap:7px;border:1px solid #dcdbd5;border-radius:99px;height:36px;padding:0 14px;background:#f7f7f5;width:240px;transition:all .15s}
.gsearch:focus-within{border-color:var(--s1);background:#fff;box-shadow:0 0 0 3px rgba(42,120,214,.12)}
.gsearch svg{width:15px;height:15px;color:var(--ink3);flex:none}
.gsearch input{border:none;outline:none;background:transparent;flex:1;font-size:13px}
.me-box{display:flex;align-items:center;gap:10px}
.me-box .mi{text-align:right;line-height:1.4}
.me-box .mi b{font-size:13.5px;display:block}
.me-box .mi span{font-size:11px;color:var(--ink3)}
.btn-out{height:32px;padding:0 12px;border:1px solid #dcdbd5;border-radius:8px;background:#fff;color:var(--ink2);font-size:12.5px}
.btn-out:hover{border-color:var(--critical);color:var(--critical)}
.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#3987e5,#4a3aa7);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 4px 10px rgba(42,120,214,.3)}
.content{padding:22px 26px 46px;max-width:1320px;width:100%;margin:0 auto}
.page{display:none}
.page.on{display:block;animation:pgIn .25s ease}
@keyframes pgIn{from{transform:translateY(8px)}to{transform:none}}

.view-banner{display:none;align-items:center;gap:10px;background:#fff7e8;border:1px solid #f5dcae;color:#8a6100;
  border-radius:11px;padding:10px 15px;font-size:13px;margin-bottom:16px}
.view-banner.on{display:flex}
.view-banner b{color:#6e4e00}

/* ================= 通用 ================= */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow .2s}
.card:hover{box-shadow:0 2px 4px rgba(15,30,51,.05),0 10px 30px rgba(15,30,51,.09)}
.card-h{display:flex;align-items:center;gap:10px;padding:17px 20px 0}
.card-h h3{font-size:15px;font-weight:700;letter-spacing:.3px}
.card-h .desc{font-size:12px;color:var(--ink3)}
.card-h .spacer{flex:1}
.card-b{padding:14px 20px 20px}
.grid{display:grid;gap:16px}
.g4{grid-template-columns:repeat(4,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g-2-1{grid-template-columns:2fr 1fr}
@media(max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.g2,.g3,.g-2-1{grid-template-columns:1fr}}
.mt{margin-top:16px}

.chip{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:2px 10px;font-size:12px;line-height:20px;white-space:nowrap}
.chip-blue{background:rgba(42,120,214,.1);color:#1c5cab}
.chip-aqua{background:rgba(27,175,122,.12);color:#0e7a54}
.chip-yellow{background:rgba(237,161,0,.13);color:#8a6100}
.chip-violet{background:rgba(74,58,167,.1);color:#4a3aa7}
.chip-red{background:rgba(227,73,72,.1);color:#b52f2e}
.chip-gray{background:rgba(11,11,11,.06);color:var(--ink2)}
.chip-green{background:rgba(12,163,12,.1);color:#006300}
.chip-orange{background:rgba(235,104,52,.12);color:#a53d12}

table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{font-weight:600;color:var(--ink2);text-align:left;padding:10px 12px;border-bottom:1px solid var(--grid);white-space:nowrap;background:#f9f9f7}
.tbl td{padding:11px 12px;border-bottom:1px solid #f0efe9;vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover{background:#f5f9fe}
.tbl .num{font-variant-numeric:tabular-nums;text-align:right}
.link{color:var(--s1);cursor:pointer;background:none;border:none;font-size:13.5px;padding:0}
.link:hover{text-decoration:underline}
.link.danger{color:var(--critical)}
.muted{color:var(--ink3)}
.small{font-size:12px}

.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.toolbar select,.toolbar input{height:37px;border:1px solid #dcdbd5;border-radius:9px;padding:0 11px;background:#fff;outline:none}
.toolbar input:focus,.toolbar select:focus{border-color:var(--s1);box-shadow:0 0 0 3px rgba(42,120,214,.1)}
.toolbar .spacer{flex:1}
.btn-ghost{height:37px;padding:0 15px;border:1px solid #dcdbd5;border-radius:9px;background:#fff;color:var(--ink2);font-size:13.5px;transition:all .15s}
.btn-ghost:hover{border-color:var(--s1);color:var(--s1)}
.btn-sm{height:29px;padding:0 12px;border-radius:7px;font-size:12.5px;border:1px solid #dcdbd5;background:#fff;color:var(--ink2)}
.btn-sm:hover{border-color:var(--s1);color:var(--s1)}
.btn-sm.ok{border-color:rgba(12,163,12,.4);color:#006300;background:rgba(12,163,12,.06)}
.btn-sm.ok:hover{background:rgba(12,163,12,.12)}
.btn-sm.no{border-color:rgba(227,73,72,.35);color:#b52f2e;background:rgba(227,73,72,.05)}
.btn-sm.no:hover{background:rgba(227,73,72,.1)}

.seg{display:inline-flex;border:1px solid #dcdbd5;border-radius:9px;overflow:hidden;background:#fff}
.seg button{border:none;background:#fff;padding:8px 17px;font-size:13.5px;color:var(--ink2)}
.seg button.on{background:var(--s1);color:#fff}
.mini-seg{display:inline-flex;border:1px solid #e6e5df;border-radius:8px;overflow:hidden}
.mini-seg button{border:none;background:#fff;padding:3.5px 11px;font-size:12px;color:var(--ink3)}
.mini-seg button.on{background:#eef4fc;color:#1c5cab;font-weight:600}

/* 统计卡 */
.stat{padding:18px 20px;position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3.5px;border-radius:3px;background:var(--ac,#2a78d6)}
.stat .lb{font-size:13px;color:var(--ink2);display:flex;align-items:center;justify-content:space-between}
.stat .val{font-size:31px;font-weight:700;margin-top:7px;letter-spacing:-.5px}
.stat .val .unit{font-size:13px;font-weight:400;color:var(--ink3);margin-left:4px;letter-spacing:0}
.stat .delta{font-size:12.5px;margin-top:7px;display:flex;align-items:center;gap:6px;color:var(--ink3)}
.stat .delta b{font-weight:600}
.up{color:#006300}.down{color:var(--critical)}
.stat .spark{position:absolute;right:16px;bottom:16px;opacity:.9}
.stat .icn{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.stat .icn svg{width:18px;height:18px}

/* 图表 */
.chart-wrap{position:relative}
.chart-wrap svg{display:block;width:100%;height:auto}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink2);padding:2px 2px 10px}
.legend .key{display:inline-flex;align-items:center;gap:6px}
.key .ln{width:14px;height:2.5px;border-radius:2px}
#tooltip{position:fixed;z-index:95;pointer-events:none;background:#0e1c30;color:#fff;border-radius:9px;
  padding:9px 12px;font-size:12.5px;box-shadow:0 10px 30px rgba(0,0,0,.3);display:none;max-width:280px}
#tooltip .tt-t{color:#9fb6d8;font-size:11.5px;margin-bottom:5px}
#tooltip .tt-r{display:flex;align-items:center;gap:7px;margin-top:3px}
#tooltip .tt-r i{width:12px;height:2.5px;border-radius:2px;flex:none}
#tooltip .tt-r b{font-weight:700;margin-left:auto;padding-left:14px;font-variant-numeric:tabular-nums}
.axis-t{font-size:11px;fill:var(--ink3)}
.grid-ln{stroke:var(--grid);stroke-width:1}
.axis-ln{stroke:var(--axis);stroke-width:1}

/* 时间线 */
.tl{position:relative;padding-left:20px}
.tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:#eceae4;border-radius:2px}
.tl-item{position:relative;padding:0 0 16px}
.tl-item:last-child{padding-bottom:2px}
.tl-item::before{content:"";position:absolute;left:-19px;top:5px;width:10px;height:10px;border-radius:50%;background:#fff;border:2.5px solid var(--dc,#2a78d6)}
.tl-item .tt{font-size:13px;line-height:1.55}
.tl-item time{font-size:11.5px;color:var(--ink3)}

/* 组织 */
.org-level{display:flex;gap:14px;align-items:stretch}
.org-col{flex:1;min-width:0}
.org-tier{border-radius:12px;padding:14px 15px;border:1px solid var(--line);background:linear-gradient(180deg,#fdfdfc,#f8f9fa);height:100%}
.org-tier .tname{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.org-tier .tnum{width:23px;height:23px;border-radius:7px;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:700}
.org-tier .tcount{margin-left:auto;font-size:11.5px;color:var(--ink3);background:#fff;border:1px solid #e8e7e1;border-radius:99px;padding:1px 9px}
.org-tier .trole{font-size:12px;color:var(--ink3);margin:6px 0 11px;line-height:1.6}
.org-person{display:flex;align-items:center;gap:8px;padding:7.5px 10px;border-radius:9px;font-size:13px;border:1px solid #eceae4;margin-bottom:6px;background:#fff}
.org-person.me{border-color:var(--s1);background:#eef4fc;box-shadow:0 2px 8px rgba(42,120,214,.12)}
.org-person .pa{width:25px;height:25px;border-radius:50%;font-size:11px;color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.org-person .part{margin-left:auto}
.org-arrow{display:flex;align-items:center;color:#c3cbd8;flex:none}
.tier-note{font-size:12px;color:var(--ink3);background:#fff;border:1px dashed #e0ded7;border-radius:8px;padding:7px 10px;margin-top:8px;line-height:1.6}

/* 产品 */
.prod-card{padding:20px;position:relative;overflow:hidden}
.prod-card::after{content:"";position:absolute;right:-34px;top:-34px;width:110px;height:110px;border-radius:50%;background:var(--pc,#2a78d6);opacity:.06}
.prod-card h4{font-size:15px;margin-bottom:7px;display:flex;align-items:center;gap:9px}
.prod-card .tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.prod-card p{font-size:12.5px;color:var(--ink3);line-height:1.7}
.prod-ic{width:35px;height:35px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}
.prod-ic svg{width:18px;height:18px}

.meter{height:6px;border-radius:3px;background:#dce9fa;overflow:hidden;min-width:70px}
.meter i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#3987e5,#2a78d6)}

/* 详情弹窗（center-dialog-20260711：原来是右侧滑出的抽屉，改成居中弹出——
   右侧滑出不符合看详情的习惯，且正好和右下角的助手窗口撞在一起） */
.drawer-mask{position:fixed;inset:0;background:rgba(10,22,38,.45);backdrop-filter:blur(2px);z-index:60;display:none}
.drawer-mask.on{display:block}
.drawer{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.97);
  width:840px;max-width:94vw;max-height:86vh;background:var(--surface);z-index:61;border-radius:16px;overflow:hidden;
  box-shadow:0 32px 90px rgba(10,22,38,.34);opacity:0;pointer-events:none;
  transition:transform .22s cubic-bezier(.2,.8,.3,1),opacity .18s;display:flex;flex-direction:column}
.drawer.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
.drawer-h{padding:18px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex:none}
.drawer-h h3{font-size:16px}
.drawer-b{flex:1;overflow:auto;padding:18px 24px 26px;min-height:0}
.x-btn{margin-left:auto;border:none;background:#f2f1ee;width:31px;height:31px;border-radius:9px;font-size:15px;color:var(--ink2)}
.x-btn:hover{background:#e6e5e0}
.sec-t{font-size:13px;font-weight:700;color:var(--ink2);margin:19px 0 9px;display:flex;align-items:center;gap:8px}
.sec-t::before{content:"";width:3.5px;height:13px;border-radius:2px;background:linear-gradient(180deg,#3987e5,#1c5cab)}
.kv{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:13.5px}
.kv .k{color:var(--ink3)}
.flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px}
.flow .st{border:1px solid var(--grid);border-radius:8px;padding:5.5px 11px;color:var(--ink3);background:#fbfbf9}
.flow .st.done{border-color:rgba(42,120,214,.4);background:#eef4fc;color:#1c5cab;font-weight:600}
.flow .ar{color:var(--axis)}
.audit-step{display:flex;gap:11px;font-size:13px;padding-bottom:14px;position:relative}
.audit-step::before{content:"";position:absolute;left:8px;top:20px;bottom:0;width:2px;background:#eceae4}
.audit-step:last-child::before{display:none}
.audit-step .ad{width:18px;height:18px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;z-index:1}
.ad.done{background:var(--good)}
.ad.doing{background:var(--warn)}
.ad.todo{background:#d5d4ce}
.audit-step .as-t{line-height:1.5}
.audit-step time{display:block;font-size:11.5px;color:var(--ink3)}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(10,22,38,.5);z-index:70;display:none;align-items:flex-start;justify-content:center;overflow:auto;padding:36px 16px}
.modal-mask.on{display:flex}
.modal{background:#fff;border-radius:16px;width:760px;max-width:100%;box-shadow:0 30px 90px rgba(0,0,0,.35);animation:cardIn .3s ease}
.modal.narrow{width:520px}
.modal-h{padding:18px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center}
.modal-h h3{font-size:16px}
.modal-b{padding:14px 26px 12px;max-height:calc(100vh - 215px);overflow:auto}
.modal-f{padding:14px 26px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}
.frm-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.frm-grid .full{grid-column:1/-1}
.chk-row{display:flex;flex-wrap:wrap;gap:8px}
.chk{display:inline-flex;align-items:center;gap:6px;border:1px solid #d8d7d1;border-radius:9px;padding:6.5px 12px;font-size:13px;cursor:pointer;background:#fff;user-select:none;transition:all .12s}
.chk input{accent-color:var(--s1)}
.chk:has(input:checked){border-color:var(--s1);background:#eef4fc;color:#1c5cab}
.chk-group-t{font-size:12px;color:var(--ink3);margin:9px 0 6px}
.rebate-hint{background:#f0f8f3;border:1px solid #cfe8d8;border-radius:10px;padding:11px 14px;font-size:13px;color:#0e7a54;margin-top:12px;line-height:1.75}
.rebate-hint b{color:#006300}

.perm-ok{color:var(--good);font-weight:700}
.perm-no{color:#c9c8c2}
.perm-part{color:#8a6100;font-size:12.5px}
.hl-row{background:#fffbea!important}

.rule-path{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}
.rule-path .n{border:1px solid var(--grid);border-radius:9px;padding:6px 12px;background:#fbfbf9}
.rule-path .n.hot{border-color:rgba(42,120,214,.45);background:#eef4fc;color:#1c5cab;font-weight:600}
.rule-tbl td:first-child{white-space:nowrap}

.map-item{display:grid;grid-template-columns:1fr 24px 1fr;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid #f0efe9;font-size:13.5px}
.map-item:last-child{border-bottom:none}
.map-item .src{color:var(--ink2)}
.map-item .dst b{color:#1c5cab}
.map-item .ar{color:var(--axis);text-align:center;padding-top:1px}
.open-q{background:#fff7e8;border:1px solid #f5dcae;border-radius:11px;padding:15px 17px;font-size:13px;line-height:2.05;color:#6e4e00}

/* 审核中心 */
.cd-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(237,161,0,.12);color:#8a6100;border-radius:99px;padding:3px 11px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.cd-chip.danger{background:rgba(227,73,72,.1);color:#b52f2e}

/* 系统配置 */
.cfg-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #f0efe9;font-size:13.5px}
.cfg-row:last-child{border-bottom:none}
.cfg-row .cl{width:250px;flex:none}
.cfg-row .cl b{display:block}
.cfg-row .cl span{font-size:12px;color:var(--ink3)}
.cfg-row input[type=number]{width:90px;height:34px;border:1px solid #dcdbd5;border-radius:8px;padding:0 10px;outline:none;text-align:right}
.cfg-row select{height:34px;border:1px solid #dcdbd5;border-radius:8px;padding:0 10px}
.switch{position:relative;width:42px;height:23px;background:#d5d4ce;border-radius:99px;cursor:pointer;transition:background .18s;flex:none}
.switch.on{background:var(--s1)}
.switch i{position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .18s;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.switch.on i{left:21.5px}

/* 小程序预览 */
.phones{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.phone{width:272px;flex:none;border-radius:36px;background:#0c0c0e;padding:8px;box-shadow:0 26px 60px rgba(15,30,51,.28)}
.phone .scr{border-radius:30px;background:#f4f5f7;overflow:hidden;height:596px;position:relative;display:flex;flex-direction:column}
.p-status{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:11px;font-weight:600;flex:none}
.p-navbar{height:40px;display:flex;align-items:center;padding:0 14px;font-size:14.5px;font-weight:600;flex:none;position:relative}
.p-navbar .caps{position:absolute;right:10px;top:7px;width:80px;height:27px;border:1px solid rgba(0,0,0,.12);border-radius:99px;background:rgba(255,255,255,.65);display:flex;align-items:center;justify-content:center;font-size:15px;color:#111}
.p-navbar .caps i{width:1px;height:15px;background:rgba(0,0,0,.12);margin:0 8px}
.p-body{flex:1;overflow:hidden;padding:12px;font-size:12px}
.p-tabbar{height:52px;background:#fff;border-top:1px solid #ebe9e3;display:flex;flex:none}
.p-tabbar div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;color:#9a988f}
.p-tabbar div.on{color:var(--s1);font-weight:600}
.p-tabbar svg{width:19px;height:19px}
.p-card{background:#fff;border-radius:13px;padding:13px;margin-bottom:11px;box-shadow:0 2px 10px rgba(15,30,51,.05)}
.phone-cap{text-align:center;font-size:13px;color:var(--ink2);margin-top:13px;font-weight:600}
.phone-cap span{display:block;font-weight:400;font-size:11.5px;color:var(--ink3);margin-top:2px}
.p-btn{background:linear-gradient(135deg,#2a78d6,#1c5cab);color:#fff;border-radius:99px;text-align:center;padding:10px;font-size:13.5px;font-weight:600;letter-spacing:2px}
.p-fld{margin-bottom:9px}
.p-fld label{display:block;font-size:11px;color:#898781;margin-bottom:4px}
.p-fld .pi{background:#f4f5f7;border-radius:8px;padding:8px 10px;color:#0b0b0b}
.p-fld .pi.ph{color:#b3b1a9}
.p-chks{display:flex;gap:6px;flex-wrap:wrap}
.p-chks span{border:1px solid #e0ded7;border-radius:99px;padding:3.5px 10px;font-size:11px;color:#52514e;background:#fff}
.p-chks span.on{border-color:var(--s1);background:#eef4fc;color:#1c5cab}

#toast{position:fixed;top:22px;left:50%;transform:translateX(-50%) translateY(-90px);z-index:99;background:#0e1c30;color:#fff;
  border-radius:11px;padding:12px 22px;font-size:14px;box-shadow:0 14px 40px rgba(0,0,0,.35);transition:transform .32s cubic-bezier(.2,.8,.3,1.2);display:flex;gap:9px;align-items:center}
#toast.on{transform:translateX(-50%) translateY(0)}
#toast .ok{color:#35d07f}
#toast.err .ok{color:#ff8b8b}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#cfceca;border-radius:5px}
::-webkit-scrollbar-track{background:transparent}

/* ================= theme-20260711：夜间模式 =================
   纯增量：不动上面任何一条浅色规则，只在 <html data-theme="dark"> 时覆盖。
   浅色仍是默认，未切换的用户看到的东西一个像素都没变。 */
.btn-theme{width:36px;height:36px;flex:none;border:1px solid #dcdbd5;border-radius:50%;background:#fff;color:var(--ink2);
  display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s,background .15s}
.btn-theme:hover{border-color:var(--s1);color:var(--s1)}
.btn-theme svg{width:17px;height:17px}

:root[data-theme="dark"]{
  --surface:#171b22; --plane:#10141a;
  --ink1:#e9ecf3; --ink2:#b4bccb; --ink3:#828b9b;
  --grid:#2a313c; --axis:#3a4350; --line:rgba(255,255,255,.09);
  --shadow:0 1px 2px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.45);
  --bd:#333b47; --elev:#1f242d; --divider:#232932; --soft:#22304a; --softInk:#8fb6ee;
}
[data-theme="dark"] .card:hover{box-shadow:0 2px 4px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.5)}

/* 顶栏 */
[data-theme="dark"] .topbar{background:rgba(23,27,34,.92)}
[data-theme="dark"] .gsearch{border-color:var(--bd);background:var(--elev)}
[data-theme="dark"] .gsearch:focus-within{background:var(--surface);box-shadow:0 0 0 3px rgba(42,120,214,.22)}
[data-theme="dark"] .gsearch input{color:var(--ink1)}
[data-theme="dark"] .btn-out{border-color:var(--bd);background:var(--elev)}
[data-theme="dark"] .btn-theme{border-color:var(--bd);background:var(--elev)}

/* 表单 / 按钮 */
[data-theme="dark"] .fld input,[data-theme="dark"] .fld select,[data-theme="dark"] .fld textarea,
[data-theme="dark"] .toolbar select,[data-theme="dark"] .toolbar input,
[data-theme="dark"] .cfg-row input[type=number],[data-theme="dark"] .cfg-row select{
  background:var(--elev);border-color:var(--bd);color:var(--ink1)}
[data-theme="dark"] select option{background:#1f242d;color:#e9ecf3}
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:var(--ink3)}
[data-theme="dark"] .btn-ghost,[data-theme="dark"] .btn-sm{background:var(--elev);border-color:var(--bd);color:var(--ink2)}
[data-theme="dark"] .seg{border-color:var(--bd);background:var(--elev)}
[data-theme="dark"] .seg button{background:transparent;color:var(--ink2)}
[data-theme="dark"] .seg button.on{background:var(--s1);color:#fff}
[data-theme="dark"] .mini-seg{border-color:var(--bd)}
[data-theme="dark"] .mini-seg button{background:var(--elev);color:var(--ink3)}
[data-theme="dark"] .mini-seg button.on{background:var(--soft);color:var(--softInk)}
[data-theme="dark"] .chk{background:var(--elev);border-color:var(--bd)}
[data-theme="dark"] .chk:has(input:checked){background:var(--soft);color:var(--softInk)}

/* 表格 */
[data-theme="dark"] .tbl th{background:#1c212a;border-bottom-color:var(--grid)}
[data-theme="dark"] .tbl td{border-bottom-color:var(--divider)}
[data-theme="dark"] .tbl tbody tr:hover{background:#1e2531}
[data-theme="dark"] .hl-row{background:#2e2413!important}
[data-theme="dark"] .map-item,[data-theme="dark"] .cfg-row{border-bottom-color:var(--divider)}

/* 抽屉 / 弹窗 */
[data-theme="dark"] .drawer,[data-theme="dark"] .modal{background:var(--surface)}
[data-theme="dark"] .drawer-mask,[data-theme="dark"] .modal-mask{background:rgba(0,0,0,.6)}
[data-theme="dark"] .x-btn{background:#242a34;color:var(--ink2)}
[data-theme="dark"] .x-btn:hover{background:#2d3541}

/* 状态色块（浅底 → 深底，文字提亮，保证对比度） */
[data-theme="dark"] .chip-blue{color:#8fb6ee}
[data-theme="dark"] .chip-aqua{color:#4fd0a3}
[data-theme="dark"] .chip-yellow{color:#e0b45e}
[data-theme="dark"] .chip-violet{color:#a99bf0}
[data-theme="dark"] .chip-red{color:#f08a89}
[data-theme="dark"] .chip-green{color:#5fc95f}
[data-theme="dark"] .chip-orange{color:#f0956b}
[data-theme="dark"] .view-banner{background:#2e2413;border-color:#5c4a1f;color:#e0a94e}
[data-theme="dark"] .open-q{background:#2e2413;border-color:#5c4a1f;color:#e0c78e}
[data-theme="dark"] .rebate-hint{background:#12271b;border-color:#2b5540;color:#63c896}

/* 组织架构 / 流程 / 时间轴 */
[data-theme="dark"] .org-tier{background:linear-gradient(180deg,#1b2029,#171b22)}
[data-theme="dark"] .org-tier .tcount{background:var(--elev);border-color:var(--bd)}
[data-theme="dark"] .org-person{background:#1a1f27;border-color:var(--grid)}
[data-theme="dark"] .org-person.me{background:var(--soft)}
[data-theme="dark"] .tier-note{background:#1c212a;border-color:var(--bd)}
[data-theme="dark"] .tl::before,[data-theme="dark"] .audit-step::before{background:var(--grid)}
[data-theme="dark"] .tl-item::before{background:var(--surface)}
[data-theme="dark"] .flow .st,[data-theme="dark"] .rule-path .n{background:#1c212a}
[data-theme="dark"] .flow .st.done,[data-theme="dark"] .rule-path .n.hot{background:var(--soft);color:var(--softInk)}
[data-theme="dark"] .meter{background:#2a3646}
[data-theme="dark"] .switch{background:#3a4350}
[data-theme="dark"] .switch i{background:#e9ecf3}
[data-theme="dark"] .ad.todo{background:#3a4350}

/* 小程序预览 */
[data-theme="dark"] .phone .scr,[data-theme="dark"] .p-fld .pi{background:var(--elev)}
[data-theme="dark"] .p-fld .pi{color:var(--ink1)}
[data-theme="dark"] .p-tabbar{background:var(--surface);border-top-color:var(--grid)}
[data-theme="dark"] .p-card{background:var(--elev)}
[data-theme="dark"] .p-chks span{background:var(--elev);border-color:var(--bd);color:var(--ink2)}

/* 登录页右半边（跟着主题走，不然夜间模式下登录一片惨白） */
[data-theme="dark"] .login-right{background:var(--surface)}
[data-theme="dark"] .acct-chips button{background:var(--elev);border-color:var(--bd)}
[data-theme="dark"] .acct-chips button:hover{background:var(--soft);color:var(--softInk)}

/* ================= sidebar-collapse-20260711：侧边栏折叠 =================
   展开 224px ←→ 折叠 66px（只留图标，名称走 tooltip）。同样是纯增量，不改原有规则。 */
.sidebar{transition:width .2s ease}
.sb-toggle{margin-left:auto;flex:none;width:26px;height:26px;border:none;border-radius:7px;background:transparent;
  color:#7f8894;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.sb-toggle:hover{background:rgba(255,255,255,.08);color:#eef1f4}
.sb-toggle svg{width:16px;height:16px}

.sidebar.mini{width:66px}
.sidebar.mini .sb-brand{justify-content:center;padding:18px 0}
.sidebar.mini .sb-brand .brand-mark,
.sidebar.mini .sb-brand>div:not(.brand-mark){display:none}
.sidebar.mini .sb-toggle{margin-left:0}
.sidebar.mini .nav{padding:10px 8px}
.sidebar.mini .nav-sec{height:1px;padding:0;margin:10px 8px;background:rgba(255,255,255,.07);overflow:hidden;font-size:0}
.sidebar.mini .nav a{justify-content:center;padding:10px 0;font-size:0}
.sidebar.mini .nav a svg{opacity:.95}
.sidebar.mini .nav a.active{box-shadow:inset 2px 0 0 #5b7fa6}
.sidebar.mini .nav .badge{position:absolute;top:5px;right:9px;min-width:8px;width:8px;height:8px;padding:0;font-size:0;border-radius:50%}
.sidebar.mini .sb-foot{display:none}

/* ================= dialog-20260711：统一确认框（替掉浏览器原生 confirm） =================
   原生 confirm 会顶着浏览器自己的地址栏提示，丑且不可控。这里做一套项目自己的。 */
.dlgx-mask{position:fixed;inset:0;z-index:120;background:rgba(10,22,38,.42);backdrop-filter:blur(2px);
  display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .16s}
.dlgx-mask.on{opacity:1}
.dlgx{width:420px;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 30px 90px rgba(10,22,38,.32);padding:22px 22px 18px;transform:translateY(10px) scale(.97);
  opacity:0;transition:transform .18s cubic-bezier(.2,.8,.3,1),opacity .16s}
.dlgx-mask.on .dlgx{transform:none;opacity:1}
.dlgx-hd{display:flex;gap:13px;align-items:flex-start}
.dlgx-ic{width:40px;height:40px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center}
.dlgx-ic svg{width:21px;height:21px}
.dlgx-ic.danger{background:rgba(208,59,59,.12);color:var(--critical)}
.dlgx-ic.ask{background:rgba(42,120,214,.12);color:var(--s1)}
.dlgx-tt{font-size:16px;font-weight:700;color:var(--ink1);line-height:1.45;padding-top:2px}
.dlgx-bd{font-size:13.5px;color:var(--ink2);line-height:1.75;margin:12px 0 0;padding-left:53px;white-space:pre-line}
.dlgx-ft{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.dlgx-btn{height:38px;padding:0 18px;border-radius:9px;font-size:13.5px;font-weight:600;border:1px solid transparent;transition:all .14s}
.dlgx-cancel{background:var(--surface);border-color:var(--grid);color:var(--ink2)}
.dlgx-cancel:hover{border-color:var(--axis);color:var(--ink1)}
.dlgx-ok{background:var(--s1);color:#fff}
.dlgx-ok:hover{filter:brightness(1.08)}
.dlgx-ok.danger{background:var(--critical)}
.dlgx-btn:focus-visible{outline:2px solid var(--s1);outline-offset:2px}
[data-theme="dark"] .dlgx-mask{background:rgba(0,0,0,.62)}
[data-theme="dark"] .dlgx{box-shadow:0 30px 90px rgba(0,0,0,.6)}
[data-theme="dark"] .dlgx-cancel{background:var(--elev);border-color:var(--bd)}
[data-theme="dark"] .dlgx-ic.danger{background:rgba(240,138,137,.16);color:#f08a89}
[data-theme="dark"] .dlgx-ok.danger{background:#c0453f}

/* ================= me-menu-20260711：右上角用户区收进下拉 =================
   原来是「两行小字 + 头像 + 退出按钮」并排，五样东西挤在顶栏右侧，又碎又乱。 */
.me-box{position:relative}
.me-btn{display:flex;align-items:center;gap:9px;height:44px;padding:0 10px 0 6px;border:1px solid transparent;
  border-radius:99px;background:transparent;color:var(--ink1);font-size:13.5px;font-weight:600;transition:all .15s}
.me-btn:hover,.me-btn[aria-expanded="true"]{background:var(--plane);border-color:var(--grid)}
.me-btn .avatar{width:32px;height:32px;font-size:12px;box-shadow:none}
.me-caret{width:15px;height:15px;color:var(--ink3);transition:transform .18s}
.me-btn[aria-expanded="true"] .me-caret{transform:rotate(180deg)}
.me-menu{position:absolute;top:calc(100% + 8px);right:0;width:236px;background:var(--surface);border:1px solid var(--line);
  border-radius:13px;box-shadow:0 18px 46px rgba(15,30,51,.16);padding:7px;z-index:40;
  opacity:0;transform:translateY(-6px) scale(.97);pointer-events:none;transition:opacity .15s,transform .18s cubic-bezier(.2,.8,.3,1)}
.me-menu.on{opacity:1;transform:none;pointer-events:auto}
.me-menu-hd{display:flex;align-items:center;gap:11px;padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.me-menu-hd .avatar{width:38px;height:38px;font-size:14px;flex:none}
.me-menu-hd b{display:block;font-size:14px;color:var(--ink1);line-height:1.4}
.me-menu-hd span{font-size:11.5px;color:var(--ink3);line-height:1.5}
.me-menu-item{display:flex;align-items:center;gap:9px;width:100%;height:38px;padding:0 10px;border:none;border-radius:9px;
  background:transparent;color:var(--ink2);font-size:13.5px;text-align:left;transition:background .14s,color .14s}
.me-menu-item svg{width:16px;height:16px;flex:none}
.me-menu-item:hover{background:var(--plane);color:var(--ink1)}
.me-menu-item.danger:hover{background:rgba(208,59,59,.1);color:var(--critical)}
[data-theme="dark"] .me-btn:hover,[data-theme="dark"] .me-btn[aria-expanded="true"]{background:var(--elev);border-color:var(--bd)}
[data-theme="dark"] .me-menu{box-shadow:0 18px 46px rgba(0,0,0,.55)}
[data-theme="dark"] .me-menu-item:hover{background:var(--elev)}
[data-theme="dark"] .me-menu-item.danger:hover{background:rgba(240,138,137,.14);color:#f08a89}

/* ================= cust-cards-20260711：客户卡片墙 + 反馈汇总 ================= */
.cust-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(390px,1fr));gap:16px;margin-top:14px}
.cust-card{display:flex;flex-direction:column;padding:16px 17px 10px}
.cc-hd{display:flex;align-items:center;gap:11px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.cc-ic{width:40px;height:40px;flex:none;border-radius:11px;background:linear-gradient(135deg,#3987e5,#4a3aa7);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}
.cc-ti{min-width:0;flex:1}
.cc-ti b{display:block;font-size:14.5px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-meta{display:flex;align-items:center;gap:7px;margin-top:3px}
.cc-sec{padding:12px 0;border-bottom:1px dashed var(--line)}
.cc-sec:last-of-type{border-bottom:none}
.cc-st{font-size:11.5px;font-weight:700;color:var(--ink3);letter-spacing:.6px;margin-bottom:8px;display:flex;gap:7px;align-items:center}
.cc-kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:2.5px 0}
.cc-kv span{color:var(--ink3);flex:none}
.cc-kv b{font-weight:600;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-note{margin-top:7px;font-size:12px;color:var(--ink2);background:var(--plane);border-radius:8px;padding:6px 9px;line-height:1.6}
.cc-empty{font-size:12.5px;color:var(--ink3);padding:6px 2px}
.cc-intent{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;font-size:12.5px;cursor:pointer;transition:background .14s}
.cc-intent:hover{background:var(--plane)}
.cc-dot{width:7px;height:7px;border-radius:50%;flex:none}
.cc-iname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.cc-iamt{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.cc-cont{padding:8px 9px;border:1px solid var(--line);border-radius:10px;margin-bottom:7px;cursor:pointer;transition:border-color .14s,background .14s}
.cc-cont:hover{border-color:var(--s1);background:var(--plane)}
.cc-crow{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;margin-top:3px}
.cc-crow:first-child{margin-top:0}
.cc-crow b{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-fb{border-left:2.5px solid var(--grid);padding:2px 0 2px 10px;margin-bottom:9px}
.cc-fbh{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cc-fbc{font-size:12.5px;color:var(--ink2);line-height:1.65;margin-top:4px}
.cc-fbr{font-size:12px;color:var(--ink3);margin-top:3px;padding-left:8px;border-left:2px solid var(--line)}
.cc-ft{display:flex;gap:14px;padding-top:11px;margin-top:auto;border-top:1px solid var(--line)}
.fb-grid{display:grid;grid-template-columns:1.1fr 1fr 1.3fr;gap:26px}
.fb-t{font-size:12px;font-weight:700;color:var(--ink3);letter-spacing:.6px;margin-bottom:9px}
.fb-row{display:flex;align-items:center;gap:9px;padding:4px 0;font-size:12.5px}
.fb-k{width:44px;flex:none;color:var(--ink2)}
.fb-n{width:64px;flex:none;text-align:right;color:var(--ink3);font-variant-numeric:tabular-nums}
.fb-recent{padding:7px 0;border-bottom:1px dashed var(--line)}
.fb-recent:last-child{border-bottom:none}
.fb-rt{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12.5px}
.fb-rc{font-size:12.5px;color:var(--ink2);line-height:1.6;margin-top:4px}
@media (max-width:1100px){.fb-grid{grid-template-columns:1fr}}
[data-theme="dark"] .cc-note{background:var(--elev)}
[data-theme="dark"] .cc-intent:hover,[data-theme="dark"] .cc-cont:hover{background:var(--elev)}
[data-theme="dark"] .cc-fb{border-left-color:var(--bd)}

/* ================= prod-cards-20260711：产品五类卡片墙 ================= */
.grid.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
@media (max-width:1200px){.grid.g5{grid-template-columns:repeat(2,1fr)}}
.prod-kind{cursor:pointer;transition:transform .14s,box-shadow .2s}
.prod-kind:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(15,30,51,.05),0 10px 30px rgba(15,30,51,.09)}
.prod-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:15px;margin-top:14px}
.p-item{display:flex;flex-direction:column;padding:15px 16px 9px;border-top:3px solid var(--pc)}
.pi-hd{display:flex;align-items:center;gap:11px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.pi-ic{width:38px;height:38px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
.pi-ti{min-width:0;flex:1}
.pi-ti b{display:block;font-size:14.5px;line-height:1.4}
.pi-meta{display:flex;align-items:center;gap:7px;margin-top:3px}
.pi-intro{font-size:12.5px;color:var(--ink2);line-height:1.7;padding:11px 0;min-height:44px;border-bottom:1px dashed var(--line)}
.pi-kv{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;padding:6px 0}
.pi-kv>span{color:var(--ink3);flex:none}
.pi-kv b{font-weight:600}
.pi-bill{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.pi-ft{display:flex;gap:14px;padding-top:10px;margin-top:auto;border-top:1px solid var(--line)}
.bill-opts{display:flex;flex-wrap:wrap;gap:8px}

/* ================= nav-restruct-20260711：分组页子 Tab ================= */
.subtabs{display:none;margin-bottom:16px}
.subtabs.on{display:block}
.subtabs .seg{border-radius:10px}
.subtabs .seg button{padding:9px 22px;font-size:13.5px;font-weight:600}

/* ================= visit-report-20260713：团队拜访汇报 ================= */
.vr-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--surface);transition:border-color .15s}
.vr-item:hover{border-color:var(--lineS,var(--grid))}
.vr-hd{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:13px}
.vr-content{font-size:13px;color:var(--ink1);line-height:1.7;margin:7px 0 5px;padding:8px 10px;background:var(--plane);border-radius:8px}
.vr-review{font-size:12.5px;color:var(--ink2);margin-top:7px;padding:7px 10px;border-left:3px solid var(--s1);background:var(--plane);border-radius:0 8px 8px 0}
[data-theme="dark"] .vr-content,[data-theme="dark"] .vr-review{background:var(--elev)}


/* ================= video-20260713：视频中心 ================= */
.vid-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.vid-card{display:flex;flex-direction:column;overflow:hidden}
.vid-player{background:#000;border-radius:12px 12px 0 0;overflow:hidden}
.vid-ph{height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(140deg,#1b2129,#141920);color:#8b95a3;font-size:13px}
.vid-ph-ic{font-size:34px}
.vid-body{padding:14px 16px 10px;display:flex;flex-direction:column;flex:1}
.vid-hd{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.vid-hd b{font-size:14.5px}
.vid-brief{font-size:12.5px;color:var(--ink2);line-height:1.7;padding:8px 10px;background:var(--plane);border-radius:8px;margin-bottom:8px}
.vid-plan{margin-top:8px;padding:8px 10px;border-left:3px solid var(--s1);background:var(--plane);border-radius:0 8px 8px 0;font-size:12px;color:var(--ink2)}
.vid-ft{display:flex;align-items:center;padding-top:10px;margin-top:auto;border-top:1px solid var(--line)}
[data-theme="dark"] .vid-brief,[data-theme="dark"] .vid-plan{background:var(--elev)}


/* video-marks-20260713：在时间点提意见 */
.rv-wrap{display:flex;flex-direction:column}
.rv-bar{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.rv-now{font-variant-numeric:tabular-nums;font-weight:700;font-size:14px}
.rv-marks{margin-top:10px;display:flex;flex-direction:column;gap:7px}
.rv-mark{display:flex;align-items:center;gap:7px}
.rv-mark-input{flex:1;height:34px;border:1px solid var(--grid);border-radius:8px;padding:0 10px;background:var(--surface);color:var(--ink1);font-size:13px}
.rv-mark-input:focus{outline:none;border-color:var(--s1)}
[data-theme="dark"] .rv-mark-input{background:var(--elev);border-color:var(--bd)}

/* video-progress-20260713：进度条 —— 让用户看见系统在干嘛 */
.vid-working{position:absolute;left:0;right:0;bottom:0;background:rgba(17,24,39,.82);color:#fff;
  font-size:12px;padding:6px 10px;backdrop-filter:blur(2px)}
.vid-working b{color:#7dd3fc}
.vid-player{position:relative}
.vid-prog{padding:10px 14px 2px;border-bottom:1px solid var(--bd)}
.vid-prog-track{height:6px;border-radius:99px;background:var(--soft);overflow:hidden}
.vid-prog-track>i{display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,#3b82f6,#22d3ee);transition:width .6s ease;
  background-size:200% 100%;animation:vidflow 1.6s linear infinite}
@keyframes vidflow{0%{background-position:0 0}100%{background-position:200% 0}}
.vid-prog-steps{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--ink3)}
.vid-prog-steps .on{color:#3b82f6;font-weight:700}
.vid-prog-steps .done{color:var(--ink2)}
.vid-prog-hint{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;color:var(--ink2)}
.vid-dot{width:7px;height:7px;border-radius:99px;background:#3b82f6;flex:0 0 auto;animation:vidpulse 1.2s ease-in-out infinite}
@keyframes vidpulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

/* video-library-20260713：分类筛选条 + 配乐库 */
.vid-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 22px;border-bottom:1px solid var(--bd)}
.vf{border:1px solid var(--bd);background:var(--plane);color:var(--ink2);border-radius:99px;
  padding:5px 12px;font-size:12px;cursor:pointer;transition:.15s;white-space:nowrap}
.vf:hover{border-color:#3b82f6;color:#3b82f6}
.vf.on{background:#3b82f6;border-color:#3b82f6;color:#fff;font-weight:600}
.vf-sep{width:1px;height:18px;background:var(--bd);margin:0 4px}
.vf-q{margin-left:auto;border:1px solid var(--bd);border-radius:8px;padding:6px 12px;font-size:13px;
  background:var(--plane);color:var(--ink1);min-width:190px}
.vf-q:focus{outline:none;border-color:#3b82f6}
.ml-up{border:1px dashed var(--bd);border-radius:10px;padding:14px;margin-bottom:14px}
.ml-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}
.ml-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--bd);border-radius:10px}
.ml-nm{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ml-nm .chip{align-self:flex-start}

/* video-assets-20260713：素材中心 */
.ah-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}

/* capability-20260713：能力中心 */
.cap-dot{width:8px;height:8px;border-radius:99px;background:#f04438;display:inline-block;margin-left:6px;
  box-shadow:0 0 0 3px rgba(240,68,56,.18);animation:vidpulse 1.4s ease-in-out infinite}
.cap-sec{margin-bottom:16px}
.cap-sec h4{font-size:14px;color:var(--ink2);margin:0 0 8px}
.cap-card{border:1px solid var(--bd);border-radius:12px;padding:14px 16px;margin-bottom:10px;background:var(--plane)}
.cap-card.hot{border-color:#f79009;background:rgba(247,144,9,.05)}
.cap-hd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.cap-ft{margin-top:12px;padding-top:10px;border-top:1px solid var(--bd)}
.cap-beyond{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:13px;color:var(--ink2);cursor:pointer}
.cap-beyond input{margin-top:3px}

/* cap-policy-20260713：免审批开关 */
.pol-box{border:1px dashed var(--bd);border-radius:12px;padding:14px 16px;margin-bottom:16px}
.pol-box.on{border-color:#12b76a;border-style:solid;background:rgba(18,183,106,.05)}
.pol-sw{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px}
.pol-sw input{width:18px;height:18px}

/* ask-20260713：在卡片上向用户提问 */
.ask-box{border:2px solid #f79009;background:rgba(247,144,9,.07);border-radius:12px;padding:14px 16px;margin:10px 0}
.ask-box.done{border-color:var(--bd);border-width:1px;background:var(--soft)}
.ask-hd{font-weight:700;font-size:14px;color:#b54708;margin-bottom:8px}
.ask-box.done .ask-hd{color:var(--ink2);font-weight:600}
.ask-q{font-size:13px;color:var(--ink1);margin-bottom:12px;line-height:1.6}
.ask-item{margin-bottom:12px}
.ask-item label{display:block;font-size:13px;font-weight:600;color:var(--ink1);margin-bottom:4px}
.ask-item textarea,.ask-item input{width:100%;border:1px solid var(--bd);border-radius:8px;padding:8px 10px;
  font-size:13px;background:var(--plane);color:var(--ink1)}
.ask-opts{display:flex;gap:6px;flex-wrap:wrap}

/* revise-refs-20260713：修改意见里带的参考素材 */
.rv-refs{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.rv-ref{display:flex;align-items:center;gap:10px;border:1px solid var(--bd);border-radius:8px;padding:8px}
.rv-ref img,.rv-ref video{width:64px;height:44px;object-fit:cover;border-radius:5px;background:#000}
.rv-ref-ic{width:64px;height:44px;display:flex;align-items:center;justify-content:center;
  background:var(--soft);border-radius:5px;font-size:22px}
.rv-ref-n{flex:1;min-width:0;display:flex;flex-direction:column}
