/* 天能电池深圳西运营中心ERP · 云进销存主题（附录 B 实测 Token 速查） */
:root{
  --jdy-rail-w:112px; --jdy-rail-bg:#ffffff; --jdy-rail-line:#d6e4f5; --jdy-rail-fg:#4a6484;
  --jdy-text:#0f2d43;
  --jdy-primary:#2b7de9; --jdy-primary-d:#1f6ad4; --jdy-line:#d6e4f5; --jdy-line-2:#eaf2fb;
  --jdy-bg:#ffffff; --jdy-card:#fff; --jdy-muted:#7b8a99; --jdy-head:#f0f6ff;
  --jdy-active:#e8f2ff; --jdy-sum:#fff8e1; --jdy-soft:#f7fbff;
  --jdy-ctrl-h:30px; --jdy-radius:4px; --jdy-danger:#e5493a; --jdy-ok:#12a15c; --jdy-warn:#f0a020;
}
*{box-sizing:border-box;}
html,body{height:100%;margin:0;}
body.newer-theme{
  font-family:"Microsoft YaHei","Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB",Arial,sans-serif;
  font-size:14px;color:var(--jdy-text);background:var(--jdy-bg);overflow:hidden;
}
button,input,select,textarea{font-family:inherit;font-size:14px;color:inherit;}
.hide{display:none !important;}

/* ---------------- 骨架 ---------------- */
.jdy-layout{display:flex;height:100vh;width:100vw;}
nav.jdy-rail{width:var(--jdy-rail-w);flex:0 0 var(--jdy-rail-w);background:var(--jdy-rail-bg);
  padding:7px 4px 0;border-right:1px solid var(--jdy-rail-line);position:relative;z-index:30;overflow-y:auto;}
.jdy-rail-brand{color:var(--jdy-rail-fg);font-size:12px;font-weight:600;text-align:center;padding:2px 0 10px;letter-spacing:1px;opacity:.95;}
.jdy-rail-item{display:flex;align-items:center;gap:6px;padding:0 0 0 7px;margin-bottom:4px;height:38px;
  border-radius:8px;font-size:14px;color:var(--jdy-rail-fg);cursor:pointer;user-select:none;white-space:nowrap;}
.jdy-rail-item svg{width:16px;height:16px;flex:0 0 16px;fill:currentColor;opacity:.9;}
.jdy-rail-item:hover{color:var(--jdy-primary);background:var(--jdy-active);}
.jdy-rail-item.active{color:var(--jdy-primary);background:var(--jdy-active);font-weight:600;}
.jdy-main{flex:1;min-width:0;display:flex;flex-direction:column;}

/* 悬停浮层 */
.jdy-flyout{position:absolute;left:var(--jdy-rail-w);top:0;z-index:40;background:#fff;border-radius:6px;
  box-shadow:0 6px 24px rgba(23,63,110,.16);padding:10px 6px;max-height:78vh;overflow:auto;
  min-width:236px;border:1px solid var(--jdy-line);display:flex;align-items:flex-start;gap:0;}
.jdy-flyout .popper-menu{padding:0 8px 4px;min-width:196px;max-width:280px;
  border-right:1px solid var(--jdy-line-2);align-self:stretch;}
