:root{
    --teal:#17b0a0;--teal-dark:#12907f;--teal-soft:#e8f8f5;
    --blue:#3f7ef7;--blue-soft:#eef3ff;--orange:#f5a623;--purple:#8b5cf6;
    --pink:#ec4899;--green:#22a06b;--red:#f04438;
    --text:#1f2733;--text-2:#5a6675;--text-3:#95a1b2;
    --line:#e9edf2;--bg:#f5f7fa;--radius:10px;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html,body{height:100%;}
  body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;}
  .app{display:flex;height:100vh;overflow:hidden;}

  .sidebar{width:240px;flex:0 0 240px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;height:100vh;}
  .brand{height:56px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line);flex:0 0 auto;}
  .brand .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--teal),#43cfc0);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;box-shadow:0 2px 6px rgba(23,176,160,.35);}
  .brand .name{font-weight:700;font-size:14.5px;}
  .brand>div:last-child{min-width:0;flex:1 1 auto;}
  .brand .name,.brand .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .brand .sub{font-size:11px;color:var(--text-3);}
  .sidebar-scroll{flex:1 1 auto;overflow-y:auto;padding:10px 10px 8px;}
  .sidebar-scroll::-webkit-scrollbar{width:6px;}
  .sidebar-scroll::-webkit-scrollbar-thumb{background:#dfe4ea;border-radius:3px;}
  .quick{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;}
  .quick-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--text);font-size:13.5px;transition:background .15s;}
  .quick-item:hover{background:#f4f6f9;}
  .quick-item .ic{width:20px;height:20px;flex:0 0 20px;display:flex;align-items:center;justify-content:center;}
  .quick-item .label{flex:1;}
  .quick-item .badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;}
  .quick-item .dot{width:7px;height:7px;border-radius:50%;background:var(--red);}
  .search-wrap{margin:0 2px 12px;display:flex;gap:6px;}
  .search-wrap .box{position:relative;flex:1;}
  .search-wrap .box>svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);opacity:.5;}
  .search-wrap input{width:100%;height:34px;border:1px solid var(--line);background:#f7f9fb;border-radius:8px;padding:0 10px 0 30px;font-size:12.5px;outline:none;transition:.15s;}
  .search-wrap input:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px var(--teal-soft);}
  .search-wrap .plus{width:34px;height:34px;flex:0 0 34px;border-radius:8px;border:1px solid var(--line);background:#f7f9fb;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2);font-size:18px;line-height:1;transition:.15s;}
  .search-wrap .plus:hover{background:var(--teal-soft);color:var(--teal);border-color:var(--teal);}
  .divider{height:1px;background:var(--line);margin:8px 4px 10px;}
  .menu-item{display:flex;align-items:center;gap:10px;padding:9.5px 10px;border-radius:8px;cursor:pointer;color:var(--text);font-size:13.5px;font-weight:500;transition:background .15s;user-select:none;}
  .menu-item:hover{background:#f4f6f9;}
  .menu-item .ic,.group-head .ic{width:20px;height:20px;flex:0 0 20px;display:flex;align-items:center;justify-content:center;}
  .group{margin-top:2px;}
  .group-head{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;user-select:none;font-size:13.5px;font-weight:600;color:var(--text);transition:background .15s;}
  .group-head:hover{background:#f4f6f9;}
  .group-head .title{flex:1;}
  .group-head .chev{transition:transform .2s;color:var(--text-3);display:flex;}
  .group.collapsed .group-head .chev{transform:rotate(-90deg);}
  .group-body{overflow:hidden;max-height:720px;transition:max-height .28s ease;}
  .group.collapsed .group-body{max-height:0;}
  .sub-item{display:flex;align-items:center;gap:8px;padding:7.5px 10px 7.5px 40px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--text-2);transition:.15s;position:relative;}
  .sub-item:hover{background:#f4f6f9;color:var(--text);}
  .sub-item::before{content:"";position:absolute;left:24px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:#cfd6df;}
  .sub-item.active{background:var(--teal-soft);color:var(--teal-dark);font-weight:600;}
  .sub-item.active::before{background:var(--teal);}
  .sub-item .tag{margin-left:auto;font-size:10.5px;padding:1px 6px;border-radius:6px;background:#eef2f6;color:var(--text-3);font-weight:500;}
  .sub-item .tag.warn{background:#fff4e5;color:#c47d00;}
  .sidebar-foot{flex:0 0 auto;border-top:1px solid var(--line);padding:10px 12px;display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:12.5px;cursor:pointer;}
  .sidebar-foot:hover{background:#f4f6f9;}
  .sidebar-foot .avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:700;}

  .content{flex:1 1 auto;height:100vh;overflow-y:auto;padding:20px 24px 32px;}
  .view{display:none;}
  .view.active{display:block;animation:fade .22s ease;}
  @keyframes fade{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:none;}}
  .page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;}
  .page-head h1{font-size:20px;font-weight:700;}
  .page-head p{color:var(--text-3);font-size:12.5px;margin-top:4px;}
  .page-head .date{color:var(--text-3);font-size:12.5px;}
  .stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
  .stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;position:relative;overflow:hidden;}
  .stat .k{font-size:12.5px;color:var(--text-2);}
  .stat .v{font-size:26px;font-weight:800;margin-top:8px;}
  .stat .d{font-size:11.5px;color:var(--text-3);margin-top:6px;}
  .stat .bar{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:0 3px 3px 0;}
  .stat.t1 .bar{background:var(--red);} .stat.t1 .v{color:var(--red);}
  .stat.t2 .bar{background:var(--blue);} .stat.t2 .v{color:var(--blue);}
  .stat.t3 .bar{background:var(--orange);} .stat.t3 .v{color:#d98a00;}
  .stat.t4 .bar{background:var(--teal);} .stat.t4 .v{color:var(--teal-dark);}
  .panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;}
  .panel h2{font-size:14.5px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
  .panel h2 .more{margin-left:auto;font-size:12px;color:var(--teal-dark);font-weight:500;cursor:pointer;}
  .two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start;}
  .todo-list{display:flex;flex-direction:column;}
  .todo{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px dashed var(--line);}
  .todo:last-child{border-bottom:none;}
  .todo .chk{width:18px;height:18px;border-radius:5px;border:1.5px solid #cfd6df;flex:0 0 18px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;transition:.15s;}
  .todo .chk:hover{border-color:var(--teal);}
  .todo .chk.done{background:var(--teal);border-color:var(--teal);}
  .todo .t{flex:1;font-size:13px;}
  .todo .t small{display:block;color:var(--text-3);font-size:11.5px;margin-top:3px;}
  .pill{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600;white-space:nowrap;}
  .pill.high{background:#fdecea;color:#c0392b;}
  .pill.mid{background:#fff4e5;color:#c47d00;}
  .pill.low{background:var(--teal-soft);color:var(--teal-dark);}
  .pill.crm{background:var(--blue-soft);color:#2b5fd9;}
  .quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
  .qcard{border:1px solid var(--line);border-radius:9px;padding:12px 10px;text-align:center;cursor:pointer;transition:.15s;background:#fbfcfe;}
  .qcard:hover{border-color:var(--teal);background:var(--teal-soft);transform:translateY(-1px);}
  .qcard .qi{width:34px;height:34px;border-radius:9px;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;color:#fff;}
  .qcard .qt{font-size:12.5px;font-weight:600;}
  .qcard .qs{font-size:11px;color:var(--text-3);margin-top:3px;}
  .inv-bars{display:flex;flex-direction:column;gap:11px;}
  .inv-row{display:flex;align-items:center;gap:10px;font-size:12.5px;}
  .inv-row .lb{width:64px;color:var(--text-2);flex:0 0 64px;}
  .inv-row .track{flex:1;height:9px;border-radius:5px;background:#eef2f6;overflow:hidden;}
  .inv-row .fill{height:100%;border-radius:5px;}
  .inv-row .num{width:78px;text-align:right;color:var(--text-3);font-size:11.5px;flex:0 0 78px;}
  .empty{background:#fff;border:1px dashed #d7dee7;border-radius:var(--radius);padding:56px 20px;text-align:center;color:var(--text-3);}
  .empty .big{font-size:34px;margin-bottom:10px;}
  .empty h3{color:var(--text-2);font-size:15px;margin-bottom:6px;}

  .inv-toolbar{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;flex-wrap:wrap;}
  .period{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
  .period .pg{width:34px;height:32px;border:0;background:#fff;cursor:pointer;color:var(--text-2);font-size:16px;line-height:1;}
  .period .pg:hover{background:#f4f6f9;color:var(--teal-dark);}
  .period .period-label{padding:0 16px;height:32px;display:flex;align-items:center;font-size:13px;color:var(--text-2);border-left:1px solid var(--line);border-right:1px solid var(--line);min-width:130px;justify-content:center;}
  .vtoggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
  .vtoggle button{border:0;background:#fff;padding:0 14px;height:32px;font-size:12.5px;color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:5px;transition:.15s;}
  .vtoggle button+button{border-left:1px solid var(--line);}
  .vtoggle button.on{background:var(--teal);color:#fff;font-weight:600;}
  .chk-line{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text-2);cursor:pointer;user-select:none;}
  .chk-line input{width:16px;height:16px;accent-color:var(--orange);cursor:pointer;}
  .tool-spacer{flex:1;}
  .inv-search{position:relative;}
  .inv-search input{height:34px;width:220px;border:1px solid var(--line);background:#f7f9fb;border-radius:8px;padding:0 12px 0 32px;font-size:12.5px;outline:none;transition:.15s;}
  .inv-search input:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px var(--teal-soft);}
  .inv-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);opacity:.5;}
  .inv-search.big{flex:1 1 620px;min-width:520px;max-width:860px;}
  .inv-search.big input{width:100%;height:46px;font-size:15px;padding:0 40px 0 46px;border:2px solid var(--teal);background:#fff;border-radius:12px;box-shadow:0 3px 12px rgba(23,176,160,.18);font-weight:500;letter-spacing:.2px;}
  .inv-search.big input::placeholder{color:#93a7b4;font-size:13.5px;font-weight:400;letter-spacing:0;}
  .inv-search.big input:focus{box-shadow:0 0 0 5px var(--teal-soft),0 4px 16px rgba(23,176,160,.24);}
  .inv-search.big svg{left:16px;width:19px;height:19px;color:var(--teal);opacity:1;}
  .inv-search.big .inv-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:#e8edf2;color:var(--text-2);font-size:17px;line-height:26px;text-align:center;cursor:pointer;user-select:none;}
  .inv-search.big .inv-clear:hover{background:var(--red);color:#fff;}
  .inv-search.big::after{content:"";position:absolute;left:2px;right:2px;bottom:-8px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--teal),rgba(23,176,160,0));opacity:.45;}
  .inv-layout{display:block;}
  .cate-drop{position:relative;flex:0 0 auto;}
  .cd-btn{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border:1.5px solid var(--line);background:#fff;border-radius:10px;font-size:13.5px;color:var(--text);cursor:pointer;transition:.15s;white-space:nowrap;}
  .cd-btn:hover{border-color:var(--teal);color:var(--teal-dark);}
  .cate-drop.open .cd-btn{border-color:var(--teal);color:var(--teal-dark);box-shadow:0 0 0 4px var(--teal-soft);}
  .cd-btn .cd-ic{display:flex;color:var(--purple);}
  .cd-btn .cd-cnt{font-size:11px;color:#fff;background:var(--teal);border-radius:8px;padding:1px 6px;font-weight:600;}
  .cd-btn .cd-arw{display:flex;color:var(--text-3);transition:transform .2s;}
  .cate-drop.open .cd-btn .cd-arw{transform:rotate(180deg);}
  .cd-panel{display:none;position:absolute;top:46px;left:0;z-index:120;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 36px rgba(20,35,60,.16);padding:10px;flex-direction:column;gap:8px;}
  .cate-drop.open .cd-panel{display:flex;}
  .cd-cols{display:flex;gap:8px;}
  .cd-col{display:flex;flex-direction:column;min-width:196px;max-height:52vh;overflow-y:auto;}
  .cd-col::-webkit-scrollbar{width:6px;}
  .cd-col::-webkit-scrollbar-thumb{background:#dfe4ea;border-radius:3px;}
  .cd-ttl{font-size:11px;color:var(--text-3);font-weight:700;padding:4px 8px 6px;letter-spacing:.4px;}
  .cd-it{display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;font-size:13px;color:var(--text-2);cursor:pointer;transition:.12s;white-space:nowrap;}
  .cd-it:hover{background:#f4f6f9;color:var(--text);}
  .cd-it.on{background:var(--teal-soft);color:var(--teal-dark);font-weight:600;}
  .cd-it .dotc{width:7px;height:7px;border-radius:2px;flex:0 0 7px;}
  .cd-it .c{margin-left:auto;font-size:11px;color:var(--text-3);font-weight:500;}
  .cd-div{width:1px;background:var(--line);}
  .cd-foot{border-top:1px solid var(--line);padding:8px 9px 2px;font-size:12.5px;color:var(--text-2);cursor:pointer;display:flex;align-items:center;gap:6px;}
  .cd-foot:hover{color:var(--teal-dark);}
  .cd-foot .gear{color:var(--orange);display:flex;}
  .node,.leaf{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:7px;font-size:13px;cursor:pointer;color:var(--text);transition:.13s;}
  .node{font-weight:600;}
  .node:hover,.leaf:hover{background:#f4f6f9;}
  .leaf{padding-left:28px;font-weight:400;color:var(--text-2);font-size:12.5px;}
  .node .arw{width:12px;color:var(--text-3);transition:transform .2s;display:flex;font-size:10px;}
  .node.collapsed .arw{transform:rotate(-90deg);}
  .node .dotc{width:7px;height:7px;border-radius:2px;flex:0 0 7px;}
  .node .cnt,.leaf .cnt{margin-left:auto;font-size:11px;color:var(--text-3);font-weight:500;}
  .children{overflow:hidden;max-height:600px;transition:max-height .25s ease;}
  .node.collapsed + .children{max-height:0;}
  .node.active,.leaf.active{background:var(--teal-soft);color:var(--teal-dark);font-weight:600;}
  .node.active .cnt,.leaf.active .cnt{color:var(--teal);}
  .inv-main{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;min-width:0;}
  .inv-scroll{overflow-x:auto;max-height:calc(100vh - 310px);overflow-y:auto;}
  .inv-table{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:auto;}
  .inv-table thead th{background:#f7f9fb;color:var(--text-2);font-weight:600;text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:2;}
  .inv-table tbody td{padding:8px 10px;border-bottom:1px solid #f1f4f8;white-space:normal;word-break:break-word;vertical-align:middle;}
  .inv-table .num,.inv-table .money,.inv-table .code{white-space:nowrap;}
  .inv-table tbody tr:hover{background:#f9fbfd;}
  .inv-table .num{text-align:right;font-variant-numeric:tabular-nums;}
  .inv-table .money{text-align:right;font-variant-numeric:tabular-nums;color:var(--teal-dark);font-weight:600;}
  .inv-table.nosecret .secret-col{display:none!important;}
  .inv-table .code{color:var(--text-3);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;}
  .inv-table .thumb{width:42px;height:42px;border-radius:6px;background:#f2f5f8;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .inv-table .thumb img{max-width:100%;max-height:100%;object-fit:contain;}
  .inv-table .thumb .noimg{font-size:10px;color:#c6cfd9;}
  .inv-table tfoot td{padding:12px;background:#fbfcfe;font-weight:700;border-top:1px solid var(--line);white-space:nowrap;position:sticky;bottom:0;}
  .name-cell{max-width:none;line-height:1.5;}
  #mdTable,#invTable{table-layout:fixed;}
  #mdTable thead th,#invTable thead th{padding:9px 7px;}
  #mdTable tbody td,#invTable tbody td{padding:7px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #mdTable tfoot td,#invTable tfoot td{padding:10px 7px;}
  #mdTable tfoot td:first-child,#invTable tfoot td:first-child{padding-right:12px;}
  #mdTable .code,#invTable .code{font-size:11px;}
  .code-tag{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;font-weight:600;
    font-variant-numeric:tabular-nums;vertical-align:middle;line-height:17px;
    color:#3d5568;background:#eef2f6;border:1px solid #e0e7ee;border-radius:5px;padding:0 4px;}
  .code-tag.pc{color:#0e8377;background:var(--teal-soft);border-color:#bfe7e0;}
  mark{background:#ffe9a8;color:inherit;border-radius:2px;}
  #mdTable .thumb,#invTable .thumb{width:32px;height:32px;}
  #mdTable .thumb .noimg,#invTable .thumb .noimg{font-size:9.5px;}
  #mdTable .name-cell,#invTable .name-cell,
  #mdTable .cat-cell,#invTable .cat-cell{line-height:1.45;max-height:36px;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;}
  #mdTable .ops{font-size:12px;}
  #mdTable .ops .opsep{margin:0 1px;}
  .inv-toolbar.tb2{gap:12px;padding:10px 14px;flex-wrap:wrap;}
  .inv-toolbar.tb2 .inv-search.big{flex:1 1 44%;width:auto;min-width:260px;max-width:50%;}
  .tb-row{display:flex;align-items:center;gap:10px;flex:1 1 340px;min-width:0;flex-wrap:nowrap;}
  .inv-toolbar.tb-wide .inv-search.big{flex:1 1 24%;min-width:230px;max-width:32%;}
  .inv-toolbar.tb-wide .tool-spacer{flex:0 1 0;}
  .inv-foot{padding:10px 14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;font-size:12.5px;color:var(--text-3);}
  .inv-foot .export{color:var(--teal-dark);font-weight:600;cursor:pointer;display:flex;align-items:center;gap:5px;}
  .inv-foot .export:hover{text-decoration:underline;}
  .grid-view{padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;max-height:calc(100vh - 310px);overflow-y:auto;}
  .gcard{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:.15s;}
  .gcard:hover{border-color:var(--teal);transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.06);}
  .gthumb{height:118px;background:#f7f9fb;display:flex;align-items:center;justify-content:center;position:relative;}
  .gthumb img{max-width:100%;max-height:100%;object-fit:contain;}
  .gthumb .noimg{font-size:11px;color:#c6cfd9;text-align:center;line-height:1.6;}
  .gmeta{padding:10px 12px;}
  .gname{font-size:12.5px;font-weight:600;line-height:1.45;height:36px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  .gsub{font-size:11px;color:var(--text-3);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .gnums{display:flex;justify-content:space-between;font-size:11.5px;color:var(--text-2);margin-top:7px;}
  .gnums .amt{color:var(--teal-dark);font-weight:700;}
  .gtag{position:absolute;top:6px;left:6px;font-size:10px;padding:1px 7px;border-radius:6px;background:rgba(255,255,255,.92);color:var(--text-2);font-weight:600;border:1px solid var(--line);}
  .login-mask{position:fixed;inset:0;z-index:99;background:linear-gradient(135deg,#0e5a52,#17b0a0 55%,#2fd0c0);display:flex;align-items:center;justify-content:center;padding:20px;}
  .login-card{background:#fff;border-radius:14px;width:380px;max-width:94vw;box-shadow:0 24px 60px rgba(0,0,0,.28);overflow:hidden;margin:auto;}
  .lg-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  .lg-logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--teal),#43cfc0);color:#fff;font-weight:800;font-size:20px;display:flex;align-items:center;justify-content:center;}
  .lg-t{font-weight:800;font-size:17px;}
  .lg-s{font-size:12px;color:var(--text-3);margin-top:2px;}
  .lg-tip{font-size:12.5px;color:var(--text-2);margin-bottom:14px;}
  .lg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px;}
  @media (max-width:760px){.lg-main{max-height:88vh;overflow-y:auto;}}
  .ac-av{width:30px;height:30px;border-radius:8px;color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;}
  .ac-name{font-weight:700;font-size:13.5px;margin-top:4px;}
  .ac-lv{font-size:11px;font-weight:600;width:fit-content;padding:1px 8px;border-radius:8px;}
  .ac-lv.lv0{background:#fdecea;color:#c0392b;} .ac-lv.lv1{background:var(--blue-soft);color:#2b5fd9;} .ac-lv.lv2{background:var(--teal-soft);color:var(--teal-dark);} .ac-lv.lv3{background:#f3efff;color:#6d4bd8;} .ac-lv.lv4{background:#fff4e5;color:#c47d00;} .ac-lv.lv5{background:#eef2f6;color:#5a6675;}
  .ac-user{font-size:11px;color:var(--text-3);font-family:ui-monospace,Menlo,monospace;}
  .pwd-row{display:flex;gap:10px;margin-top:14px;}
  .pwd-row input{flex:1;height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;font-size:13px;outline:none;}
  .pwd-row input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
  .btn-primary{border:0;background:var(--teal);color:#fff;font-size:13px;font-weight:600;padding:0 18px;height:38px;border-radius:8px;cursor:pointer;transition:.15s;height:38px;}
  .btn-primary:hover{background:var(--teal-dark);}
  .btn-ghost{border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;padding:0 18px;height:38px;border-radius:8px;cursor:pointer;}
  .btn-ghost:hover{border-color:var(--teal);color:var(--teal-dark);}
  .lg-hint{font-size:11.5px;color:#c47d00;background:#fff7e8;border-radius:6px;padding:6px 10px;margin-top:10px;}
  .lg-cancel{font-size:12px;color:var(--text-3);text-align:center;margin-top:12px;cursor:pointer;}
  .lg-cancel:hover{color:var(--teal-dark);}
  .lg-banner{background:linear-gradient(165deg,#0d443c,#10463f 45%,#155e54);padding:20px 22px 18px;color:#fff;display:flex;align-items:center;gap:14px;text-align:left;}
  .lg-banner .b-logo{width:48px;height:auto;flex:0 0 48px;display:block;}
  .lg-banner .b-txt{min-width:0;flex:1;}
  .lg-banner .b-t{font-weight:800;font-size:17.5px;line-height:1.35;white-space:nowrap;}
  .lg-banner .b-s{font-size:11.5px;opacity:.7;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .lg-banner .b-ver{display:inline-block;margin-top:7px;font-size:10.5px;font-family:ui-monospace,Menlo,monospace;letter-spacing:.3px;padding:1.5px 9px;border-radius:20px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2);opacity:.85;}
  .lg-main{padding:22px 24px 20px;}
  .lg-form{display:flex;flex-direction:column;gap:10px;}
  .lg-form input{height:40px;border:1px solid var(--line);border-radius:8px;padding:0 12px;font-size:13px;outline:none;width:100%;box-sizing:border-box;}
  .lg-form input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
  .lg-form .btn-primary{width:100%;height:40px;font-size:14px;margin-top:2px;}
  .lg-foot{font-size:11.5px;color:var(--text-3);margin-top:12px;line-height:1.6;}
  .sub-item.ro::after{content:"只读";margin-left:auto;font-size:10px;color:#c47d00;background:#fff4e5;border-radius:6px;padding:0 6px;font-weight:600;}
  .modal-mask{position:fixed;inset:0;background:rgba(15,23,32,.45);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;}
  .modal{background:#fff;border-radius:14px;width:680px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;}
  .modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);font-weight:700;font-size:15px;}
  .modal-x{cursor:pointer;color:var(--text-3);font-size:20px;line-height:1;padding:0 4px;}
  .modal-x:hover{color:var(--red);}
  .modal-b{padding:16px 20px;overflow-y:auto;}
  .frm-row{margin-bottom:12px;}
  .frm-row label,.frm-row3 label{display:block;font-size:12px;color:var(--text-2);margin-bottom:5px;font-weight:600;}
  .frm-row input,.frm-row3 input,.frm-row3 select{width:100%;height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:13px;outline:none;}
  .frm-row input:focus,.frm-row3 input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
  .frm-row3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;margin-bottom:12px;}
  .pm-tip{font-size:12px;color:var(--text-3);margin:4px 0 10px;}
  .pm-wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .pm-group{border:1px solid var(--line);border-radius:10px;padding:10px 12px;}
  .pm-gt{font-size:12px;font-weight:700;color:var(--teal-dark);margin-bottom:8px;padding-bottom:6px;border-bottom:1px dashed var(--line);}
  .pm-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;font-size:12.5px;}
  .pm-row.dim{color:var(--text-3);}
  .pm-lock{font-size:11px;color:#c47d00;}
  .pm-r label{margin-left:10px;color:var(--text-2);cursor:pointer;font-size:12px;}
  .pm-r input{accent-color:var(--teal);margin-right:3px;vertical-align:-1px;}
  .perm-overview{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px;}
  .role-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;min-height:132px;position:relative;overflow:hidden;}
  .role-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--teal);}
  .role-card.lv0:before{background:var(--red);} .role-card.lv1:before{background:var(--blue);} .role-card.lv2:before{background:var(--teal);}
  .role-card.lv3:before{background:var(--purple);} .role-card.lv4:before{background:var(--orange);} .role-card.lv5:before{background:#95a1b2;}
  .role-lv{font-size:11px;color:var(--text-3);font-weight:800;margin-bottom:6px;}
  .role-name{font-size:13.5px;font-weight:800;margin-bottom:6px;}
  .role-desc{font-size:11.5px;color:var(--text-2);line-height:1.55;}
  .role-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px;}
  .role-tags span{font-size:10.5px;color:var(--text-2);background:#f7f9fb;border:1px solid var(--line);border-radius:7px;padding:1px 6px;}
  .perm-matrix{width:100%;border-collapse:collapse;font-size:12px;}
  .perm-matrix th{background:#f7f9fb;color:var(--text-2);font-weight:700;text-align:left;padding:8px 9px;border-bottom:1px solid var(--line);white-space:nowrap;}
  .perm-matrix td{padding:8px 9px;border-bottom:1px solid #f1f4f8;line-height:1.45;vertical-align:top;}
  .perm-matrix tr:last-child td{border-bottom:none;}
  .scope-chip{display:inline-flex;align-items:center;border-radius:8px;padding:1px 7px;font-size:11px;font-weight:700;margin:1px 3px 1px 0;}
  .scope-chip.full{background:#fdecea;color:#c0392b;}
  .scope-chip.dept{background:var(--blue-soft);color:#2b5fd9;}
  .scope-chip.own{background:var(--teal-soft);color:var(--teal-dark);}
  .scope-chip.none{background:#eef2f6;color:var(--text-3);}
  .wx-map{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
  .wx-card{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:12px;min-height:112px;}
  .wx-card h3{font-size:13px;margin-bottom:8px;}
  .wx-card p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .modal-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line);}
  .ops .op{color:var(--teal-dark);cursor:pointer;font-weight:600;}
  .ops .op:hover{text-decoration:underline;}
  .ops .op.warn{color:#c0392b;} .ops .op.ok{color:#12907f;}
  .opsep{color:#cfd6df;margin:0 6px;}
  .pill.lv0{background:#fdecea;color:#c0392b;} .pill.lv1{background:var(--blue-soft);color:#2b5fd9;} .pill.lv2{background:var(--teal-soft);color:var(--teal-dark);} .pill.lv3{background:#f3efff;color:#6d4bd8;} .pill.lv4{background:#fff4e5;color:#c47d00;} .pill.lv5{background:#eef2f6;color:#5a6675;}
  .toast{position:fixed;left:50%;top:26px;transform:translate(-50%,-12px);background:#1f2733;color:#fff;font-size:13px;padding:10px 18px;border-radius:10px;z-index:200;opacity:0;transition:.25s;box-shadow:0 8px 24px rgba(0,0,0,.25);pointer-events:none;}
  .toast.show{opacity:1;transform:translate(-50%,0);}

  .hub-strip{display:grid;grid-template-columns:1.1fr .95fr .95fr;gap:12px;margin-bottom:16px;}
  .hub-node{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;position:relative;min-height:118px;overflow:hidden;}
  .hub-node:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--teal);}
  .hub-node.wx:before{background:var(--green);}
  .hub-node.brain:before{background:var(--blue);}
  .hub-node.notice:before{background:var(--orange);}
  .hub-k{font-size:12px;color:var(--text-3);font-weight:700;letter-spacing:.4px;margin-bottom:7px;}
  .hub-t{font-size:16px;font-weight:800;margin-bottom:6px;}
  .hub-d{font-size:12.5px;color:var(--text-2);line-height:1.65;}
  .hub-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
  .hub-tag{font-size:11px;border:1px solid var(--line);border-radius:7px;padding:2px 7px;color:var(--text-2);background:#fbfcfe;}
  .ops-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
  .ops-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:116px;cursor:pointer;transition:.15s;}
  .ops-card:hover{border-color:var(--teal);box-shadow:0 8px 20px rgba(20,35,60,.06);transform:translateY(-1px);}
  .ops-ic{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:10px;}
  .ops-title{font-weight:800;font-size:13.5px;margin-bottom:5px;}
  .ops-sub{font-size:12px;color:var(--text-3);line-height:1.55;}
  .v1-table{width:100%;border-collapse:collapse;font-size:12.5px;}
  .v1-table th{background:#f7f9fb;color:var(--text-2);font-weight:700;text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);}
  .v1-table td{padding:9px 10px;border-bottom:1px solid #f1f4f8;vertical-align:top;line-height:1.55;}
  .v1-table tr:last-child td{border-bottom:none;}
  .scope-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
  .scope-card{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:12px;}
  .scope-card h3{font-size:13px;margin-bottom:8px;}
  .scope-card p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .flow-list{display:flex;flex-direction:column;gap:8px;}
  .flow-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe;}
  .flow-num{width:24px;height:24px;border-radius:7px;background:var(--teal-soft);color:var(--teal-dark);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;}
  .flow-main{font-size:12.5px;line-height:1.45;}
  .flow-main small{display:block;color:var(--text-3);margin-top:2px;}
  .sync-state{font-size:11px;padding:2px 7px;border-radius:8px;font-weight:700;white-space:nowrap;}
  .sync-state.ok{background:var(--teal-soft);color:var(--teal-dark);}
  .sync-state.wait{background:#fff4e5;color:#c47d00;}
  .sync-state.lock{background:#fdecea;color:#c0392b;}
  .data-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
  .rule-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;}
  .rule-card h3{font-size:13.5px;margin-bottom:8px;}
  .rule-card ul{list-style:none;display:flex;flex-direction:column;gap:7px;}
  .rule-card li{font-size:12.5px;color:var(--text-2);line-height:1.55;display:flex;gap:8px;}
  .rule-card li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal);margin-top:7px;flex:0 0 6px;}
  .sheet-name{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;background:#f7f9fb;border:1px solid var(--line);border-radius:7px;padding:2px 6px;color:var(--text-2);white-space:nowrap;}
  .field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
  .field-card{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:12px;}
  .field-card h3{font-size:13px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
  .field-list{display:flex;gap:6px;flex-wrap:wrap;}
  .field-list span{font-size:11.5px;color:var(--text-2);background:#fff;border:1px solid var(--line);border-radius:7px;padding:2px 7px;}
  .data-pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
  .pipe-step{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:10px;min-height:94px;}
  .pipe-step strong{display:block;font-size:12.5px;margin-bottom:6px;}
  .pipe-step small{display:block;font-size:11.5px;color:var(--text-3);line-height:1.55;}
  .task-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
  .task-col{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;min-height:260px;}
  .task-col-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .task-col-h h3{font-size:13.5px;}
  .task-count{font-size:11px;color:var(--text-3);background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:1px 7px;}
  .task-card{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:10px;margin-bottom:8px;}
  .task-card:last-child{margin-bottom:0;}
  .task-card strong{display:block;font-size:12.5px;line-height:1.45;margin-bottom:5px;}
  .task-card small{display:block;color:var(--text-3);font-size:11.5px;line-height:1.5;margin-top:4px;}
  .task-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;}
  .task-actions{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap;}
  .task-btn{height:28px;border:1px solid #dbe4ec;border-radius:8px;background:#fff;color:#425363;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;padding:0 10px;}
  .task-btn.ok{background:var(--teal);border-color:var(--teal);color:#fff;}
  .task-btn.danger{border-color:#f3b6b6;color:#b42318;background:#fff5f5;}
  .task-rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
  .rule-mini{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;}
  .rule-mini h3{font-size:13.5px;margin-bottom:8px;}
  .rule-mini p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .status-line{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;}
  .status-step{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:10px;text-align:center;}
  .status-step b{display:block;font-size:12.5px;margin-bottom:4px;}
  .status-step span{font-size:11px;color:var(--text-3);}
  .eco-blueprint{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
  .eco-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:148px;position:relative;overflow:hidden;}
  .eco-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--teal);}
  .eco-card h3{font-size:13.5px;margin-bottom:8px;}
  .eco-card p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .eco-card .eco-tag{display:inline-block;margin-top:9px;font-size:11px;font-weight:700;border-radius:8px;padding:2px 7px;background:var(--teal-soft);color:var(--teal-dark);}
  .channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
  .channel-card{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:12px;}
  .channel-card h3{font-size:13px;margin-bottom:8px;}
  .channel-card p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .rollout{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
  .rollout-step{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:10px;min-height:112px;}
  .rollout-step b{display:block;font-size:12.5px;margin-bottom:6px;}
  .rollout-step small{display:block;color:var(--text-3);font-size:11.5px;line-height:1.55;}
  .sales-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px;}
  .sales-step{border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px 10px;min-height:104px;position:relative;}
  .sales-step:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--teal);border-radius:9px 9px 0 0;}
  .sales-step b{display:block;font-size:12.5px;margin-bottom:5px;}
  .sales-step small{display:block;font-size:11.5px;color:var(--text-3);line-height:1.55;}
  .sales-rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
  .sales-rule{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;}
  .sales-rule h3{font-size:13.5px;margin-bottom:8px;}
  .sales-rule p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .inv-center-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
  .inv-center-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:126px;position:relative;overflow:hidden;}
  .inv-center-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--purple);}
  .inv-center-card h3{font-size:13.5px;margin-bottom:7px;}
  .inv-center-card p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .inv-rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
  .inv-rule-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;}
  .inv-rule-card h3{font-size:13.5px;margin-bottom:8px;}
  .inv-rule-card p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .purchase-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px;}
  .purchase-step{border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px 10px;min-height:104px;position:relative;}
  .purchase-step:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--blue);border-radius:9px 9px 0 0;}
  .purchase-step b{display:block;font-size:12.5px;margin-bottom:5px;}
  .purchase-step small{display:block;font-size:11.5px;color:var(--text-3);line-height:1.55;}
  .purchase-rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
  .purchase-rule{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;}
  .purchase-rule h3{font-size:13.5px;margin-bottom:8px;}
  .purchase-rule p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .prod-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;}
  .prod-step{border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px 10px;min-height:104px;position:relative;}
  .prod-step:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--teal);border-radius:9px 9px 0 0;}
  .prod-step b{display:block;font-size:12.5px;margin-bottom:5px;}
  .prod-step small{display:block;font-size:11.5px;color:var(--text-3);line-height:1.55;}
  .prod-rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
  .prod-rule{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:128px;}
  .prod-rule h3{font-size:13.5px;margin-bottom:8px;}
  .prod-rule p{font-size:12px;color:var(--text-2);line-height:1.65;}
  .prod-rule .sync-state{display:inline-block;margin-top:8px;}
  .ps-report-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start;}
  .ps-report-link{font-size:11.5px;font-weight:800;color:var(--teal-dark);cursor:pointer;white-space:nowrap;}
  .ps-report-link:hover{text-decoration:underline;}
  .ps-report-mini{font-size:10.5px;color:var(--text-3);white-space:nowrap;}
  .ps-report-box{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start;margin-top:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe;padding:12px;}
  .ps-report-box .po-report-qr{transform:none;margin:0;position:static;}
  .ps-report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
  .ps-report-actions .ps-btn{height:34px;}
  .report-layout{display:grid;grid-template-columns:390px 1fr;gap:18px;align-items:start;}
  .phone-shell{width:360px;max-width:100%;margin:0 auto;background:#101820;border-radius:30px;padding:12px;box-shadow:0 18px 36px rgba(15,30,40,.18);}
  .phone-screen{background:#f5f7fa;border-radius:22px;overflow:hidden;min-height:650px;color:#15232d;}
  .phone-top{height:48px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #e8edf2;font-size:12px;color:#61717f;}
  .phone-top b{font-size:14px;color:#15232d;}
  .phone-body{padding:14px;}
  .scan-card{background:linear-gradient(135deg,#0e8377,#2f8ee0);color:#fff;border-radius:18px;padding:16px;margin-bottom:12px;}
  .scan-row{display:flex;align-items:center;gap:12px;}
  .qr-box{width:76px;height:76px;background:#fff;border-radius:14px;padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;flex:0 0 76px;}
  .qr-box i{display:block;background:#13252e;border-radius:2px;}
  .scan-card h3{font-size:16px;margin-bottom:5px;}
  .scan-card p{font-size:12px;line-height:1.55;opacity:.9;}
  .mini-card{background:#fff;border:1px solid #e5ebf1;border-radius:16px;padding:13px;margin-bottom:10px;}
  .mini-card h4{font-size:13px;margin-bottom:9px;display:flex;align-items:center;justify-content:space-between;}
  .mini-card h4 span{font-size:11px;color:#7b8996;font-weight:500;}
  .mini-task{border:1px solid #e7edf3;border-radius:12px;padding:10px;background:#fbfcfe;}
  .mini-task strong{display:block;font-size:13px;margin-bottom:4px;}
  .mini-task small{display:block;font-size:11.5px;color:#7b8996;line-height:1.45;}
  .report-req-card{border:1px solid #fecaca;border-left:5px solid #ef4444;background:#fff5f5;box-shadow:0 8px 18px rgba(239,68,68,.10);}
  .report-req-card h4{color:#991b1b;margin-bottom:7px;}
  .report-req-card h4 span{color:#ef4444;font-weight:800;}
  .report-req-text{white-space:pre-wrap;font-size:13px;line-height:1.6;color:#7f1d1d;font-weight:700;background:#fff;border:1px dashed #fca5a5;border-radius:12px;padding:10px;}
  .report-req-card.empty{border-color:#e5ebf1;border-left-color:#9aa8b6;background:#fff;}
  .report-req-card.empty h4{color:#425363;}
  .report-req-card.empty h4 span{color:#7b8996;font-weight:600;}
  .report-req-card.empty .report-req-text{color:#61717f;border-color:#e5ebf1;background:#fbfcfe;font-weight:600;}
  .report-log-empty{padding:18px;text-align:center;color:var(--text-3);font-size:12.5px;background:#fbfcfe;border:1px dashed #dbe4ec;border-radius:10px;}
  .mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .mini-field label{display:block;font-size:11px;color:#7b8996;margin-bottom:5px;}
  .mini-field input,.mini-field select{width:100%;height:38px;border:1px solid #dde5ec;border-radius:10px;padding:0 10px;background:#fff;font-size:13px;font-family:inherit;outline:none;}
  .mini-field input:focus,.mini-field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
  .mini-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
  .mini-btn{height:40px;border:1px solid #dbe4ec;border-radius:12px;background:#fff;color:#425363;font-weight:700;font-size:13px;font-family:inherit;cursor:pointer;}
  .mini-btn.primary{background:var(--teal);border-color:var(--teal);color:#fff;}
  .mini-submit-state{margin-top:10px;border-radius:12px;background:var(--teal-soft);color:var(--teal-dark);padding:9px 10px;font-size:12px;font-weight:700;display:none;}
  .mini-submit-state.on{display:block;}
  .report-role-bar{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:0 0 16px;display:grid;grid-template-columns:220px 1fr;gap:14px;align-items:center;}
  .report-role-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;}
  .report-role-title{font-size:13px;font-weight:800;margin-bottom:5px;}
  .report-role-desc{font-size:12px;color:var(--text-2);line-height:1.55;}
  .report-role-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
  .report-role-chips span{font-size:11px;color:var(--text-2);background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:3px 7px;white-space:nowrap;}
  .report-role-denied{display:none!important;}
  .mini-btn:disabled{opacity:.48;cursor:not-allowed;background:#f4f7fa;color:#93a0ad;}
  .report-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
  .report-step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;min-height:126px;}
  .report-step b{display:block;font-size:13px;margin-bottom:7px;}
  .report-step small{display:block;font-size:12px;color:var(--text-2);line-height:1.6;}
  .report-board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
  .report-board-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px;}
  .report-board-card h3{font-size:13.5px;margin-bottom:8px;}
  .report-board-card p{font-size:12px;color:var(--text-2);line-height:1.65;}
  @media (max-width:1180px){
    .stat-grid{grid-template-columns:repeat(2,1fr);}
    .two-col{grid-template-columns:1fr;}
    .inv-layout{grid-template-columns:1fr;}
    .report-layout{grid-template-columns:1fr;}
    .hub-strip,.ops-grid,.scope-grid,.perm-overview,.wx-map,.data-rule-grid,.field-grid,.data-pipeline,.task-board,.task-rule-grid,.status-line,.eco-blueprint,.channel-grid,.rollout,.sales-flow,.sales-rule-grid,.inv-center-grid,.inv-rule-grid,.purchase-flow,.purchase-rule-grid,.prod-flow,.prod-rule-grid,.report-flow,.report-board{grid-template-columns:1fr;}
    .report-role-bar{grid-template-columns:1fr;}
    .report-role-main{align-items:flex-start;flex-direction:column;}
    .report-role-chips{justify-content:flex-start;}
  }

  .modal.wide{width:940px;}
  .pd-detail-top{display:flex;gap:16px;align-items:flex-start;margin-bottom:6px;}
  .pd-detail-img{width:150px;height:150px;flex:0 0 150px;border:1px solid var(--line);border-radius:10px;background:#f7f9fb;display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .pd-detail-img img{max-width:100%;max-height:100%;object-fit:contain;}
  .pd-detail-img .noimg{font-size:11px;color:#c6cfd9;}
  .pd-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;}
  .pd-kv .kv{display:flex;gap:8px;font-size:12.5px;border-bottom:1px dashed #eef2f6;padding:5px 0;align-items:flex-start;}
  .pd-kv .k{color:var(--text-3);flex:0 0 104px;font-weight:600;white-space:nowrap;}
  .pd-kv .v{color:var(--text);flex:1;min-width:0;white-space:pre-wrap;word-break:break-word;line-height:1.55;}
  .pd-sec{font-size:12px;font-weight:700;color:var(--teal-dark);margin:16px 0 8px;letter-spacing:.4px;}
  .pd-log{width:100%;border-collapse:collapse;font-size:12px;}
  .pd-log th{background:#f7f9fb;padding:7px 8px;text-align:left;border-bottom:1px solid var(--line);color:var(--text-2);font-weight:600;}
  .pd-log td{padding:7px 8px;border-bottom:1px solid #f1f4f8;}
  /* ===== 材料编码（编码规则表全量导入 · 2026-10-06）===== */
  #cdTable{table-layout:fixed;}
  #cdTable thead th{padding:9px 7px;}
  #cdTable tbody td{padding:7px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #cdTable tfoot td{padding:10px 7px;}
  #cdTable tfoot td:first-child{padding-right:12px;}
  #cdTable .cell{white-space:normal;line-height:1.45;max-height:36px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;}
  #cdTable .code{font-size:11px;}
  #cdTableWrap{max-height:calc(100vh - 392px);}
  .lv-badge{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:6px;line-height:17px;white-space:nowrap;}
  .lv-1{background:#eef3ff;color:#2b5fd9;}
  .lv-2{background:#fff4e5;color:#c47d00;}
  .lv-3{background:var(--teal-soft);color:var(--teal-dark);}
  .lv-r{background:#f3e8ff;color:#7c3aed;}
  .lv-n{background:#e8edf2;color:#5a6675;}
  .use-b{display:inline-block;min-width:30px;text-align:center;font-weight:700;font-size:12px;padding:1px 6px;border-radius:8px;background:#e8f8f5;color:var(--teal-dark);}
  .use-b.zero{background:#f2f5f8;color:#a8b3c0;font-weight:500;}
  .cd-stat-strip{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
  .cd-sc{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 16px;min-width:118px;}
  .cd-sc .k{font-size:11.5px;color:var(--text-3);white-space:nowrap;}
  .cd-sc .v{font-size:18px;font-weight:800;margin-top:1px;line-height:1.25;}
  .cd-sc .v small{font-size:11px;font-weight:600;color:var(--text-3);margin-left:4px;}
  .cd-tree{padding:14px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 392px);overflow-y:auto;background:#fbfcfd;}
  .cd-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;flex:0 0 auto;}
  .cd-card-h{display:flex;align-items:flex-start;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);background:#fcfdfe;}
  .cd-badge{width:36px;height:36px;flex:0 0 36px;border-radius:10px;color:#fff;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;}
  .cd-card-t{font-size:14.5px;font-weight:700;}
  .cd-card-s{font-size:12px;color:var(--text-3);margin-top:3px;line-height:1.55;}
  .cd-card-stat{margin-left:auto;text-align:right;font-size:12px;color:var(--text-2);white-space:nowrap;line-height:1.7;}
  .cd-card-stat b{font-size:14px;color:var(--teal-dark);}
  .cd-body{padding:12px 16px 14px;}
  .cd-mid{margin-bottom:11px;}
  .cd-mid:last-child{margin-bottom:0;}
  .cd-mid-h{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:7px;flex-wrap:wrap;}
  .cd-mid-h .mcode{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;background:#f1f5f8;border:1px solid #e4eaf0;border-radius:5px;padding:0 5px;color:#3d5568;font-weight:600;}
  .cd-chips{display:flex;flex-wrap:wrap;gap:6px;}
  .cd-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;border:1px solid #e4eaf0;background:#f8fafc;border-radius:8px;padding:3px 8px;color:var(--text-2);}
  .cd-chip .cc{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#0e8377;font-weight:600;}
  .cd-chip b{font-size:10.5px;font-weight:700;color:var(--teal-dark);background:#e8f8f5;border-radius:7px;padding:0 5px;}
  .cd-chip.zero{background:#fbfcfd;color:#9aa6b4;}
  .cd-chip.zero b{background:#f1f4f8;color:#a8b3c0;}
  .cd-chip.off{background:#fafbfc;color:#b6c0cb;border-style:dashed;}
  .cd-chip.off .cc{color:#b6c0cb;}
  .cd-idx{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;}
  .cd-idx span{background:#f4f7fa;border:1px solid #e6ecf2;border-radius:7px;padding:3px 9px;color:var(--text-2);white-space:nowrap;}
  .cd-idx span i{font-style:normal;font-family:ui-monospace,Menlo,Consolas,monospace;color:#3d5568;font-weight:600;margin-right:5px;}
  .cd-idx span em{font-style:normal;color:var(--text-3);}
  .cd-note{background:#fffaf0;border:1px solid #ffe4b0;border-radius:10px;padding:11px 15px;font-size:12.5px;color:#8a6d1a;line-height:1.85;}
  .cd-note b{color:#b8860b;}
  .cd-note .nw{display:inline-block;font-family:ui-monospace,Menlo,Consolas,monospace;background:#fff4d9;border-radius:5px;padding:0 5px;margin:0 2px;}
  .frm-row select{width:100%;height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:13px;outline:none;background:#fff;}
  .frm-row select:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
  .cd-preview{margin-top:6px;padding:14px;border-radius:12px;background:#f7fbfa;border:1px dashed #bfe7e0;text-align:center;}
  .cd-preview .pc{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:24px;font-weight:800;color:var(--teal-dark);letter-spacing:1px;}
  .cd-preview .pt{font-size:12.5px;margin-top:7px;}
/*==BOM-CSS==*/
.bom-wrap{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;align-items:stretch;min-height:calc(100vh - 156px);}
.bom-side{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:block;height:auto;overflow:visible;}
.bom-search{position:relative;padding:12px;max-width:760px;}
.bom-search>svg{position:absolute;left:23px;top:23px;color:var(--text-3);pointer-events:none;}
.bom-search input{width:100%;height:38px;border:1.5px solid var(--line);background:#f7f9fb;border-radius:9px;padding:0 30px 0 34px;font-size:13px;outline:none;transition:.15s;}
.bom-search input:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px var(--teal-soft);}
.bom-search .clr{position:absolute;right:22px;top:26px;cursor:pointer;color:var(--text-3);font-size:17px;line-height:1;display:none;}
.bom-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 10px;}
.bom-chip{font-size:11.5px;padding:3px 9px;border-radius:11px;background:#f1f4f8;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:.12s;}
.bom-chip:hover{background:#e7ecf2;}
.bom-chip.on{background:var(--teal);color:#fff;font-weight:600;}
.bom-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px;max-height:156px;overflow:auto;padding:7px 12px 10px;border-top:1px solid var(--line);}
.bom-chips,.bom-list,.bom-side-foot{display:none!important;}
.bom-list::-webkit-scrollbar{width:6px;}
.bom-list::-webkit-scrollbar-thumb{background:#dfe4ea;border-radius:3px;}
.bom-it{padding:8px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent;margin:0;transition:.12s;min-width:0;}
.bom-it:hover{background:#f4f6f9;}
.bom-it.on{background:var(--teal-soft);border-color:var(--teal);}
.bom-it .no{font-size:12.5px;font-weight:700;color:var(--teal-dark);font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2px;}
.bom-it .nm{font-size:12px;color:var(--text-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bom-it .mt{font-size:10.5px;color:var(--text-3);margin-top:3px;display:flex;gap:8px;align-items:center;}
.bom-it .hd{color:var(--teal-dark);font-weight:600;}
.bom-it mark{background:#fff3a8;color:inherit;border-radius:2px;padding:0 1px;}
.bom-side-foot{padding:8px 12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--text-3);display:flex;justify-content:space-between;gap:8px;}
.bom-none{padding:26px 12px;text-align:center;color:var(--text-3);font-size:12.5px;line-height:1.8;}

.bom-main{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;height:calc(100vh - 250px);min-height:640px;}
.bom-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fafbfd;flex-wrap:wrap;}
.bom-bar .sp{flex:1 1 auto;}
.bom-bar .bno{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;font-weight:700;color:#fff;background:#0e8377;border-radius:6px;padding:4px 11px;letter-spacing:.3px;}
.bom-bar .bmeta{font-size:12px;color:var(--text-2);}
.bom-btn{height:32px;padding:0 14px;border-radius:8px;border:1px solid var(--teal);background:var(--teal);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;transition:.15s;font-family:inherit;}
.bom-btn:hover{background:var(--teal-dark);border-color:var(--teal-dark);}
.bom-btn.ghost{background:#fff;color:var(--text-2);border-color:var(--line);font-weight:500;}
.bom-btn.ghost:hover{background:#f2f5f9;color:var(--teal-dark);border-color:var(--teal);}
.bom-btn.dirty{background:#e2a51a;border-color:#d89708;color:#fff;}
.bom-btn.saved{background:#188c57;border-color:#188c57;color:#fff;}
.bom-stage{background:#eaeef3;padding:18px;overflow:auto;flex:1 1 auto;min-height:0;}
.bom-fit{position:relative;width:100%;}
.bom-holder{position:absolute;top:0;left:0;width:257mm;transform-origin:top left;}

.bom-paper{width:257mm;height:182mm;box-sizing:border-box;background:#fff;padding:6mm 6mm 5.5mm;box-shadow:0 3px 14px rgba(20,40,60,.16);display:flex;flex-direction:column;position:relative;overflow:hidden;color:#1d3340;text-align:left;outline:0;}
.bom-paper[contenteditable="true"]:focus{box-shadow:0 3px 14px rgba(20,40,60,.16),0 0 0 2px var(--teal-soft);}
.bp-in{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;zoom:.95;}
.bp-ttl{text-align:center;font-size:12pt;font-weight:700;letter-spacing:3px;padding:2.4mm 0 2mm;border-bottom:1.6px solid #2c4a54;margin-bottom:1.3mm;}
.bp-no{display:flex;justify-content:space-between;align-items:center;font-size:8pt;color:#8a9aa5;margin-bottom:2.2mm;letter-spacing:.2px;}
.bp-no b{color:#0e8377;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:9.5pt;letter-spacing:.6px;}
.bp-info{display:flex;gap:4.5mm;align-items:flex-start;margin-bottom:2.6mm;}
.bp-piccol{flex:0 0 auto;width:4.6mm;font-size:7.5pt;color:#58707e;letter-spacing:1px;line-height:1.3;text-align:center;padding-top:1.2mm;font-weight:600;}
.bp-picbox{height:34mm;flex:0 0 auto;border:1px solid #b9c6d0;border-radius:2px;display:flex;align-items:center;justify-content:center;background:#fafcfd;overflow:hidden;}
.bp-picbox.empty{width:34mm;border-style:dashed;background:#f7fafb;}
.bp-picbox img{width:100%;height:100%;object-fit:contain;display:block;}
.bp-noimg{font-size:8pt;color:#c2ccd5;letter-spacing:2px;}
.bp-meta{flex:1 1 auto;font-size:9pt;line-height:1.9;padding-top:.2mm;min-width:0;}
.bp-meta .line{display:flex;align-items:baseline;gap:2.2mm;white-space:nowrap;}
.bp-meta label{color:#58707e;flex:0 0 16mm;font-weight:600;font-size:8.5pt;letter-spacing:.3px;}
.bp-meta .val{font-weight:700;color:#12262f;}
.bp-meta .val.name{font-size:12.5pt;letter-spacing:.3px;}
.bp-meta .val.spec{font-size:10.5pt;color:#2a4550;font-weight:600;}
.bp-code{display:inline-block;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;font-size:11.5pt;color:#fff;background:#0e8377;border:1px solid #0b6d63;border-radius:4px;padding:.7mm 2.6mm;letter-spacing:.5px;}
.bp-code.pending{color:#b8351f;background:#fdeee7;border-color:#eec3b4;font-size:10pt;font-weight:600;}
.bp-sign{flex:0 0 auto;font-size:8.5pt;line-height:1.95;padding-top:.4mm;}
.bp-sign .line{display:flex;align-items:center;white-space:nowrap;}
.bp-sign label{color:#4a5f6c;}
.bp-blank{display:inline-block;min-width:15mm;border-bottom:1px dotted #b9c6d0;}
.bp-table{width:100%;border-collapse:collapse;font-size:7.8pt;table-layout:fixed;}
.bp-table thead th{background:#eef4f6;border:1px solid #b9c6d0;padding:.95mm .7mm;font-weight:700;color:#2c4a54;white-space:nowrap;letter-spacing:.2px;}
.bp-table tbody td{border:1px solid #dde5ec;padding:.75mm .7mm;height:6.1mm;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3;}
.bp-table tbody tr:nth-child(even) td{background:#fbfdfe;}
.bp-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.bp-table tbody td.nc{height:auto;min-height:6.1mm;overflow:visible;white-space:normal;padding:.55mm .7mm;}
.bp-table .clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  white-space:normal;line-height:1.24;word-break:break-word;max-height:2.55em;}
.bp-table td.bcode{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:7.2pt;color:#0e8377;font-weight:600;
  background:transparent;border:0;border-radius:0;padding:.75mm .7mm;letter-spacing:.25px;}
.bp-table td.total{font-weight:700;color:#0e8377;text-align:right;border-top:1.4px solid #0e8377;background:#f2faf8;}
.bp-table td[contenteditable="true"]{outline:0;cursor:text;}
.bp-table td[contenteditable="true"]:focus{background:#fff8d8!important;box-shadow:inset 0 0 0 1px #e2b84b;}
.bp-foot{margin-top:auto;padding-top:2.4mm;font-size:7.5pt;color:#8a9aa5;display:flex;justify-content:space-between;}
.bp-edit-tip{margin:0 0 1.2mm;font-size:7.2pt;color:#8a9aa5;text-align:right;}
.bp-simple{display:none!important;}
.bp-card{border:1px solid #d7e2e8;background:#fbfdfe;border-radius:3px;padding:4mm;min-height:38mm;}
.bp-card h3{font-size:10pt;margin:0 0 3mm;color:#2c4a54;letter-spacing:.5px;}
.bp-kv{display:grid;grid-template-columns:22mm 1fr;gap:2mm 3mm;font-size:9pt;line-height:1.45;}
.bp-kv label{color:#58707e;font-weight:700;}
.bp-kv span{font-weight:700;color:#12262f;word-break:break-word;}
.bp-note{font-size:8.5pt;line-height:1.8;color:#58707e;}

@media print{
  @page{size:JIS-B5 landscape;margin:0;}   /* 257×182mm；勿用裸 B5（那是 ISO 250×176） */
  html,body{height:auto!important;overflow:visible!important;background:#fff!important;}
  .app{display:block!important;height:auto!important;overflow:visible!important;}
  .sidebar{display:none!important;}
  .content{height:auto!important;overflow:visible!important;padding:0!important;}
  .view{display:none!important;}
  #view-bom{display:block!important;}
  .page-head,.bom-side,.bom-bar{display:none!important;}
  .bom-wrap{display:block!important;}
  .bom-main{border:none!important;border-radius:0!important;background:none!important;overflow:visible!important;height:auto!important;}
  .bom-stage{background:none!important;padding:0!important;overflow:visible!important;max-height:none!important;flex:none!important;min-height:0!important;}
  .bom-fit{position:static!important;height:auto!important;}
  .bom-holder{position:static!important;transform:none!important;width:auto!important;left:auto!important;}
  .bom-paper{width:257mm!important;height:182mm!important;box-sizing:border-box!important;box-shadow:none!important;
             page-break-inside:avoid;break-inside:avoid;overflow:hidden!important;
             -webkit-print-color-adjust:exact;print-color-adjust:exact;}  /* 保住表头底色/品牌色 */
}
/*==/BOM-CSS==*/
/*==PS-CSS==*/
.ps-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;
  height:calc(100vh - 156px);overflow:hidden;}
.ps-tool{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.ps-tool .lb{font-size:12.5px;color:var(--text-2);white-space:nowrap;}
.ps-tool .ps-sp{flex:1 1 auto;}
.ps-in{height:32px;width:200px;border:1.5px solid var(--line);border-radius:7px;padding:0 10px;font-size:12.5px;
  background:#fff;color:var(--text);outline:none;transition:.15s;font-family:inherit;}
.ps-in:focus{border-color:var(--teal);}
.ps-sel{height:32px;border:1.5px solid var(--line);border-radius:7px;padding:0 6px;font-size:12.5px;background:#fff;
  color:var(--text);outline:none;cursor:pointer;font-family:inherit;}
.ps-sel:focus{border-color:var(--teal);}
.ps-ck{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-2);cursor:pointer;
  user-select:none;padding:0 4px;white-space:nowrap;}
.ps-ck input{width:14px;height:14px;accent-color:var(--teal);cursor:pointer;margin:0;}
.ps-btn{height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);
  font-size:12.5px;cursor:pointer;font-family:inherit;transition:.15s;white-space:nowrap;}
.ps-btn:hover{border-color:var(--teal);color:var(--teal);}
.ps-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600;}
.ps-btn.pri:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;}
.ps-tit{display:flex;align-items:center;gap:9px;padding:11px 14px 10px;border-bottom:1px solid var(--line);}
.ps-tit .h{font-size:15px;font-weight:700;color:var(--text);letter-spacing:.3px;}
.ps-tit .bd{min-width:24px;height:22px;padding:0 8px;border-radius:11px;background:#e0463f;color:#fff;font-size:12px;
  font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;}
.ps-tit .sb{margin-left:auto;font-size:12px;color:var(--text-3);white-space:nowrap;}
.ps-tw{flex:1 1 auto;overflow:auto;min-height:0;}
.ps-table{min-width:1144px;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12.5px;}
.ps-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-weight:600;font-size:12px;
  text-align:left;padding:8px 7px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
.ps-table td{padding:7px;border-bottom:1px solid #eef2f5;color:var(--text);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;background:#fff;}
.ps-table tbody tr:nth-child(even) td{background:#fafcfd;}
.ps-table tbody tr:hover td{background:#f1fbf9;cursor:pointer;}
.ps-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.ps-table td.nc{white-space:normal;overflow:visible;}
.ps-cl2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:auto;
  line-height:1.32;word-break:break-word;max-height:2.64em;white-space:normal;}
.ps-w{display:inline-block;padding:2px 7px;border-radius:5px;font-size:11.5px;font-weight:600;line-height:1.55;
  white-space:nowrap;}
.ps-w.late{background:#fdecec;color:#c62828;}
.ps-w.soon{background:#fff4e5;color:#b06a12;}
.ps-w.ok{background:#e8f7ef;color:#1a7f4e;}
.ps-w.wait{background:#eef2f6;color:#64748b;}
.ps-w.none{background:#f2f4f6;color:#94a3b8;}
.ps-pg{display:flex;align-items:center;gap:6px;}
.ps-pbar{flex:1 1 auto;height:7px;min-width:26px;border-radius:4px;background:#e9eef2;overflow:hidden;}
.ps-pbar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#59b0e6,#1f7fd0);}
.ps-pbar i.full{background:linear-gradient(90deg,#4cc98a,#1e9d5c);}
.ps-pbar i.zero{background:#dfe6ec;}
.ps-pg em{font-style:normal;font-size:11px;color:var(--text-2);font-variant-numeric:tabular-nums;min-width:34px;
  text-align:right;}
.ps-stt{display:inline-flex;align-items:center;gap:5px;font-size:12px;}
.ps-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;}
.ps-dot.open{background:#2f8ee0;}
.ps-dot.wait{background:#b6c2cb;}
.ps-dot.done{background:#22a06b;}
.ps-dot.over{background:#8b5cf6;}
.ps-table td.done-n{color:#1a7f4e;font-weight:600;}
.ps-table td.left-n{color:#c0392b;font-weight:600;}
.ps-table td.zero-n{color:#b6c2cb;}
.ps-lk{color:var(--teal);font-weight:600;cursor:pointer;}
.ps-lk:hover{text-decoration:underline;}
.ps-foot{border-top:1px solid var(--line);padding:9px 14px;font-size:12.5px;color:var(--text-2);display:flex;
  gap:18px;flex-wrap:wrap;align-items:center;background:#fbfdfe;}
.ps-foot b{color:var(--text);font-variant-numeric:tabular-nums;}
.ps-foot .u{color:var(--text-3);font-size:11.5px;}
.ps-empty{padding:44px;text-align:center;color:var(--text-3);font-size:13px;}
.ps-modal{position:fixed;inset:0;background:rgba(15,30,40,.42);display:none;z-index:9999;align-items:center;
  justify-content:center;}
.ps-modal.on{display:flex;}
.ps-dlg{background:#fff;border-radius:12px;width:min(700px,92vw);max-height:84vh;overflow:auto;padding:18px 20px;}
.ps-dlg h3{margin:0 0 4px;font-size:15px;}
.ps-dlg .sub{font-size:12px;color:var(--text-3);margin-bottom:12px;}
.ps-dlg .x{float:right;cursor:pointer;color:var(--text-3);font-size:18px;line-height:1;}
.ps-dlg .x:hover{color:var(--red);}
.ps-kv{display:grid;grid-template-columns:98px 1fr;gap:7px 12px;font-size:13px;}
.ps-kv .k{color:var(--text-3);}
.ps-kv .v{color:var(--text);word-break:break-all;white-space:pre-wrap;}
/*==/PS-CSS==*/
/*==PU-CSS==*/
.pu-form-shell{height:calc(100vh - 156px);min-height:560px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:auto;}
.pu-form-toolbar{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:1px solid var(--line);background:#fbfdfe;position:sticky;top:0;z-index:3;flex-wrap:wrap;}
.pu-form-toolbar .lb{font-size:13px;font-weight:800;color:var(--text);white-space:nowrap;}
.pu-select,.pu-meta-in,.pu-line-in{border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-family:inherit;outline:none;font-weight:650;}
.pu-select{height:34px;min-width:210px;padding:0 9px;font-size:13px;}
.pu-meta-in{height:36px;width:100%;padding:0 10px;font-size:13px;}
.pu-line-in{width:100%;min-height:34px;padding:6px 7px;font-size:12.5px;line-height:1.35;resize:vertical;}
.pu-select:focus,.pu-meta-in:focus,.pu-line-in:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.pu-form-toolbar .grow{flex:1 1 auto;}
.pu-btn{height:36px;padding:0 15px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;transition:.15s;white-space:nowrap;}
.pu-btn:hover{border-color:var(--teal);color:var(--teal);}
.pu-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;}
.pu-btn.pri:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;}
.pu-btn.big{height:42px;padding:0 24px;font-size:15px;}
.pu-form-wrap{padding:14px;display:flex;justify-content:center;}
.pu-form-card{width:min(1180px,100%);border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden;}
.pu-form-head{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;padding:14px;border-bottom:1px solid var(--line);}
.pu-title{text-align:center;font-size:22px;font-weight:900;letter-spacing:5px;color:#111;padding:16px 14px 4px;}
.pu-field label{display:block;margin-bottom:5px;font-size:13px;font-weight:900;color:var(--text);}
.pu-lines-wrap{overflow:auto;max-height:calc(100vh - 318px);padding:0 14px 14px;position:relative;}
.pu-form-table{min-width:1040px;width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;}
.pu-form-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-size:12.5px;font-weight:800;text-align:center;border:1px solid #dce5ec;padding:7px 5px;}
.pu-form-table td{border:1px solid #e5ebf0;padding:5px;background:#fff;vertical-align:top;}
.pu-form-table td.seq{width:44px;text-align:center;font-weight:800;color:var(--text-2);padding-top:13px;}
.pu-form-actions{display:flex;gap:10px;justify-content:flex-end;padding:12px 14px;border-top:1px solid var(--line);background:#fbfdfe;flex-wrap:wrap;}
.pu-status{display:inline-flex;height:25px;align-items:center;padding:0 9px;border-radius:7px;font-size:12.5px;font-weight:850;}
.pu-status.draft{background:#eef2f6;color:#52616d;}
.pu-status.pending{background:#fff3da;color:#946200;}
.pu-status.done{background:#e8f7ef;color:#1a7f4e;}
.pu-note{font-size:12.5px;color:var(--text-3);font-weight:650;}
.pu-modal{position:fixed;inset:0;background:rgba(15,30,40,.42);display:none;z-index:9999;align-items:flex-start;justify-content:center;overflow:auto;padding:28px 12px;}
.pu-modal.on{display:flex;}
.pu-preview-box{background:#eef1f4;border-radius:10px;width:min(1040px,98vw);padding:12px;box-shadow:0 10px 28px rgba(15,30,40,.25);}
.pu-preview-bar{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.pu-preview-bar h3{margin:0;font-size:15px;color:#fff;background:var(--teal);border-radius:7px;padding:8px 12px;}
.pu-preview-bar .grow{flex:1 1 auto;}
.pu-preview-bar .pu-btn{background:#fff;}
.pu-print-area{display:none;}
.pu-stage{padding:14px;background:#eef1f4;}
.pu-paper{width:257mm;min-height:182mm;background:#fff;box-shadow:0 2px 14px rgba(15,30,40,.18);margin:0 auto 16px;padding:7mm 7mm 6mm;box-sizing:border-box;display:flex;flex-direction:column;color:#000;font-family:"宋体",SimSun,"Songti SC","Noto Serif SC",serif;}
.pu-ph{text-align:center;font-size:18pt;font-weight:700;letter-spacing:6px;padding-bottom:2mm;}
.pu-pmeta{display:flex;align-items:flex-end;font-size:10pt;padding-bottom:1.6mm;}
.pu-pmeta span:nth-child(1){flex:0 0 34%;}
.pu-pmeta span:nth-child(2){flex:1 1 auto;text-align:center;}
.pu-pmeta span:nth-child(3){flex:0 0 30%;text-align:right;}
.pu-ptb{flex:1 1 auto;width:100%;border-collapse:collapse;table-layout:fixed;font-size:9.4pt;}
.pu-ptb th,.pu-ptb td{border:1px solid #000;padding:1px 1.5mm;height:auto;vertical-align:middle;word-break:break-all;overflow:hidden;}
.pu-ptb thead th{text-align:center;font-weight:700;background:#f4f6f8;line-height:1.25;}
.pu-ptb td{text-align:center;}
.pu-ptb td.l{text-align:left;}
.pu-ptb td.r{text-align:right;font-family:"Arial Narrow",Arial,sans-serif;}
.pu-ptb tr.pu-out th,.pu-ptb tr.pu-out td{border:2px solid #000;}
.pu-pfoot{display:flex;align-items:flex-end;font-size:10pt;padding-top:2.2mm;gap:8mm;}
.pu-pfoot span:nth-child(1){flex:0 0 46%;}
.pu-bk{display:inline-block;width:44mm;border-bottom:1px solid #000;margin-left:2mm;}
@media (max-width:900px){
  .pu-form-head{grid-template-columns:1fr;}
  .pu-form-toolbar{align-items:flex-start;}
}
@media print{
  html,body{height:auto!important;overflow:visible!important;background:#fff!important;}
  .app{display:block!important;height:auto!important;overflow:visible!important;}
  .sidebar{display:none!important;}
  .content{height:auto!important;overflow:visible!important;padding:0!important;}
  .view{display:none!important;}
  body.pgv-purchase #view-bom{display:none!important;}
  .page-head{display:none!important;}
  body.pgv-purchase .pu-print-area{display:block!important;}
  .pu-print-area .pu-paper{width:257mm!important;height:182mm!important;min-height:182mm!important;box-sizing:border-box!important;box-shadow:none!important;margin:0!important;page-break-after:always;break-after:page;overflow:hidden!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pu-print-area .pu-paper:last-child{page-break-after:auto;break-after:auto;}
}
/*==/PU-CSS==*/
/*==FD-CSS==*/
.fd-shell{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.fd-tools{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fff;flex-wrap:wrap;}
.fd-tools .lb{font-size:13px;color:var(--text-2);font-weight:700;white-space:nowrap;}
.fd-in,.fd-sel{height:34px;border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-size:13px;font-weight:700;font-family:inherit;outline:none;}
.fd-in{width:310px;padding:0 10px;}
.fd-sel{padding:0 8px;max-width:170px;}
.fd-in:focus,.fd-sel:focus,.fd-cell-in:focus,.fd-area:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.fd-tools .grow{flex:1 1 auto;}
.fd-btn{height:34px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap;}
.fd-btn:hover{border-color:var(--teal);color:var(--teal);}
.fd-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;}
.fd-btn.pri:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;}
.fd-btn.danger:hover{border-color:#f04438;color:#f04438;}
.fd-btn:disabled{opacity:.45;cursor:not-allowed;background:#f7f9fb;}
.fd-tw{overflow:auto;max-height:calc(100vh - 230px);}
.fd-table{min-width:1334px;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;}
.fd-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-weight:700;font-size:12.5px;text-align:left;padding:8px 7px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
.fd-table td{padding:7px;border-bottom:1px solid #eef2f5;background:#fff;color:var(--text);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;}
.fd-table tbody tr:nth-child(even) td{background:#fafcfd;}
.fd-table tbody tr:hover td{background:#f1fbf9;}
.fd-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.fd-cell-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow:hidden;line-height:1.35;}
.fd-cell-in{width:100%;height:30px;border:1.5px solid var(--line);border-radius:6px;background:#fff;color:var(--text);font-size:12.5px;font-weight:650;font-family:inherit;outline:none;padding:0 6px;box-sizing:border-box;}
.fd-cell-in.num{text-align:right;font-variant-numeric:tabular-nums;}
.fd-cell-in:disabled,.fd-area:disabled{background:#f5f7f9;color:var(--text-3);cursor:not-allowed;}
.fd-status{display:inline-flex;height:23px;align-items:center;padding:0 8px;border-radius:6px;font-size:12px;font-weight:800;}
.fd-status.wait{background:#eef2f6;color:#52616d;}
.fd-status.ok{background:#e8f7ef;color:#1a7f4e;}
.fd-status.work{background:#eaf3ff;color:#2468b2;}
.fd-status.part{background:#fff3da;color:#946200;}
.fd-status.done{background:#edf0f2;color:#6b7280;}
.fd-risk{display:inline-flex;height:23px;align-items:center;padding:0 8px;border-radius:6px;font-size:12px;font-weight:800;}
.fd-risk.late{background:#fdecec;color:#c0392b;}
.fd-risk.soon{background:#fff3da;color:#946200;}
.fd-risk.ok{background:#e8f7ef;color:#1a7f4e;}
.fd-risk.none,.fd-risk.done{background:#eef2f6;color:#64748b;}
.fd-lks{display:flex;gap:8px;align-items:center;white-space:nowrap;}
.fd-lk{color:var(--teal);font-weight:800;cursor:pointer;}
.fd-lk:hover{text-decoration:underline;}
.fd-lk.del{color:#f04438;}
.fd-foot{border-top:1px solid var(--line);padding:9px 14px;font-size:12.5px;color:var(--text-2);display:flex;gap:14px;flex-wrap:wrap;}
.fd-foot b{color:var(--text);font-variant-numeric:tabular-nums;}
.fd-empty{padding:44px;text-align:center;color:var(--text-3);font-size:13px;font-weight:650;}
.fd-readonly{height:24px;display:inline-flex;align-items:center;padding:0 8px;border-radius:6px;background:#fff3da;color:#946200;font-size:12px;font-weight:800;}
.fd-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(15,30,40,.42);z-index:1000;padding:20px;}
.fd-modal.on{display:flex;}
.fd-dlg{width:min(980px,94vw);max-height:88vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 18px 55px rgba(15,30,40,.25);}
.fd-dh{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);}
.fd-dh h3{margin:0;font-size:16px;color:var(--text);}
.fd-dh p{margin:4px 0 0;color:var(--text-3);font-size:12.5px;font-weight:650;}
.fd-dh .grow{flex:1 1 auto;}
.fd-body{padding:14px 18px 18px;}
.fd-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 12px;margin-bottom:12px;}
.fd-k{font-size:12px;color:var(--text-3);font-weight:700;margin-bottom:3px;}
.fd-v{font-size:13px;color:var(--text);font-weight:700;word-break:break-word;}
.fd-area{width:100%;min-height:62px;border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-size:13px;font-weight:650;font-family:inherit;outline:none;padding:8px;box-sizing:border-box;resize:vertical;}
.fd-mini{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;margin-top:10px;}
.fd-mini th{background:#eff3f6;color:#41535f;text-align:left;padding:7px 6px;font-weight:700;border-bottom:1px solid #dde5eb;}
.fd-mini td{padding:7px 6px;border-bottom:1px solid #eef2f5;color:var(--text);font-weight:650;vertical-align:top;word-break:break-word;}
.fd-mini td.num{text-align:right;font-variant-numeric:tabular-nums;}
.fd-log{margin-top:12px;border:1px solid var(--line);border-radius:8px;overflow:hidden;}
.fd-log-add{display:flex;gap:8px;padding:10px;border-bottom:1px solid var(--line);background:#fbfdfe;}
.fd-log-add input{flex:1 1 auto;}
.fd-log-list{max-height:160px;overflow:auto;}
.fd-log-item{padding:9px 10px;border-bottom:1px solid #eef2f5;font-size:12.5px;}
.fd-log-item:last-child{border-bottom:0;}
.fd-log-item b{color:var(--text);}
.fd-log-item span{color:var(--text-3);margin-left:8px;}
@media(max-width:1180px){
  .fd-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fd-tw{max-height:none;}
}
/*==/FD-CSS==*/
/*==PCOLLAB-CSS==*/
.pu2-follow{display:inline-flex;align-items:center;gap:6px;margin-left:2px;flex-wrap:wrap;}
.pu2-follow .lb2{font-size:12.5px;color:var(--text-2);font-weight:700;white-space:nowrap;}
.pu2-sel,.pu2-in{height:32px;border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-size:12.5px;font-weight:700;font-family:inherit;outline:none;box-sizing:border-box;}
.pu2-sel{padding:0 6px;min-width:88px;}
.pu2-in{padding:0 8px;width:108px;}
.pu2-in.wide{width:150px;}
.pu2-sel:focus,.pu2-in:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.pu2-btn{height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--teal);background:var(--teal);color:#fff;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap;}
.pu2-btn:hover{background:var(--teal-dark);border-color:var(--teal-dark);}
.ivt-btn{height:34px;padding:0 13px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap;}
.ivt-btn:hover{border-color:var(--teal);color:var(--teal);}
.ivt-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;}
.ivt-btn.pri:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;}
.ivt-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:none;align-items:center;justify-content:center;background:rgba(15,28,38,.42);}
.ivt-modal.on{display:flex;}
.ivt-box{width:680px;max-width:94vw;max-height:88vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 18px 48px rgba(0,0,0,.24);padding:16px 18px;box-sizing:border-box;}
.ivt-box h3{margin:0 0 12px;font-size:16px;color:var(--text);display:flex;align-items:center;justify-content:space-between;}
.ivt-close{cursor:pointer;color:var(--text-3);font-size:20px;line-height:1;padding:0 4px;}
.ivt-close:hover{color:var(--text);}
.ivt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;}
.ivt-field label{display:block;font-size:12.5px;color:var(--text-2);font-weight:700;margin-bottom:4px;}
.ivt-field input,.ivt-field select{width:100%;height:34px;box-sizing:border-box;border:1.5px solid var(--line);border-radius:7px;padding:0 9px;font-size:13px;font-family:inherit;color:var(--text);outline:none;background:#fff;}
.ivt-field input:focus,.ivt-field select:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.ivt-field.span2{grid-column:1 / -1;}
.ivt-actions{display:flex;gap:8px;justify-content:flex-end;margin:14px 0 10px;}
.ivt-list{border-top:1px solid var(--line);padding-top:10px;}
.ivt-list .hd{font-size:12.5px;color:var(--text-2);font-weight:700;margin-bottom:6px;}
.ivt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;table-layout:fixed;}
.ivt-table th{background:#eff3f6;color:#41535f;font-weight:700;text-align:left;padding:6px 6px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
.ivt-table td{padding:6px;border-bottom:1px solid #eef2f5;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ivt-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.ivt-empty{padding:14px;text-align:center;color:var(--text-3);font-size:12.5px;}
.pick-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px;margin-top:10px;display:none;}
.pick-card.on{display:block;}
.pick-card h4{margin:0 0 8px;font-size:13px;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.pick-card h4 span{font-size:11px;color:var(--teal-dark);font-weight:800;background:var(--teal-soft);border-radius:999px;padding:2px 7px;white-space:nowrap;}
.pick-lines{display:flex;flex-direction:column;gap:7px;max-height:260px;overflow:auto;padding-right:2px;}
.pick-line{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:7px;align-items:center;border:1px solid #edf2f6;border-radius:9px;padding:8px;background:#fbfcfe;}
.pick-line b{display:block;font-size:12px;line-height:1.35;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pick-line small{display:block;margin-top:2px;font-size:10.5px;line-height:1.35;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pick-line input{width:100%;height:32px;border:1.5px solid var(--line);border-radius:7px;padding:0 7px;font-size:12.5px;font-weight:800;text-align:right;box-sizing:border-box;}
.pick-line input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px var(--teal-soft);}
.pick-state{display:none;margin-top:8px;font-size:12px;line-height:1.45;color:#0e8377;background:#e9f7f4;border:1px solid #bfe7df;border-radius:9px;padding:8px;}
.pick-state.on{display:block;}
/*==/PCOLLAB-CSS==*/
/*==PCO-CSS==*/
.pco-shell{height:calc(100vh - 156px);min-height:560px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);}
.pco-tools{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;background:#fff;}
.pco-tools .lb{font-size:13px;color:var(--text-2);font-weight:700;white-space:nowrap;}
.pco-in,.pco-sel{height:34px;border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-size:13px;font-weight:700;font-family:inherit;outline:none;}
.pco-in{width:250px;padding:0 10px;}
.pco-sel{padding:0 8px;max-width:160px;}
.pco-in:focus,.pco-sel:focus,.pco-field input:focus,.pco-field select:focus,.pco-line-in:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.pco-tools .grow{flex:1 1 auto;}
.pco-btn{height:34px;padding:0 13px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s;white-space:nowrap;}
.pco-btn:hover{border-color:var(--teal);color:var(--teal);}
.pco-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;}
.pco-btn.pri:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;}
.pco-btn:disabled{opacity:.45;cursor:not-allowed;border-color:var(--line);color:var(--text-3);background:#f7f9fb;}
.pco-main{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;}
.pco-list{min-width:0;display:grid;grid-template-rows:auto auto;border-bottom:1px solid var(--line);background:#fff;}
.pco-table-wrap{max-height:168px;overflow:auto;background:#fff;}
.pco-table{min-width:920px;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;}
.pco-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-weight:700;font-size:12.5px;text-align:left;padding:8px 7px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
.pco-table td{padding:8px 7px;border-bottom:1px solid #eef2f5;background:#fff;color:var(--text);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;}
.pco-table tbody tr:nth-child(even) td{background:#fafcfd;}
.pco-table tbody tr:hover td,.pco-table tr.on td{background:#f1fbf9;cursor:pointer;}
.pco-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.pco-status{display:inline-flex;height:23px;align-items:center;padding:0 8px;border-radius:6px;font-size:12px;font-weight:800;}
.pco-status.draft{background:#eef2f6;color:#52616d;}
.pco-status.pending{background:#fff3da;color:#946200;}
.pco-status.approved{background:#e8f7ef;color:#1a7f4e;}
.pco-detail{min-width:0;height:100%;min-height:0;overflow:auto;background:#fbfdfe;padding:14px;box-sizing:border-box;}
.pco-panel{min-height:100%;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-sizing:border-box;}
.pco-panel-hd{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:flex-start;}
.pco-panel-hd h3{margin:0;font-size:15px;color:var(--text);}
.pco-panel-hd p{margin:4px 0 0;color:var(--text-3);font-size:12.5px;font-weight:600;}
.pco-panel-hd .grow{flex:1 1 auto;}
.pco-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:12px 14px;border-bottom:1px solid var(--line);}
.pco-field label{display:block;margin-bottom:5px;font-size:13px;font-weight:800;color:var(--text);}
.pco-field input,.pco-field select{width:100%;height:36px;border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-size:13px;font-weight:650;font-family:inherit;outline:none;padding:0 9px;}
.pco-lines{padding:0 14px 14px;}
.pco-mini{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;margin-top:12px;}
.pco-mini th{background:#eff3f6;color:#41535f;text-align:left;padding:7px 6px;font-weight:700;border-bottom:1px solid #dde5eb;}
.pco-mini td{padding:7px 6px;border-bottom:1px solid #eef2f5;color:var(--text);font-weight:650;vertical-align:top;word-break:break-word;}
.pco-mini td.num{text-align:right;font-variant-numeric:tabular-nums;}
.pco-line-in{width:100%;min-height:30px;border:1.5px solid var(--line);border-radius:6px;background:#fff;color:var(--text);font-size:12.5px;font-weight:650;font-family:inherit;outline:none;padding:5px 6px;resize:vertical;box-sizing:border-box;}
.pco-line-in.num{text-align:right;font-variant-numeric:tabular-nums;}
.pco-field input:disabled,.pco-field select:disabled,.pco-line-in:disabled{background:#f5f7f9;color:var(--text-3);cursor:not-allowed;}
.pco-summary{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,460px);gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);background:#fbfdfe;font-size:12.5px;color:var(--text-2);}
.pco-stats{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.pco-summary b{color:var(--text);font-variant-numeric:tabular-nums;}
.pco-actions{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:8px;justify-self:end;width:100%;}
.pco-actions .pco-btn{width:100%;}
.pco-template-preview{border-top:1px solid var(--line);background:#eef1f4;padding:12px 14px 14px;}
.pco-template-preview h4{margin:0 0 10px;font-size:14px;font-weight:900;color:var(--text);}
.pco-preview-stage{max-height:560px;overflow:auto;background:#eef1f4;}
.pco-preview-stage .pco-paper{margin:0 auto 10px;}
.pco-full{position:fixed;inset:0;z-index:1000;display:none;background:rgba(238,241,244,.98);}
.pco-full.on{display:grid;grid-template-rows:auto 1fr;}
.pco-full-bar{height:56px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line);background:#fff;}
.pco-full-bar h3{margin:0;font-size:16px;font-weight:900;color:var(--text);}
.pco-full-bar .grow{flex:1 1 auto;}
.pco-full-stage{overflow:auto;padding:18px;background:#eef1f4;}
.pco-full-stage .pco-paper{margin:0 auto 18px;transform-origin:top center;}
.pco-empty{padding:42px;text-align:center;color:var(--text-3);font-size:13px;font-weight:650;}
.pco-print-area{display:none;}
.pco-stage{padding:12px;background:#eef1f4;}
.pco-paper{width:210mm;min-height:297mm;background:#fff;box-shadow:0 2px 14px rgba(15,30,40,.18);margin:0 auto 16px;padding:9mm 9mm 8mm;box-sizing:border-box;color:#000;font-family:"宋体",SimSun,"Songti SC","Noto Serif SC",serif;}
.pco-ph{text-align:center;font-size:21pt;font-weight:700;letter-spacing:4px;margin-bottom:3mm;}
.pco-addr{font-size:10.5pt;margin-bottom:3mm;white-space:nowrap;}
.pco-meta{display:grid;grid-template-columns:1fr 1fr;gap:1.2mm 8mm;font-size:10.5pt;margin-bottom:3mm;}
.pco-meta div{display:flex;min-height:6mm;align-items:flex-end;}
.pco-meta b{font-weight:700;white-space:nowrap;}
.pco-meta span{flex:1;border-bottom:1px solid #000;min-height:5mm;padding-left:2mm;}
.pco-sec{font-size:10.5pt;font-weight:700;margin:2mm 0;}
.pco-ptb{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9.5pt;}
.pco-ptb th,.pco-ptb td{border:1px solid #000;padding:1.2mm 1.4mm;vertical-align:middle;word-break:break-all;}
.pco-ptb th{text-align:center;background:#f4f6f8;font-weight:700;}
.pco-ptb td.c{text-align:center;}
.pco-ptb td.r{text-align:right;font-family:"Arial Narrow",Arial,sans-serif;}
.pco-total td{font-weight:700;}
.pco-terms{font-size:8.8pt;line-height:1.38;margin-top:2.2mm;}
.pco-terms p{margin:0 0 1mm;}
.pco-sign{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8mm;font-size:10.5pt;margin-top:4mm;}
.pco-sign span{display:inline-block;border-bottom:1px solid #000;min-width:36mm;}
@media (max-width:1180px){
  .pco-shell{height:auto;min-height:560px;}
  .pco-list{max-height:none;}
  .pco-table-wrap{max-height:220px;}
  .pco-summary{grid-template-columns:1fr;}
  .pco-actions{justify-self:stretch;max-width:none;}
}
@media print{
  html,body{height:auto!important;overflow:visible!important;background:#fff!important;}
  .app{display:block!important;height:auto!important;overflow:visible!important;}
  .sidebar{display:none!important;}
  .content{height:auto!important;overflow:visible!important;padding:0!important;}
  .view{display:none!important;}
  body.pgv-purchaseorder #view-bom{display:none!important;}
  .page-head{display:none!important;}
  body.pgv-purchaseorder .pco-print-area{display:block!important;}
  .pco-print-area .pco-paper{width:210mm!important;min-height:297mm!important;height:297mm!important;box-sizing:border-box!important;box-shadow:none!important;margin:0!important;overflow:hidden!important;page-break-after:always;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .pco-print-area .pco-paper:last-child{page-break-after:auto;break-after:auto;}
}
/*==/PCO-CSS==*/
/*==SO-CSS==*/
.so-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;
  height:calc(100vh - 156px);overflow:hidden;}
.so-tool{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.so-tool .lb{font-size:12.5px;color:var(--text-2);white-space:nowrap;}
.so-sp{flex:1 1 auto;}
.so-in{height:32px;width:200px;border:1.5px solid var(--line);border-radius:7px;padding:0 10px;font-size:12.5px;
  background:#fff;color:var(--text);outline:none;transition:.15s;font-family:inherit;}
#view-orderquery .so-tool .lb,#view-orderquery .so-in,#view-orderquery .so-sel,#view-orderquery .so-btn{font-size:13px;font-weight:700;}
.so-in:focus{border-color:var(--teal);}
.so-sel{height:32px;border:1.5px solid var(--line);border-radius:7px;padding:0 6px;font-size:12.5px;background:#fff;
  color:var(--text);outline:none;cursor:pointer;font-family:inherit;}
.so-sel:focus{border-color:var(--teal);}
.so-btn{height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);
  font-size:12.5px;cursor:pointer;font-family:inherit;transition:.15s;white-space:nowrap;}
.so-btn:hover{border-color:var(--teal);color:var(--teal);}
.so-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600;}
.so-btn.pri:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;}
.so-btn.ind{background:#6366f1;border-color:#6366f1;color:#fff;font-weight:600;}
.so-btn.ind:hover{background:#4f52e0;border-color:#4f52e0;color:#fff;}
.so-tit{display:flex;align-items:center;gap:9px;padding:11px 14px 10px;border-bottom:1px solid var(--line);}
.so-tit .h{font-size:15px;font-weight:700;color:var(--text);letter-spacing:.3px;}
.so-tit .bd{min-width:24px;height:22px;padding:0 8px;border-radius:11px;background:#e0463f;color:#fff;font-size:12px;
  font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;}
.so-tit .sb{margin-left:auto;font-size:12px;color:var(--text-3);white-space:nowrap;}
.so-tw{flex:1 1 auto;overflow:auto;min-height:0;}
.so-table{border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12.5px;width:100%;}
#view-orderquery .so-table{font-size:13px;font-weight:700;}
.so-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-weight:600;font-size:12px;
  text-align:left;padding:8px 7px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
#view-orderquery .so-table th{font-size:13px;font-weight:700;}
.so-table td{padding:7px;border-bottom:1px solid #eef2f5;color:var(--text);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;background:#fff;}
#view-orderquery .so-table td{font-weight:700;}
.so-table tbody tr:nth-child(even) td{background:#fafcfd;}
.so-table tbody tr:hover td{background:#f1fbf9;cursor:pointer;}
.so-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.so-table td.ct{text-align:center;}
.so-cl2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:auto;
  line-height:1.32;word-break:break-word;max-height:2.64em;white-space:normal;}
.so-w{display:inline-block;padding:2px 7px;border-radius:5px;font-size:11.5px;font-weight:600;line-height:1.55;
  white-space:nowrap;}
.so-w.done{background:#e8f7ef;color:#1a7f4e;}
.so-w.open{background:#e7f0fe;color:#2563eb;}
.so-w.part{background:#fff5e6;color:#b26a00;}
.so-w.new{background:#edeafe;color:#5b52d9;}
.so-tp{display:inline-block;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:700;white-space:nowrap;}
.so-tp.c{background:#e7f0fe;color:#2563eb;}
.so-tp.i{background:#edeafe;color:#5b52d9;}
.so-src{display:inline-block;padding:2px 7px;border-radius:9px;font-size:11.5px;font-weight:600;white-space:nowrap;}
.so-src.r{background:#e6f7f5;color:#0f9c8d;}
.so-src.d{background:#f1f4f6;color:#8a97a3;}
.so-code{display:inline-block;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:700;
  background:#eef2f5;color:#4a5b6b;white-space:nowrap;}
.so-pri{display:inline-block;padding:2px 7px;border-radius:9px;font-size:11.5px;font-weight:600;
  background:#e6f7f5;color:#0f9c8d;white-space:nowrap;}
.so-pri.u{background:#fdeceb;color:#d93c34;}
.so-table td.amt{color:#c0392b;font-weight:600;}
.so-imgs{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.so-imgs img{max-width:150px;max-height:84px;object-fit:contain;border:1px solid var(--line);
  border-radius:6px;background:#fff;padding:2px;}
.so-lspec{display:block;color:#8a97a3;font-size:11.5px;margin-top:1px;}
.so-limgrow td{border-top:0;padding-top:0;}
.so-chk{font-size:12pt;margin-right:2px;}
.so-chk.on{color:#d93c34;font-weight:700;}
.so-pspec{display:block;font-size:8.5pt;color:#555;}
.so-pimg{display:block;max-width:100%;max-height:16mm;object-fit:contain;margin-top:1mm;
  border:1px solid #ccc;background:#fff;}
.so-lk{color:var(--teal);font-weight:600;cursor:pointer;}
.so-lk:hover{text-decoration:underline;}
.so-foot{border-top:1px solid var(--line);padding:9px 14px;font-size:12.5px;color:var(--text-2);display:flex;
  gap:18px;flex-wrap:wrap;align-items:center;background:#fbfdfe;}
.so-foot b{color:var(--text);font-variant-numeric:tabular-nums;}
.so-foot .u{color:var(--text-3);font-size:11.5px;}
.so-empty{padding:44px;text-align:center;color:var(--text-3);font-size:13px;}
.co-entry-shell{height:calc(100vh - 156px);min-height:560px;}
.co-entry-form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0;height:100%;}
.co-entry-form{display:flex;flex-direction:column;}
.co-entry-form .so-form-wrap{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:14px;}
.co-preview-modal{background:#eef1f4;margin:8px -4px -4px;padding:10px;max-height:72vh;overflow:auto;}
.co-preview-modal .so-paper{margin:0 auto;}
.co-preview-modal .co-order-paper{min-height:auto;padding-bottom:7mm;}
@media (max-width:1280px){.co-entry-shell{height:auto;}}
.so-modal{position:fixed;inset:0;background:rgba(15,30,40,.42);display:none;z-index:9999;align-items:center;
  justify-content:center;}
.so-modal.on{display:flex;}
.so-dlg{background:#fff;border-radius:12px;width:min(880px,94vw);max-height:86vh;overflow:auto;padding:18px 20px;}
.so-dlg.co-preview-dlg{width:min(1120px,96vw);}
.so-dlg h3{margin:0 0 4px;font-size:15px;}
.so-dlg .sub{font-size:12px;color:var(--text-3);margin-bottom:12px;}
.so-dlg .x{float:right;cursor:pointer;color:var(--text-3);font-size:18px;line-height:1;}
.so-dlg .x:hover{color:var(--red);}
.so-kv{display:grid;grid-template-columns:104px 1fr;gap:7px 12px;font-size:13px;}
.so-kv .k{color:var(--text-3);}
.so-kv .v{color:var(--text);word-break:break-all;white-space:pre-wrap;}
.so-lines{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px;}
.so-lines th{background:#eff3f6;color:#41535f;font-size:11.5px;text-align:left;padding:6px 8px;font-weight:600;
  white-space:nowrap;}
.so-lines td{padding:6px 8px;border-bottom:1px solid #eef2f5;white-space:nowrap;}
.so-lines td.n{text-align:right;font-variant-numeric:tabular-nums;}
.so-form{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px;}
.so-form .f{display:flex;flex-direction:column;gap:4px;}
.so-form .f label{font-size:12px;color:var(--text-3);}
.so-frow{position:relative;}
.so-sug{position:absolute;z-index:20;background:#fff;border:1px solid var(--line);border-radius:8px;
  box-shadow:0 6px 18px rgba(15,30,40,.14);max-height:230px;overflow:auto;min-width:280px;display:none;}
.so-sug.on{display:block;}
.so-sug div{padding:6px 9px;font-size:12.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.so-sug div:hover,.so-sug div.sel{background:#e9fbf7;}
.so-sug .m{color:var(--text-3);font-size:11.5px;}
.co-entry-list{display:flex;flex-direction:column;gap:10px;}
.co-entry-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px 10px;align-items:end;
  border:1px solid #e5ebef;border-radius:8px;background:#fbfdfe;padding:10px;}
.co-entry-row .co-line-title{grid-column:span 12;display:flex;align-items:center;justify-content:space-between;
  font-size:12px;color:var(--text-3);}
.co-field{display:flex;flex-direction:column;gap:4px;min-width:0;}
.co-field label{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;}
.co-field input,.co-field select,.co-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);
  border-radius:6px;padding:0 6px;font-size:13px;font-weight:700;font-family:inherit;background:#fff;color:var(--text);outline:none;}
.co-field input,.co-field select{height:32px;}
.co-field textarea{min-height:56px;padding-top:6px;resize:vertical;line-height:1.35;}
.co-field input:focus,.co-field select:focus,.co-field textarea:focus{border-color:var(--teal);}
.co-span-1{grid-column:span 1}.co-span-2{grid-column:span 2}.co-span-3{grid-column:span 3}.co-span-4{grid-column:span 4}
.co-span-5{grid-column:span 5}.co-span-6{grid-column:span 6}.co-span-12{grid-column:span 12}
.co-note-field{grid-column:1 / span 6;}
.co-note-field textarea{height:96px;min-height:96px;}
.co-img-field{grid-column:span 6;}
.co-imgbox{display:flex;align-items:stretch;gap:10px;min-width:0;}
.co-img-frame{width:96px;height:96px;border:1px solid var(--line);border-radius:6px;background:#fff;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden;}
.co-img-frame .co-img{width:100%;height:100%;object-fit:contain;display:block;}
.co-imgbox input[type=file]{height:auto;min-height:32px;padding:5px;background:#fff;font-size:11.5px;align-self:flex-start;}
.co-img-help{font-size:11.5px;color:var(--text-3);line-height:1.35;margin-top:5px;}
.co-noimg{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:1px dashed #b9c5cc;
  color:var(--text-3);font-size:12px;background:#fbfdfe;}
@media (max-width:1320px){
  .co-entry-row{grid-template-columns:repeat(8,minmax(0,1fr));}
  .co-entry-row .co-line-title{grid-column:span 8;}
  .co-span-5,.co-span-6{grid-column:span 4}.co-span-12{grid-column:span 8}
  .co-note-field{grid-column:1 / span 4}.co-img-field{grid-column:span 4}
}
@media (max-width:860px){
  .co-entry-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .co-entry-row .co-line-title,.co-span-3,.co-span-4,.co-span-5,.co-span-6,.co-span-12{grid-column:span 2}
  .co-note-field,.co-img-field{grid-column:span 2}
}
.so-edit{width:100%;border-collapse:collapse;font-size:12.5px;}
.so-edit.co-entry-edit{min-width:1460px;}
.so-edit th{background:#eff3f6;color:#41535f;font-size:11.5px;padding:5px 6px;text-align:left;font-weight:600;
  white-space:nowrap;}
.so-edit td{padding:4px 5px;border-bottom:1px solid #eef2f5;}
.so-edit input,.so-edit select{width:100%;box-sizing:border-box;height:28px;border:1px solid var(--line);
  border-radius:6px;padding:0 6px;font-size:12px;font-family:inherit;background:#fff;color:var(--text);outline:none;}
.so-edit input:focus,.so-edit select:focus{border-color:var(--teal);}
.so-edit td.del{width:34px;text-align:center;}
.so-edit .co-img{width:44px;height:32px;object-fit:contain;border:1px solid var(--line);border-radius:4px;background:#fff;display:block;margin:auto;}
.so-edit .co-noimg{display:block;text-align:center;color:var(--text-3);font-size:12px;}
.so-dlg-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;}
#coPreviewBtn{height:40px;padding:0 24px;font-size:15px;font-weight:700;}
.co-order-paper{width:210mm;min-height:auto;padding:9mm 7mm 7mm;}
.co-prev-meta{display:grid;grid-template-columns:repeat(5,1fr);gap:3mm;font-size:10.5pt;margin-bottom:3mm;}
.co-prev-line{border:1px solid #222;margin-bottom:3mm;}
.co-prev-line h4{margin:0;padding:1.5mm 2mm;background:#f2f2f2;border-bottom:1px solid #222;font-size:10.5pt;}
.co-prev-base{display:grid;grid-template-columns:22mm 1fr 22mm 1fr;gap:0;font-size:9.5pt;}
.co-prev-base span{border-right:1px solid #bbb;border-bottom:1px solid #ddd;padding:1.4mm 1.6mm;min-height:6mm;word-break:break-all;}
.co-prev-base span:nth-child(4n){border-right:0;}
.co-prev-base b{font-weight:700;}
.co-prev-note-img{display:grid;grid-template-columns:1fr 42mm;gap:3mm;padding:2mm;font-size:9.5pt;}
.co-prev-note,.co-prev-photo{border:1px solid #bbb;background:#fff;min-height:28mm;padding:1.8mm;box-sizing:border-box;}
.co-prev-note b,.co-prev-photo b{display:block;margin-bottom:1.2mm;}
.co-prev-photo-box{height:23mm;border:1px dashed #b9c5cc;display:flex;align-items:center;justify-content:center;background:#fbfdfe;}
.co-prev-img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;}
.io-paper{width:257mm;min-height:182mm;padding:7mm 8mm 6mm;}

.so-print-area{display:none;}
.co-print-area,.io-print-area{display:none;}
.so-stage{padding:14px;background:#eef1f4;}
.so-paper{width:210mm;min-height:297mm;background:#fff;box-shadow:0 2px 14px rgba(15,30,40,.18);margin:0 auto 16px;
  padding:9mm 7mm 7mm;box-sizing:border-box;display:flex;flex-direction:column;color:#000;
  font-family:"宋体",SimSun,"Songti SC","Noto Serif SC",serif;}
.so-ph{text-align:center;font-size:20pt;font-weight:700;letter-spacing:6px;padding-bottom:3mm;}
.so-pmeta{display:flex;font-size:11pt;padding-bottom:1.5mm;gap:4mm;}
.so-pmeta span:nth-child(1){flex:0 0 32%;}
.so-pmeta span:nth-child(2){flex:1 1 auto;}
.so-pmeta span:nth-child(3){flex:0 0 30%;text-align:right;}
.so-pmeta2{display:flex;font-size:10.5pt;padding-bottom:1.5mm;gap:6mm;color:#333;}
.so-popt{display:flex;gap:14mm;font-size:11pt;padding:1.5mm 0 2mm;border-top:1px solid #999;
  border-bottom:1px solid #999;margin-bottom:2mm;white-space:nowrap;}
.so-ptb{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10.5pt;}
.so-ptb th,.so-ptb td{border:1px solid #000;padding:1.5px 2mm;height:7.2mm;vertical-align:middle;
  word-break:break-all;overflow:hidden;}
.so-ptb thead th{text-align:center;font-weight:700;background:#f4f6f8;line-height:1.25;}
.so-ptb td{text-align:center;}
.so-ptb td.l{text-align:left;}
.so-ptb td.r{text-align:right;font-family:"Arial Narrow",Arial,sans-serif;}
.so-pfoot{display:flex;align-items:flex-end;font-size:11pt;padding-top:4mm;gap:6mm;}
.so-pfoot span{flex:1 1 0;}
.so-bk{display:inline-block;width:38mm;border-bottom:1px solid #000;margin-left:2mm;}
.so-ptotal{text-align:right;font-size:11pt;font-weight:700;color:#c0392b;padding:2mm 1mm 0;}
.so-pnote{font-size:9.5pt;color:#333;padding-top:2mm;border-top:1px dashed #bbb;margin-top:3mm;}

/* ── 打印：客户订单 A4；内部订单 B5 横版 ─────────────────────
   ⚠ 多纸张互斥：@page 不支持选择器限定 → 由 head 末尾 pgSize 样式表动态决定；
   显示规则用 body 上的 pgv-* 标记限定。BOM 侧有 `#view-bom{display:block!important}`，
   必须写 body.pgv-xxx #view-bom{display:none!important}（特异度 1,1,1）压掉。 */
@media print{
  html,body{height:auto!important;overflow:visible!important;background:#fff!important;}
  .app{display:block!important;height:auto!important;overflow:visible!important;}
  .sidebar{display:none!important;}
  .content{height:auto!important;overflow:visible!important;padding:0!important;}
  .view{display:none!important;}
  body.pgv-custorder #view-bom,body.pgv-intorder #view-bom,body.pgv-orderquery #view-bom{display:none!important;}
  .page-head{display:none!important;}
  body.pgv-custorder .co-print-area{display:block!important;}
  body.pgv-intorder .io-print-area{display:block!important;}
  .co-print-area .so-paper{width:210mm!important;height:297mm!important;
    min-height:297mm!important;box-sizing:border-box!important;box-shadow:none!important;margin:0!important;
    page-break-after:always;break-after:page;overflow:hidden!important;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .io-print-area .so-paper{width:257mm!important;height:182mm!important;
    min-height:182mm!important;box-sizing:border-box!important;box-shadow:none!important;margin:0!important;
    page-break-after:always;break-after:page;overflow:hidden!important;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .co-print-area .so-paper:last-child,.io-print-area .so-paper:last-child{page-break-after:auto;break-after:auto;}
}
/*==/SO-CSS==*/
/*==DH-CSS==*/
.dh-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.dh-kpi-c{border:1px solid var(--line);border-radius:9px;background:#fbfcfe;padding:12px 14px;}
.dh-kpi-c b{display:block;font-size:21px;line-height:1.15;color:var(--teal);letter-spacing:-.3px;}
.dh-kpi-c span{display:block;font-size:11.5px;color:var(--text-2);margin-top:3px;}
.dh-bar{display:flex;align-items:center;gap:8px;height:68px;padding:0 2px;}
.dh-input{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 11px;font-size:12.5px;
  background:#fff;color:var(--text);outline:none;width:46%;flex:0 0 46%;}
.dh-input:focus{border-color:var(--teal);}
.dh-sel{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font-size:12.5px;background:#fff;color:var(--text);outline:none;}
.dh-btn{height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text-2);
  font-size:12.5px;padding:0 14px;cursor:pointer;white-space:nowrap;}
.dh-btn:hover{border-color:var(--teal);color:var(--teal);}
.dh-chk{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-2);white-space:nowrap;cursor:pointer;}
.dh-cnt{font-size:12px;color:var(--text-2);white-space:nowrap;}
.dh-table{table-layout:fixed;width:100%;}
.dh-open{padding:4px 9px;}
.dh-table th{background:#f4f7f9;text-align:left;padding:7px 8px;font-size:12px;color:var(--text-2);
  border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dh-table td{padding:7px 8px;border-bottom:1px solid #eef2f5;vertical-align:top;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dh-table tr:hover td{background:#f8fbfc;}
.dh-num{text-align:right;font-variant-numeric:tabular-nums;}
.dh-name{font-weight:700;color:var(--text);cursor:pointer;}
.dh-name:hover{color:var(--teal);text-decoration:underline;}
.dh-use{white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;line-height:1.45;color:var(--text-2);font-size:12px;}
.dh-scope{white-space:normal!important;line-height:1.5;font-size:11.5px;}
.dh-tag{display:inline-block;background:#eef4f6;border:1px solid #dde8ec;border-radius:6px;
  padding:1px 5px;margin:0 3px 2px 0;color:var(--text-2);font-size:11px;white-space:nowrap;}
.dh-tag.m{background:#e8f5f2;border-color:#bfe3db;color:#0d7a68;font-weight:700;}
.dh-tag.e{background:#eaf2fd;border-color:#cddffb;color:#2a5fa8;}
.dh-open{display:inline-block;background:var(--teal);color:#fff;border-radius:7px;padding:4px 11px;
  font-size:11.5px;font-weight:700;text-decoration:none;white-space:nowrap;}
.dh-open:hover{background:#13a094;}
.dh-noauth{display:inline-block;background:#f2f4f6;color:#9aa5ae;border-radius:7px;padding:4px 9px;
  font-size:11.5px;white-space:nowrap;}
.dh-frow{background:#fbfdfe!important;}
.dh-frow td{padding:9px 12px!important;white-space:normal!important;}
.dh-fbox{display:flex;flex-wrap:wrap;gap:4px;}
.dh-fchip{font-size:11px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:2px 7px;color:var(--text-2);}
.dh-empty{text-align:center;padding:34px 0;color:var(--text-2);font-size:13px;}
mark{background:#fff3b8;color:inherit;padding:0 1px;border-radius:2px;}
/*==/DH-CSS==*/
/*==SY-CSS==*/
.sy-sync{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:-4px 0 14px;}
.sy-card{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 12px;min-height:76px;}
.sy-card h3{margin:0 0 6px;font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sy-meta{font-size:11.5px;color:var(--text-2);line-height:1.55;}
.sy-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#22a06b;}
.sy-dot.warn{background:#f5a623}.sy-dot.bad{background:#f04438}.sy-dot.wait{background:#95a1b2}
@media(max-width:1180px){.sy-sync{grid-template-columns:repeat(2,minmax(0,1fr));}}
/*==/SY-CSS==*/
/*==MR-CSS==*/
.mr-root{display:none}
.mr-badge{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:2px 8px;border:1px solid rgba(23,176,160,.24);border-radius:999px;background:#e9fbf8;color:#087b71;font-size:11.5px;font-weight:700;vertical-align:middle;white-space:nowrap}
.mr-badge.empty{border-color:#d8dee8;background:#f7f9fb;color:#7b8796}
.mr-dot{width:6px;height:6px;border-radius:50%;background:#17b0a0;display:inline-block}
.mr-panel{margin:12px 0 0;border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}
.mr-panel-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13px;font-weight:800;color:var(--text)}
.mr-panel-s{font-size:11.5px;color:var(--text-2);font-weight:600}
.mr-mini-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}
.mr-mini-table th,.mr-mini-table td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mr-mini-table th{background:#f8fafc;color:var(--text-2);font-size:11.5px}
/*==/MR-CSS==*/
/*==PZPRICE-CSS==*/
.pz-price-status{display:none}
/*==/PZPRICE-CSS==*/

/*==SP-CSS==*/
.sp-board{display:grid;grid-template-rows:auto auto 1fr;height:calc(100vh - 156px);min-height:520px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.sp-kpis{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line);}
.sp-kpi{background:#fbfdfe;padding:13px 16px;min-width:0;}
.sp-kpi .n{font-size:24px;font-weight:800;line-height:1.05;color:var(--text);font-variant-numeric:tabular-nums;}
.sp-kpi .t{margin-top:5px;font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-tools{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.sp-tools .lb{font-size:12.5px;color:var(--text-2);white-space:nowrap;}
.sp-in{height:32px;width:260px;border:1.5px solid var(--line);border-radius:7px;padding:0 10px;font-size:12.5px;background:#fff;color:var(--text);outline:none;font-family:inherit;}
.sp-in:focus,.sp-sel:focus{border-color:var(--teal);}
.sp-sel{height:32px;border:1.5px solid var(--line);border-radius:7px;padding:0 6px;font-size:12.5px;background:#fff;color:var(--text);outline:none;cursor:pointer;font-family:inherit;max-width:150px;}
.sp-tools .grow{flex:1 1 auto;}
.sp-btn{height:32px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:12.5px;cursor:pointer;font-family:inherit;transition:.15s;white-space:nowrap;}
.sp-btn:hover{border-color:var(--teal);color:var(--teal);}
.sp-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600;}
.sp-btn.pri:hover{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff;}
.sp-btn.danger{border-color:#f1c4bd;color:#b8351f;background:#fff7f5;}
.sp-btn.danger:hover{border-color:#d84b37;color:#d84b37;background:#fff0ec;}
.sp-main{min-height:0;overflow:auto;}
.sp-table{min-width:1180px;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:12.5px;}
.sp-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-weight:600;font-size:12px;text-align:left;padding:8px 7px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
.sp-table td{padding:7px;border-bottom:1px solid #eef2f5;color:var(--text);background:#fff;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-table tbody tr:nth-child(even) td{background:#fafcfd;}
.sp-table tbody tr:hover td{background:#f1fbf9;cursor:pointer;}
.sp-table .code-tag{display:inline-flex;align-items:center;justify-content:center;min-width:70px;height:22px;border-radius:5px;background:#eef6f6;color:#23605d;font-weight:700;font-variant-numeric:tabular-nums;}
.sp-table .wrap{white-space:normal;word-break:break-word;line-height:1.32;max-height:2.7em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.sp-tag{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:5px;font-size:11.5px;font-weight:650;white-space:nowrap;}
.sp-tag.ok{background:#e8f7ef;color:#1a7f4e;}
.sp-tag.dev{background:#fff3da;color:#946200;}
.sp-tag.need{background:#fdecec;color:#bd2b26;}
.sp-tag.lv{background:#eef2f6;color:#455a64;}
.sp-link{color:var(--teal);font-weight:700;cursor:pointer;}
.sp-link:hover{text-decoration:underline;}
.sp-empty{padding:44px;text-align:center;color:var(--text-3);font-size:13px;}
.sp-stat{padding:9px 14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--text-2);background:#fbfdfe;display:flex;gap:18px;flex-wrap:wrap;}
.sp-stat b{color:var(--text);font-variant-numeric:tabular-nums;}
.sp-modal{position:fixed;inset:0;background:rgba(15,30,40,.42);display:none;z-index:9999;align-items:center;justify-content:center;}
.sp-modal.on{display:flex;}
.sp-dlg{background:#fff;border-radius:12px;width:min(720px,92vw);max-height:84vh;overflow:auto;padding:18px 20px;}
.sp-dlg h3{margin:0 0 4px;font-size:15px;}
.sp-dlg .sub{font-size:12px;color:var(--text-3);margin-bottom:12px;}
.sp-dlg .x{float:right;cursor:pointer;color:var(--text-3);font-size:18px;line-height:1;}
.sp-dlg .x:hover{color:var(--red);}
.sp-kv{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:13px;}
.sp-kv .k{color:var(--text-3);}
.sp-kv .v{color:var(--text);word-break:break-all;white-space:pre-wrap;}
.sp-catlist{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;font-size:12.5px;color:var(--text-2);}
.sp-catlist div{margin-top:5px;}
.sp-catlist b{color:var(--text);}
.sp-table mark{background:#fff1a8;color:inherit;padding:0 1px;border-radius:2px;}
.sp-edit-dlg{width:min(820px,94vw);}
.sp-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;margin-top:12px;}
.sp-form .full{grid-column:1/-1;}
.sp-field label{display:block;font-size:12.5px;color:var(--text-2);font-weight:700;margin-bottom:5px;}
.sp-field input,.sp-field select,.sp-field textarea{width:100%;border:1.5px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-size:13px;font-family:inherit;outline:none;}
.sp-field input,.sp-field select{height:36px;padding:0 10px;}
.sp-field textarea{min-height:82px;padding:9px 10px;resize:vertical;line-height:1.5;}
.sp-field input:focus,.sp-field select:focus,.sp-field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.sp-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);}
.sp-note-tip{margin-top:8px;color:var(--text-3);font-size:12px;line-height:1.6;}
@media (max-width:1100px){
  .sp-kpis{grid-template-columns:repeat(2,minmax(120px,1fr));}
  .sp-in{width:210px;}
  .sp-form{grid-template-columns:1fr;}
}
/*==/SP-CSS==*/







/*==HO-CSS==*/
.ops-card.ho-hidden,.qcard.ho-hidden{display:none!important;}
/*==/HO-CSS==*/
/*==HR-CSS==*/
.hr-empty{color:var(--text-3);font-size:13px;padding:12px 4px;}
.todo.hr-click{cursor:pointer;}
.todo.hr-click:hover .t{color:var(--teal-dark);}
.logo-img{width:28px;height:28px;object-fit:contain;display:block;}
.lg-logo-img{width:48px;height:48px;object-fit:contain;display:block;}
/*==/HR-CSS==*/
/*==CS-CSS==*/
.cs-tabs{height:44px;display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.cs-tab{height:34px;padding:0 15px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text-2);font-size:13px;font-weight:900;cursor:pointer;font-family:inherit;}
.cs-tab.on{background:var(--teal);border-color:var(--teal);color:#fff;}
.cs-wrap{height:calc(100vh - 206px);min-height:540px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;}
.cs-side,.cs-main{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.cs-side{padding:12px;box-sizing:border-box;overflow:auto;}
.cs-side h3{font-size:13px;margin:0 0 10px;color:var(--text);}
.cs-cat{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 9px;border-radius:7px;color:var(--text-2);font-size:12.5px;font-weight:850;cursor:pointer;}
.cs-cat.on,.cs-cat:hover{background:var(--teal-soft);color:var(--teal-dark);}
.cs-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;}
.cs-tools{height:68px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--line);box-sizing:border-box;}
.cs-tools .lb{font-size:13px;color:var(--text-2);font-weight:900;white-space:nowrap;}
.cs-in,.cs-sel{height:36px;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:13px;font-weight:750;font-family:inherit;outline:none;}
.cs-in{width:min(520px,46vw);padding:0 11px;}
.cs-sel{padding:0 8px;max-width:190px;}
.cs-in:focus,.cs-sel:focus,.cs-field input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.cs-sp{flex:0 1 0;}
.cs-btn{height:34px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;font-weight:850;cursor:pointer;font-family:inherit;white-space:nowrap;}
.cs-btn:hover{border-color:var(--teal);color:var(--teal);}
.cs-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;}
.cs-tw{overflow:auto;}
.cs-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;}
.cs-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-weight:850;font-size:12.5px;text-align:left;padding:8px 7px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
.cs-table td{padding:8px 7px;border-bottom:1px solid #eef2f5;color:var(--text);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;background:#fff;}
.cs-table tr:nth-child(even) td{background:#fbfcfd;}
.cs-table tr:hover td{background:#f1fbf9;}
.cs-table .cs-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.cs-num{text-align:right;font-variant-numeric:tabular-nums;}
.cs-analysis{min-width:1180px;table-layout:auto;}
.cs-analysis th,.cs-analysis td{min-width:96px;}
.cs-analysis th:first-child,.cs-analysis td:first-child{position:sticky;left:0;z-index:3;min-width:54px;}
.cs-analysis th:nth-child(2),.cs-analysis td:nth-child(2){position:sticky;left:54px;z-index:3;min-width:170px;}
.cs-analysis th:first-child,.cs-analysis th:nth-child(2){z-index:4;}
.cs-bars{display:flex;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--text-2);font-weight:800;}
.cs-bar{width:150px;height:10px;background:#eef2f6;border-radius:99px;overflow:hidden}.cs-bar i{display:block;height:100%;background:var(--teal);}
.cs-foot{height:42px;display:flex;align-items:center;gap:16px;padding:0 14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--text-2);font-weight:750;}
.cs-mask{letter-spacing:1px;font-weight:950;color:#64748b;}
.cs-modal{position:fixed;inset:0;background:rgba(15,30,40,.42);display:none;z-index:9999;align-items:center;justify-content:center;padding:20px;}
.cs-modal.on{display:flex;}
.cs-dlg{width:min(920px,94vw);max-height:88vh;overflow:auto;background:#fff;border-radius:12px;box-shadow:0 18px 48px rgba(15,30,40,.24);}
.cs-dh{height:54px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line);}.cs-dh h3{margin:0;font-size:16px;font-weight:950;color:var(--text);}.cs-dh .grow{flex:1;}
.cs-form{padding:14px 16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;}
.cs-field label{display:block;font-size:13px;font-weight:900;color:var(--text);margin-bottom:5px;}
.cs-field input,.cs-field .val{width:100%;min-height:36px;box-sizing:border-box;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:13px;font-weight:700;font-family:inherit;padding:8px;outline:none;}
.cs-field input:disabled{background:#f5f7f9;color:var(--text-3);}
.cs-all{grid-column:1/-1;}
.cs-mini{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;}.cs-mini th,.cs-mini td{border:1px solid #dfe6ec;padding:7px 6px;vertical-align:top;word-break:break-word;}.cs-mini th{background:#f3f6f8;color:#41535f;}
@media(max-width:1180px){.cs-wrap{grid-template-columns:190px minmax(0,1fr)}.cs-form{grid-template-columns:repeat(2,minmax(0,1fr));}}
/*==/CS-CSS==*/
/*==SOP-CSS==*/
.sop-wrap{height:calc(100vh - 156px);min-height:560px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;}
.sop-side,.sop-main{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.sop-side{padding:12px;box-sizing:border-box;}
.sop-side h3{font-size:13px;margin:0 0 10px;color:var(--text);}
.sop-cat{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 9px;border-radius:7px;color:var(--text-2);font-size:12.5px;font-weight:800;cursor:pointer;}
.sop-cat.on,.sop-cat:hover{background:var(--teal-soft);color:var(--teal-dark);}
.sop-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;}
.sop-tools{height:68px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--line);box-sizing:border-box;}
.sop-tools .lb{font-size:13px;color:var(--text-2);font-weight:800;white-space:nowrap;}
.sop-in,.sop-sel{height:36px;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:13px;font-weight:700;font-family:inherit;outline:none;}
.sop-in{width:min(520px,46vw);padding:0 11px;}
.sop-sel{padding:0 8px;}
.sop-in:focus,.sop-sel:focus,.sop-field input:focus,.sop-field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.sop-sp{flex:0 1 0;}
.sop-btn{height:34px;padding:0 12px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--text-2);font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;white-space:nowrap;}
.sop-btn:hover{border-color:var(--teal);color:var(--teal);}
.sop-btn.pri{background:var(--teal);border-color:var(--teal);color:#fff;}
.sop-tw{overflow:auto;}
.sop-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;}
.sop-table th{position:sticky;top:0;z-index:2;background:#eff3f6;color:#41535f;font-weight:800;font-size:12.5px;text-align:left;padding:8px 7px;border-bottom:1px solid #dde5eb;white-space:nowrap;}
.sop-table td{padding:8px 7px;border-bottom:1px solid #eef2f5;color:var(--text);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;background:#fff;}
.sop-table tr:nth-child(even) td{background:#fbfcfd;}
.sop-table tr:hover td{background:#f1fbf9;}
.sop-table .sop-prod{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.sop-foot{height:42px;display:flex;align-items:center;gap:16px;padding:0 14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--text-2);font-weight:750;}
.sop-status{display:inline-flex;height:23px;align-items:center;padding:0 8px;border-radius:6px;font-size:12px;font-weight:900;}
.sop-status.ok{background:#e8f7ef;color:#1a7f4e}.sop-status.draft{background:#eef2f6;color:#52616d}.sop-status.bad{background:#fdeaea;color:#c0392b}
.sop-modal{position:fixed;inset:0;background:rgba(15,30,40,.42);display:none;z-index:9999;align-items:flex-start;justify-content:center;overflow:auto;padding:28px 12px;}
.sop-modal.on{display:flex;}
.sop-dlg{width:min(1120px,96vw);background:#fff;border-radius:10px;box-shadow:0 18px 48px rgba(15,30,40,.22);overflow:hidden;}
.sop-dlg-h{height:54px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--line);}
.sop-dlg-h h3{margin:0;font-size:16px;font-weight:900;color:var(--text);}.sop-dlg-h .grow{flex:1;}
.sop-form{padding:14px 16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;}
.sop-field label{display:block;font-size:13px;font-weight:900;color:var(--text);margin-bottom:5px;}
.sop-field input,.sop-field textarea,.sop-field select{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:8px;background:#fff;color:var(--text);font-size:13px;font-weight:650;font-family:inherit;padding:8px;outline:none;}
.sop-field textarea{min-height:70px;resize:vertical;}
.sop-wide{grid-column:span 2}.sop-all{grid-column:1/-1;}
.sop-mini{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px;}
.sop-mini th,.sop-mini td{border:1px solid #dfe6ec;padding:7px 6px;vertical-align:top;word-break:break-word;}.sop-mini th{background:#f3f6f8;color:#41535f;}
.sop-paper-holder{display:none;}
.sop-paper{width:210mm;min-height:297mm;background:#fff;color:#000;margin:0 auto;padding:10mm;box-sizing:border-box;font-family:"宋体",SimSun,serif;}
.sop-paper h2{text-align:center;margin:3mm 0;font-size:20pt;letter-spacing:3px;}
.sop-pmeta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border:1px solid #000;border-bottom:0;font-size:10.5pt;}
.sop-pmeta div{border-right:1px solid #000;border-bottom:1px solid #000;padding:2mm}.sop-pmeta div:nth-child(3n){border-right:0}
.sop-ptb{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10pt}.sop-ptb th,.sop-ptb td{border:1px solid #000;padding:1.8mm;vertical-align:top;word-break:break-word}.sop-ptb th{background:#f3f3f3}
.sop-sign{display:grid;grid-template-columns:1fr 1fr;margin-top:8mm;font-size:11pt;gap:20mm}.sop-sign span{display:inline-block;border-bottom:1px solid #000;min-width:42mm}
@media print{body.pgv-sop .view{display:none!important}body.pgv-sop #view-sop{display:block!important}body.pgv-sop #view-sop>.page-head,body.pgv-sop .sop-wrap,body.pgv-sop .sop-modal{display:none!important}body.pgv-sop .sop-paper-holder{display:block!important}.sop-paper{box-shadow:none!important;margin:0!important;width:210mm!important;min-height:297mm!important;height:297mm!important;overflow:hidden!important;page-break-after:always;break-after:page}}
/*==/SOP-CSS==*/

/*==PO-CSS==*/
.po-wrap{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;align-items:stretch;min-height:calc(100vh - 156px);}
.po-side{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:block;height:auto;overflow:visible;}
.po-search{position:relative;padding:12px;max-width:760px;}
.po-search>svg{position:absolute;left:23px;top:23px;color:var(--text-3);pointer-events:none;}
.po-search input{width:100%;height:38px;border:1.5px solid var(--line);background:#f7f9fb;border-radius:9px;padding:0 30px 0 34px;font-size:13px;outline:none;transition:.15s;}
.po-search input:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px var(--teal-soft);}
.po-search .clr{position:absolute;right:22px;top:26px;cursor:pointer;color:var(--text-3);font-size:17px;line-height:1;display:none;}
.po-suggest{display:none;position:absolute;left:12px;right:12px;top:54px;z-index:20;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 30px rgba(28,45,64,.16);max-height:284px;overflow:auto;padding:6px;}
.po-sg{display:grid;grid-template-columns:minmax(94px,132px) minmax(72px,100px) minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:12px;color:var(--text-2);}
.po-sg:hover,.po-sg.on{background:var(--teal-soft);}
.po-sg-no{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:800;color:var(--teal-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.po-sg-cust{font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.po-sg-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.po-sg-date{font-size:11px;color:var(--text-3);white-space:nowrap;}
.po-sg mark{background:#fff3a8;color:inherit;border-radius:2px;padding:0 1px;}
.po-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 10px;border-bottom:1px solid var(--line);}
.po-chip{font-size:11.5px;padding:3px 9px;border-radius:11px;background:#f1f4f8;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:.12s;}
.po-chip:hover{background:#e7ecf2;}
.po-chip.on{background:var(--teal);color:#fff;font-weight:600;}
.po-list{flex:1 1 auto;overflow-y:auto;padding:7px;}
.po-list::-webkit-scrollbar{width:6px;}
.po-list::-webkit-scrollbar-thumb{background:#dfe4ea;border-radius:3px;}
.po-it{padding:7px 10px;border-radius:8px;cursor:pointer;border:1px solid transparent;margin-bottom:3px;transition:.12s;}
.po-it:hover{background:#f4f6f9;}
.po-it.on{background:var(--teal-soft);border-color:var(--teal);}
.po-it-h{display:flex;align-items:center;gap:6px;}
.po-it-h .po-no{font-size:12.5px;font-weight:700;color:var(--teal-dark);font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.po-it-h .po-no.pend{font-family:inherit;font-size:11px;color:#b8351f;background:#fdeee7;border:1px solid #eec3b4;border-radius:5px;padding:0 5px;font-weight:600;letter-spacing:0;}
.po-it-h .po-q{flex:0 0 auto;margin-left:auto;font-size:12px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;}
.po-it-n{font-size:12px;color:var(--text-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.po-it-n .po-ic{font-size:10.5px;color:#b8351f;background:#fdeee7;border:1px solid #eec3b4;border-radius:5px;padding:0 5px;font-weight:600;}
.po-it-m{font-size:10.5px;color:var(--text-3);margin-top:3px;display:flex;gap:5px;align-items:center;overflow:hidden;white-space:nowrap;}
.po-it-m .po-dot{color:#cfd8de;}
.po-it-m .po-sp{flex:1 1 auto;}
.po-it mark{background:#fff3a8;color:inherit;border-radius:2px;padding:0 1px;}
.po-side-foot{padding:8px 12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--text-3);display:flex;justify-content:space-between;gap:8px;}
.po-chips,.po-list,.po-side-foot{display:none!important;}
.po-none{padding:26px 12px;text-align:center;color:var(--text-3);font-size:12.5px;line-height:1.8;}

.po-main{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;height:calc(100vh - 222px);min-height:560px;}
.po-bar{display:flex;align-items:center;gap:9px;padding:9px 14px;border-bottom:1px solid var(--line);background:#fafbfd;flex-wrap:wrap;}
.po-bar .sp{flex:1 1 auto;min-width:4px;}
.po-tabs{display:flex;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;}
.po-tab{font-size:12px;padding:6px 11px;cursor:pointer;color:var(--text-2);white-space:nowrap;}
.po-tab+.po-tab{border-left:1px solid var(--line);}
.po-tab.on{background:var(--teal);color:#fff;font-weight:600;}
.po-save-state{font-size:12px;color:var(--text-3);font-weight:700;background:#f1f4f8;border:1px solid var(--line);border-radius:8px;padding:5px 10px;white-space:nowrap;}
.po-save-state.ok{color:#0e8377;background:#e9f7f4;border-color:#bfe7df;}
.po-btn{height:32px;padding:0 13px;border-radius:8px;border:1px solid var(--teal);background:var(--teal);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer;transition:.15s;font-family:inherit;white-space:nowrap;}
.po-btn:hover{background:var(--teal-dark);border-color:var(--teal-dark);}
.po-btn.ghost{background:#fff;color:var(--text-2);border-color:var(--line);font-weight:500;}
.po-btn.ghost:hover{background:#f2f5f9;color:var(--teal-dark);border-color:var(--teal);}
.po-btn:disabled{opacity:.45;cursor:not-allowed;}
.po-stage{background:#eaeef3;padding:16px 18px 22px;overflow:auto;flex:1 1 auto;min-height:0;}
.po-fit{position:relative;width:100%;}
.po-holder{position:absolute;top:0;left:0;width:257mm;transform-origin:top left;}

.po-paper{width:257mm;height:182mm;box-sizing:border-box;background:#fff;padding:6mm 12mm;box-shadow:0 3px 14px rgba(20,40,60,.16);position:relative;overflow:hidden;color:#000;text-align:left;}
.po-paper.po-pb{padding:8mm 12mm 12mm;}
.po-paper[contenteditable="true"]{cursor:text;outline:2px dashed rgba(14,131,119,.22);outline-offset:-3mm;}
.po-paper[contenteditable="true"]:focus{outline-color:rgba(14,131,119,.48);}

.po-co{height:7.06mm;display:flex;align-items:center;justify-content:center;font-size:12pt;font-weight:600;letter-spacing:.4px;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-hd{height:8.82mm;display:flex;justify-content:center;align-items:flex-start;}
.po-ttl{font-size:16pt;font-weight:700;line-height:1.02;letter-spacing:2px;padding:0 4mm 0.5mm;border-bottom:1.6pt solid #000;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}

.po-fm{width:100%;border-collapse:collapse;table-layout:fixed;border:2px solid #000;font-size:11pt;font-family:"宋体",SimSun,"Songti SC","Noto Serif SC",serif;}
.po-fm td{border:1px solid #000;padding:0 1.1mm;vertical-align:middle;text-align:center;overflow:hidden;line-height:1.25;white-space:nowrap;}
.po-fm td.po-lb{font-weight:600;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-fm td.po-vl{font-weight:600;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-fm td.po-nm{white-space:normal;line-height:1.15;word-break:break-word;display:table-cell;}
.po-fm td.po-nm>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.po-fm td.l{text-align:left;}
.po-fm td.top{vertical-align:top;}
.po-fm td.po-mono{font-variant-numeric:tabular-nums;}
.po-fm td.po-cd{font-size:10pt;font-variant-numeric:tabular-nums;letter-spacing:0;}
.po-fm tr.po-r1 td{height:9.53mm;}
.po-fm tr.po-r2 td{height:10.23mm;}
.po-fm tr.po-r3 td{height:10.23mm;}
.po-fm tr.po-r4 td{height:10.23mm;}
.po-fm tr.po-r5 td{height:10.23mm;}
.po-fm tr.po-r6 td{height:10.23mm;}
.po-fm tr.po-r8 td{height:33.86mm;}
.po-fm tr.po-r8 td.po-req{text-align:left;vertical-align:top;padding:1.4mm 1.8mm;font-weight:500;white-space:pre-wrap;line-height:1.5;}
.po-fm tr.po-r9 td{height:11.64mm;}
.po-fm td.po-dt{text-align:left;font-size:10.5pt;font-weight:600;}
.po-report-qr{position:absolute;right:13mm;bottom:10mm;width:36mm;text-align:center;color:#111;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-report-qr .qr-title,.po-pick-qr .qr-title{font-size:8.5pt;font-weight:700;margin-bottom:1.4mm;letter-spacing:.2px;}
.po-report-qr .qr-code,.po-pick-qr .qr-code{width:27mm;height:27mm;margin:0 auto;background:#fff;border:1px solid #000;padding:1.4mm;display:grid;grid-template-columns:repeat(25,1fr);grid-template-rows:repeat(25,1fr);gap:0;box-sizing:border-box;position:relative;}
.po-report-qr .qr-code img,.po-pick-qr .qr-code img{position:absolute;inset:1.4mm;width:calc(100% - 2.8mm);height:calc(100% - 2.8mm);object-fit:contain;background:#fff;}
.po-report-qr .qr-code i,.po-pick-qr .qr-code i{display:block;background:transparent;}
.po-report-qr .qr-code i.on,.po-pick-qr .qr-code i.on{background:#000;}
.po-report-qr .qr-task,.po-pick-qr .qr-task{font-size:6.7pt;line-height:1.25;margin-top:1.1mm;word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace;}
.po-report-qr .qr-tip,.po-pick-qr .qr-tip{font-size:6.5pt;line-height:1.25;margin-top:.7mm;color:#333;}
.po-ckc{text-align:left;padding-left:4mm;}
.po-ck{display:inline-flex;align-items:center;font-size:11pt;font-weight:600;margin-right:6mm;white-space:nowrap;}
.po-box{position:relative;display:inline-block;width:3.5mm;height:3.5mm;border:1.1px solid #000;background:#fff;margin-right:1.4mm;vertical-align:-0.55mm;}
.po-box.on{background:#e8f0fe;}
.po-box.on::after{content:'\2713';position:absolute;left:-0.4mm;right:-0.4mm;top:-1.1mm;text-align:center;font-size:3.9mm;line-height:1;font-weight:700;color:#1a5fb4;}
.po-blank{display:inline-block;min-width:6mm;}

.po-pick-head{display:grid;grid-template-columns:38mm 1fr 58mm;align-items:flex-start;gap:6mm;margin-bottom:2.6mm;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-pick-title{flex:1 1 auto;text-align:center;font-size:16pt;font-weight:800;letter-spacing:3px;line-height:1.25;padding-top:1mm;}
.po-pick-meta{flex:0 0 58mm;font-size:8.5pt;line-height:1.65;color:#1d3340;text-align:left;}
.po-pick-qr{width:34mm;text-align:center;color:#111;}
.po-pick-qr .qr-code{width:23mm;height:23mm;padding:1.2mm;}
.po-pick-qr .qr-code img{inset:1.2mm;width:calc(100% - 2.4mm);height:calc(100% - 2.4mm);}
.po-pick-qr .qr-title{font-size:8pt;margin-bottom:.9mm;}
.po-pick-qr .qr-task{font-size:6pt;margin-top:.8mm;}
.po-pick-qr .qr-tip{font-size:6pt;margin-top:.5mm;}
.po-pick-info{width:100%;border-collapse:collapse;table-layout:fixed;border:1.6px solid #000;font-size:9.2pt;margin-bottom:2.6mm;font-family:"宋体",SimSun,"Songti SC","Noto Serif SC",serif;}
.po-pick-info td{border:1px solid #000;padding:1mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;}
.po-pick-info td.lb{font-weight:700;text-align:center;background:#f4f7f9;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-pick-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:8.2pt;font-family:"宋体",SimSun,"Songti SC","Noto Serif SC",serif;}
.po-pick-table th{border:1px solid #000;background:#eef4f6;padding:.9mm .7mm;font-weight:700;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;white-space:nowrap;}
.po-pick-table td{border:1px solid #000;padding:.75mm .7mm;height:6.1mm;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;}
.po-pick-table td.name{white-space:normal;line-height:1.2;}
.po-pick-table td.c,.po-pick-table th.c{text-align:center;}
.po-pick-table td.r{text-align:right;font-variant-numeric:tabular-nums;}
.po-pick-warn{font-size:9pt;color:#b8351f;font-weight:700;margin:0 0 1.8mm;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-pick-note{font-size:8.1pt;line-height:1.35;margin-top:2mm;color:#333;font-family:"宋体",SimSun,"Songti SC","Noto Serif SC",serif;}
.po-pick-foot{display:grid;grid-template-columns:repeat(4,1fr);gap:7mm;margin-top:3mm;font-size:9pt;font-family:"思源黑体 CN","Source Han Sans CN","PingFang SC","Microsoft YaHei",sans-serif;}
.po-pick-sign span{display:inline-block;min-width:25mm;border-bottom:1px solid #000;}

/* ── 打印：只出 B5 横版指令单（每张 = 正反 2 页）──────────────
   ⚠ 多纸张互斥：本页与 BOM(B5 横向) 的打印规则同处一个文档，谁在后面谁赢。
   @page 不支持按元素选择器限定 → 由 JS 写入 head 末尾的 pgSize 样式表动态切换；
   显示规则则用 body 上的 pgv-* 标记限定（标记由 PG-JS 在每次 showView 时刷新）。
   BOM 侧有 `#view-bom{display:block!important}`，必须用更高特异度 (1,1,1) 压掉。 */
.po-print-area{display:none;}
@media print{
  html,body{height:auto!important;overflow:visible!important;background:#fff!important;}
  .app{display:block!important;height:auto!important;overflow:visible!important;}
  .sidebar{display:none!important;}
  .content{height:auto!important;overflow:visible!important;padding:0!important;}
  .view{display:none!important;}
  body.pgv-order #view-bom{display:none!important;}
  .page-head,.po-side,.po-bar{display:none!important;}
  body.pgv-order .po-print-area{display:block!important;}
  .po-print-area .po-paper{width:257mm!important;height:182mm!important;box-sizing:border-box!important;box-shadow:none!important;margin:0!important;
    page-break-after:always;break-after:page;overflow:hidden!important;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .po-print-area .po-paper:last-child{page-break-after:auto;break-after:auto;}
}
/*==/PO-CSS==*/
/*==DN-CSS==*/
.dn-page{padding:18px 18px 28px;}
.dn-panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:12px;box-shadow:0 8px 22px rgba(30,46,62,.05);}
.dn-form{display:grid;grid-template-columns:1.25fr 1.35fr .8fr .9fr .9fr .9fr auto;gap:10px;align-items:end;}
.dn-field label{display:block;font-size:13px;font-weight:700;color:#263844;margin:0 0 5px;}
.dn-field input,.dn-field select{width:100%;height:34px;border:1.5px solid var(--line);border-radius:7px;padding:0 9px;font-family:inherit;font-size:13px;font-weight:700;box-sizing:border-box;background:#fff;}
.dn-field small{display:block;margin-top:4px;color:var(--text-3);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dn-actions{display:flex;gap:8px;align-items:center;}
.dn-btn{height:34px;padding:0 13px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text-2);font-family:inherit;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap;}
.dn-btn.primary{background:var(--teal);border-color:var(--teal);color:#fff;}
.dn-btn.danger{border-color:#f0b8b8;background:#fff7f7;color:#b91c1c;}
.dn-meta{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px;}
.dn-kv{background:#f7fafb;border:1px solid #e7edf1;border-radius:7px;padding:8px 10px;min-width:0;}
.dn-kv .k{font-size:12px;color:var(--text-3);font-weight:700;margin-bottom:4px;}
.dn-kv .v{font-size:13px;font-weight:800;color:#24313a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dn-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px;font-weight:700;background:#fff;}
.dn-table th{background:#eff4f6;color:#41535f;text-align:left;padding:8px 7px;border-bottom:1px solid #dde6eb;white-space:nowrap;}
.dn-table td{padding:8px 7px;border-bottom:1px solid #edf2f5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dn-table td.num{text-align:right;font-variant-numeric:tabular-nums;}
.dn-empty{padding:20px;text-align:center;color:var(--text-3);font-weight:700;}
@media(max-width:1100px){.dn-form{grid-template-columns:1fr 1fr 1fr}.dn-meta{grid-template-columns:1fr 1fr}}
/*==/DN-CSS==*/