.jdy-flyout .popper-menu:last-child{border-right:none;}
.jdy-flyout .menu-title{display:flex;align-items:center;gap:6px;
  padding:4px 8px 8px;color:#1f4470;font-size:13px;font-weight:600;white-space:nowrap;}
.jdy-flyout .menu-title svg{width:14px;height:14px;flex:0 0 14px;fill:var(--jdy-primary);}
.jdy-flyout .menu-title a{color:var(--jdy-primary);cursor:pointer;font-size:12px;margin-left:auto;font-weight:400;}
.jdy-flyout .route-link{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;font-size:13px;
  border-radius:6px;color:#33475b;}
.jdy-flyout .route-link:hover{background:var(--jdy-active);color:var(--jdy-primary);}
.jdy-flyout .route-link.on{background:var(--jdy-active);color:var(--jdy-primary);font-weight:600;}
.jdy-flyout .route-link .name{flex:1;white-space:nowrap;}
.jdy-flyout .route-link .rec{color:var(--jdy-primary);font-size:12px;border-left:1px solid var(--jdy-line);
  padding-left:8px;cursor:pointer;}
.jdy-flyout .route-link .star,.jdy-flyout .route-link .eye{color:#c3ccd6;font-size:12px;cursor:pointer;}
.jdy-flyout .route-link:hover .star,.jdy-flyout .route-link:hover .eye{color:#9aa7b4;}
.jdy-flyout .route-link .star.on{color:#f5a623;}

/* 顶部栏 */
.jdy-topbar{height:48px;background:#fff;border-bottom:1px solid var(--jdy-line);display:flex;align-items:center;
  gap:8px;padding:0 14px;flex:0 0 48px;}
.jdy-topbar .mod-tabs{display:flex;gap:2px;overflow:hidden;}
.jdy-topbar .mod-tab{padding:5px 12px;border-radius:14px;color:#3c4d5c;cursor:pointer;font-size:13px;}
.jdy-topbar .mod-tab.active{background:#eaf3fe;color:var(--jdy-primary);font-weight:600;}
.jdy-topbar .spacer{flex:1;}
.jdy-topbar .search{height:var(--jdy-ctrl-h);border:1px solid var(--jdy-line);border-radius:15px;padding:0 12px;width:240px;background:var(--jdy-soft);}
.jdy-topbar .btn{height:var(--jdy-ctrl-h);}
.jdy-topbar .who{color:var(--jdy-muted);font-size:12px;}

/* 页签 */
.jdy-tabs{height:36px;background:#fff;border-bottom:1px solid var(--jdy-line);display:flex;align-items:flex-end;gap:4px;padding:4px 10px 0;flex:0 0 36px;overflow-x:auto;}
.jdy-tab{display:flex;align-items:center;gap:8px;background:#eef4fc;color:#41556b;border-radius:6px 6px 0 0;
  padding:6px 12px;font-size:13px;cursor:pointer;white-space:nowrap;border:1px solid transparent;border-bottom:none;}
.jdy-tab.active{background:var(--jdy-active);color:var(--jdy-primary);font-weight:600;border-color:var(--jdy-line);}
.jdy-tab .x{color:#9aa7b4;font-size:12px;}
.jdy-tab .x:hover{color:var(--jdy-danger);}

/* 内容画布 */
.jdy-body{flex:1;min-height:0;overflow:auto;padding:10px;}

/* ---------------- 通用控件 ---------------- */
.btn{height:var(--jdy-ctrl-h);padding:0 12px;border:1px solid var(--jdy-line);background:#fff;border-radius:var(--jdy-radius);
  cursor:pointer;color:#33475b;display:inline-flex;align-items:center;gap:5px;}
.btn:hover{border-color:var(--jdy-primary);color:var(--jdy-primary);}
.btn.primary{background:var(--jdy-primary);border-color:var(--jdy-primary);color:#fff;}
.btn.primary:hover{background:var(--jdy-primary-d);color:#fff;}
.btn.ghost{border-color:transparent;background:transparent;color:var(--jdy-primary);}
.btn.sm{height:26px;padding:0 9px;font-size:13px;}
.btn[disabled]{opacity:.55;cursor:not-allowed;}
.inp,.sel,.ta{height:var(--jdy-ctrl-h);border:1px solid var(--jdy-line);border-radius:var(--jdy-radius);
  padding:0 8px;background:#fff;outline:none;min-width:0;}
.inp:focus,.sel:focus,.ta:focus{border-color:var(--jdy-primary);}
.ta{height:auto;padding:6px 8px;resize:vertical;width:100%;}
.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:11px;background:#eef2f6;color:#4b5f74;font-size:12px;}
.chip.ok{background:#e6f7ef;color:var(--jdy-ok);}
.chip.warn{background:#fef4e6;color:var(--jdy-warn);}
.chip.danger{background:#fdecea;color:var(--jdy-danger);}
.card{background:var(--jdy-card);border-radius:6px;border:1px solid var(--jdy-line);margin-bottom:10px;}
.card>.card-hd{height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:0 12px;border-bottom:1px solid var(--jdy-line-2);font-weight:600;}
.card>.card-bd{padding:12px;}
.grid{display:grid;gap:10px;}
.muted{color:var(--jdy-muted);}
.empty{padding:38px 12px;text-align:center;color:var(--jdy-muted);}

/* 表格 */
.tbl-wrap{overflow:auto;border:1px solid var(--jdy-line);border-radius:var(--jdy-radius);background:#fff;}
table.jdy{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;white-space:nowrap;}
table.jdy th{background:var(--jdy-head);font-weight:600;color:#41556b;position:sticky;top:0;z-index:2;
  border-bottom:1px solid var(--jdy-line);padding:7px 8px;text-align:left;}
table.jdy td{border-bottom:1px solid var(--jdy-line-2);padding:5px 8px;color:#2b3d4f;}
table.jdy tbody tr:nth-child(even){background:#fbfdff;}
table.jdy tbody tr:hover{background:#f2f7fe;}
table.jdy tfoot td{background:var(--jdy-head);font-weight:600;}
table.jdy td.num,table.jdy th.num{text-align:right;font-variant-numeric:tabular-nums;}
table.jdy input.cell{width:100%;height:26px;border:1px solid transparent;background:transparent;padding:0 4px;}
table.jdy input.cell:focus{border-color:var(--jdy-primary);background:#fff;}

/* 表头字段区 */
.form-head{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:10px 12px;background:#fff;
  border:1px solid var(--jdy-line);border-radius:6px;margin-bottom:8px;}
.form-head .fi>label{background:var(--jdy-soft);border-radius:3px;padding:2px 7px;line-height:22px;}
.form-head .fi{display:flex;align-items:center;gap:6px;}
.form-head .fi>label{color:#5b6b7c;white-space:nowrap;}
.form-head .fi>label .req{color:var(--jdy-danger);margin-right:2px;}
.form-head .inp{width:170px;}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 12px;background:#fff;
  border:1px solid var(--jdy-line);border-radius:6px;margin-bottom:8px;}
.toolbar .sep{width:1px;height:18px;background:var(--jdy-line);}
.foot-grid{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:8px 18px;padding:10px 12px;background:#fff;
  border:1px solid var(--jdy-line);border-radius:6px;margin-top:8px;}
.foot-grid .fi{display:flex;align-items:center;gap:6px;justify-content:flex-end;}
.foot-grid .fi>label{color:#5b6b7c;}
.foot-grid .inp{width:150px;text-align:right;}
.foot-grid .fi.total>label{font-weight:600;}
.foot-grid .fi.total .inp{color:var(--jdy-danger);font-weight:600;border-color:transparent;background:transparent;}

/* 条件区（报表） */
.cond{display:flex;flex-wrap:wrap;gap:10px 18px;padding:10px 12px;background:#fff;border:1px solid var(--jdy-line);
  border-radius:6px;margin-bottom:8px;}
.cond .fi{display:flex;align-items:center;gap:6px;}
.cond .fi>label{color:#5b6b7c;}

/* 档案页 */
.arch{display:grid;grid-template-columns:220px 1fr;gap:10px;}
.arch .tree{background:#fff;border:1px solid var(--jdy-line);border-radius:6px;padding:8px;}
.arch .tree .node{padding:6px 8px;border-radius:4px;cursor:pointer;color:#41556b;font-size:13px;}
.arch .tree .node.active,.arch .tree .node:hover{background:#eaf3fe;color:var(--jdy-primary);}
.arch .tree .node.child{padding-left:22px;}

/* 指标卡/看板 */
.metric{background:#fff;border:1px solid var(--jdy-line);border-radius:6px;padding:14px;}
.metric .k{color:var(--jdy-muted);font-size:13px;}
.metric .v{font-size:26px;font-weight:600;margin-top:6px;color:var(--jdy-text);}
.metric .s{color:var(--jdy-muted);font-size:12px;margin-top:4px;}
.bar-row{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px;}
.bar-row .bl{width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#41556b;}
.bar-row .bt{flex:1;height:10px;background:#eef2f6;border-radius:5px;overflow:hidden;}
.bar-row .bf{height:100%;background:linear-gradient(90deg,#63a4f0,#2b7de9);}
.bar-row .bv{width:110px;text-align:right;font-variant-numeric:tabular-nums;}
.counter-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;}
.counter{background:#fff;border:1px solid var(--jdy-line);border-radius:6px;padding:8px 10px;display:flex;
  justify-content:space-between;align-items:center;font-size:13px;cursor:pointer;}
.counter:hover{border-color:var(--jdy-primary);}
.counter .n{color:var(--jdy-primary);font-weight:600;}

/* 弹窗 */
.mask{position:fixed;inset:0;background:rgba(16,32,48,.32);display:flex;align-items:center;justify-content:center;z-index:80;}
.dlg{background:#fff;border-radius:6px;min-width:520px;max-width:900px;max-height:86vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.24);}
.dlg .hd{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--jdy-line);font-weight:600;}
.dlg .bd{padding:14px;}
.dlg .ft{padding:10px 14px;border-top:1px solid var(--jdy-line);display:flex;justify-content:flex-end;gap:8px;}
.dlg .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;}
.dlg .form-grid .fi{display:flex;flex-direction:column;gap:4px;}
.dlg .form-grid .fi>label{color:#5b6b7c;font-size:13px;}
.dlg .form-grid .inp,.dlg .form-grid .sel{width:100%;}
.picker-list{max-height:340px;overflow:auto;border:1px solid var(--jdy-line);border-radius:4px;}
.picker-list table{width:100%;font-size:13px;border-collapse:separate;border-spacing:0;}
.picker-list th{background:var(--jdy-head);position:sticky;top:0;padding:6px 8px;text-align:left;}
.picker-list td{padding:6px 8px;border-bottom:1px solid var(--jdy-line-2);}

/* 登录 */
.login-wrap{position:fixed;inset:0;background:linear-gradient(160deg,#ffffff 0%,#f2f8ff 45%,#e3efff 100%);
  display:flex;align-items:center;justify-content:center;z-index:200;}
.login-box{width:380px;background:#fff;border-radius:10px;padding:28px;border:1px solid var(--jdy-line);
  box-shadow:0 16px 44px rgba(43,125,233,.16);}
.login-box h1{font-size:20px;margin:0 0 4px;}
.login-box p{color:var(--jdy-muted);margin:0 0 18px;font-size:13px;}
.login-box .fi{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.login-box .inp{width:100%;height:36px;}
.login-box .btn{width:100%;height:38px;justify-content:center;}

/* ---------------- 单据页（对齐金蝶「购货单 / 销货单」版式） ---------------- */
.kd-bill{position:relative;display:flex;flex-direction:column;gap:8px;}
.kd-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:44px;padding:6px 10px;
  background:#fff;border:1px solid var(--jdy-line);border-radius:6px;}
.kd-toolbar .kd-title{font-weight:600;font-size:14px;color:var(--jdy-text);white-space:nowrap;}
.kd-toolbar .kd-tb-hint{font-size:12px;white-space:nowrap;}
.kd-toolbar .kd-sep{width:1px;height:18px;background:var(--jdy-line);}
.kd-toolbar .spacer{flex:1;}
.kd-toolbar .btn.sm{height:28px;}
.kd-more{color:#41556b;}
.kd-headrow{display:flex;gap:10px;align-items:stretch;}
.kd-headrow>#bill-head{flex:1;min-width:0;}
.kd-headrow>#bill-head>.form-head{margin-bottom:0;height:100%;}
.kd-headside{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;align-items:flex-end;justify-content:center;
  background:#fff;border:1px solid var(--jdy-line);border-radius:6px;padding:8px 10px;min-width:200px;}
.kd-headside .kd-billno{font-size:12px;color:var(--jdy-muted);}
.kd-headside .kd-billno b{color:var(--jdy-text);font-variant-numeric:tabular-nums;}
.kd-note{display:flex;gap:8px;align-items:flex-end;background:#fff;border:1px solid var(--jdy-line);
  border-radius:6px;padding:8px 10px;}
.kd-note .ta{flex:1;min-height:46px;}
.kd-note-ft{flex:0 0 auto;}
.kd-sum-row td{background:var(--jdy-sum) !important;color:#8a6100 !important;font-weight:600;}
.kd-sum-row td.kd-sum-lbl{text-align:left;color:#8a6100 !important;}
.kd-sum-note{background:var(--jdy-soft) !important;color:var(--jdy-muted) !important;
  font-weight:400 !important;font-size:12px;}
.kd-stamp{position:absolute;right:28px;bottom:132px;color:#e5493a;border:3px solid #e5493a;border-radius:6px;
  padding:6px 14px;font-size:20px;font-weight:700;letter-spacing:5px;transform:rotate(-12deg);opacity:.72;
  pointer-events:none;z-index:5;background:rgba(255,255,255,.55);}

/* 打印 */
.print-sheet{background:#fff;padding:24px;color:#000;}
.print-sheet h2{text-align:center;margin:0 0 4px;}
.print-sheet table{width:100%;border-collapse:collapse;font-size:12px;margin-top:10px;}
.print-sheet th,.print-sheet td{border:1px solid #999;padding:4px 6px;}

/* 提示条 */
.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:300;background:rgba(2,36,51,.92);
  color:#fff;padding:9px 16px;border-radius:6px;font-size:13px;max-width:70vw;box-shadow:0 8px 24px rgba(0,0,0,.25);}
.toast.err{background:rgba(200,60,48,.95);}
.toast.ok{background:rgba(18,161,92,.95);}

/* ---------------- 移动端（≥1025px 走 PC 骨架） ---------------- */
.m-shell{display:none;}
@media (max-width:1024px){
  .jdy-layout{display:none !important;}
  .m-shell{display:flex;flex-direction:column;height:100vh;}
  .m-top{height:48px;background:#fff;color:var(--jdy-text);border-bottom:1px solid var(--jdy-line);display:flex;align-items:center;gap:8px;padding:0 12px;}
  .m-top .t{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .m-body{flex:1;overflow:auto;padding:8px;background:var(--jdy-bg);}
  .m-tabbar{height:54px;background:#fff;border-top:1px solid var(--jdy-line);display:flex;}
  .m-tabbar .mt{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    color:#6b7c8d;font-size:11px;cursor:pointer;}
  .m-tabbar .mt.active{color:var(--jdy-primary);}
  .m-tabbar .mt svg{width:18px;height:18px;fill:currentColor;}
  .m-card{background:#fff;border:1px solid var(--jdy-line);border-radius:8px;padding:10px;margin-bottom:8px;}
  .m-card .l1{display:flex;justify-content:space-between;font-weight:600;}
  .m-card .l2{display:flex;justify-content:space-between;color:var(--jdy-muted);font-size:12px;margin-top:4px;}
  .m-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
  .m-footbar{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--jdy-line);display:flex;gap:8px;padding:8px;}
  .m-footbar .btn{flex:1;justify-content:center;}
  .counter-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .foot-grid{grid-template-columns:1fr;}
  .arch{grid-template-columns:1fr;}
  .dlg{min-width:auto;width:94vw;}
  .dlg .form-grid{grid-template-columns:1fr;}
  .jdy-body{padding:8px;}
  table.jdy{font-size:12px;}
}
@media print{
  .jdy-rail,.jdy-topbar,.jdy-tabs,.toolbar,.cond,.form-head{display:none !important;}
  .jdy-body{padding:0;}
}
