*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;} html{font-size:16px;} body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;min-height:100vh;color:#dcecff;background:linear-gradient(160deg,#04122b 0%,#0a2a5e 50%,#061b3d 100%) fixed;position:relative;} body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(0,176,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,176,255,.05) 1px,transparent 1px);background-size:34px 34px;} #app{position:relative;z-index:1;} .hidden{display:none !important;} .mt10{margin-top:10px;} .neon{color:#00d4ff;text-shadow:0 0 8px rgba(0,176,255,.8);} .page{max-width:1080px;margin:0 auto;padding:12px 14px 40px;} @media (min-width:900px){.page{padding:20px 24px 60px;}} .card{background:rgba(10,32,66,.72);border:1px solid rgba(0,176,255,.25);border-radius:12px;padding:14px;margin-bottom:14px;box-shadow:0 0 18px rgba(0,90,180,.18),inset 0 0 24px rgba(0,60,130,.12);backdrop-filter:blur(4px);} .card-title{font-size:15px;font-weight:700;color:#eaf6ff;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;} .unit-tag{font-size:11px;font-weight:400;color:#7fc4ff;background:rgba(0,176,255,.12);border:1px solid rgba(0,176,255,.3);border-radius:20px;padding:2px 8px;} .empty{text-align:center;color:#5b7ba6;padding:22px 0;font-size:13px;} .tip-bar{font-size:12px;color:#8fb6e0;background:rgba(0,176,255,.08);border:1px dashed rgba(0,176,255,.3);border-radius:8px;padding:8px 10px;margin-bottom:12px;} .tip-bar b{color:#00d4ff;} input,select,textarea{background:rgba(4,18,43,.8);border:1px solid rgba(0,176,255,.35);border-radius:8px;color:#eaf6ff;padding:9px 10px;font-size:14px;outline:none;width:100%;font-family:inherit;} input:focus,select:focus,textarea:focus{border-color:#00b0ff;box-shadow:0 0 0 2px rgba(0,176,255,.22);} input::placeholder,textarea::placeholder{color:#4d6d96;} select option{background:#0a2148;color:#eaf6ff;} input[type="date"]{color-scheme:dark;} .btn-main{background:linear-gradient(135deg,#00b0ff,#0072e0);border:none;color:#fff;font-size:15px;font-weight:700;border-radius:10px;padding:11px 18px;cursor:pointer;box-shadow:0 0 14px rgba(0,176,255,.55);transition:transform .15s,box-shadow .15s;} .btn-main:active{transform:scale(.97);} .btn-lg{width:100%;font-size:16px;padding:13px;} .btn-ghost{background:rgba(0,176,255,.1);color:#6fd0ff;border:1px solid rgba(0,176,255,.45);border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer;} .btn-ghost:active{background:rgba(0,176,255,.22);} .btn-mini{background:rgba(0,176,255,.12);color:#7fd4ff;border:1px solid rgba(0,176,255,.4);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;white-space:nowrap;} .btn-mini.danger{color:#ff8f8f;border-color:rgba(255,90,90,.5);background:rgba(255,80,80,.1);} .pwd-cell{white-space:nowrap;} .pwd-txt{color:#ffe14d;font-family:Consolas,monospace;letter-spacing:1px;} .btn-area{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap;} .btn-area.two button{flex:1;min-width:120px;} .btn-main.danger{background:linear-gradient(135deg,#ff5a5a,#d81f1f);box-shadow:0 0 14px rgba(255,80,80,.5);} .topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;background:linear-gradient(180deg,rgba(4,18,43,.97),rgba(6,27,61,.92));border-bottom:1px solid rgba(0,176,255,.3);padding:10px 12px;backdrop-filter:blur(8px);} .topbar h1{flex:1;text-align:center;font-size:16px;color:#eaf6ff;text-shadow:0 0 10px rgba(0,176,255,.5);} .back-btn{width:34px;height:34px;border-radius:50%;background:rgba(0,176,255,.12);border:1px solid rgba(0,176,255,.4);color:#6fd0ff;font-size:20px;line-height:1;cursor:pointer;flex:none;} .back-btn.ph{visibility:hidden;} .home-btn{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(0,176,255,.12);border:1px solid rgba(0,176,255,.4);font-size:15px;line-height:1;cursor:pointer;transition:box-shadow .15s;} .home-btn:hover{box-shadow:0 0 12px rgba(0,176,255,.5);} .home-btn:active{background:rgba(0,176,255,.32);} .logout-btn{background:rgba(255,90,90,.12);border:1px solid rgba(255,90,90,.45);color:#ff9d9d;border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer;flex:none;} .login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;} .login-card{width:100%;max-width:400px;background:rgba(8,26,56,.8);border:1px solid rgba(0,176,255,.35);border-radius:18px;padding:30px 24px 24px;box-shadow:0 0 40px rgba(0,120,255,.25),inset 0 0 30px rgba(0,70,150,.15);text-align:center;} .logo-breath{width:76px;height:76px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#0e4c96,#061b3d);border:2px solid #00b0ff;animation:logoBreath 2.6s ease-in-out infinite;} .logo-breath span,.logo-mini span{font-size:36px;font-weight:900;color:#ffe14d;text-shadow:0 0 12px rgba(255,220,80,.9);} .logo-breath img{width:100%;height:100%;border-radius:50%;display:block;} @keyframes logoBreath{0%,100%{box-shadow:0 0 10px rgba(0,176,255,.5),0 0 26px rgba(0,176,255,.3);transform:scale(1);} 50%{box-shadow:0 0 22px rgba(0,176,255,.95),0 0 50px rgba(0,176,255,.55);transform:scale(1.05);}} .app-title{font-size:21px;color:#eaf6ff;letter-spacing:2px;text-shadow:0 0 12px rgba(0,176,255,.7);margin-bottom:12px;} .slogan{margin:18px 0 8px;display:flex;flex-direction:column;gap:4px;} .slogan-line{font-size:clamp(26px,8vw,34px);font-weight:900;letter-spacing:8px;color:#6fd8ff;text-shadow:0 0 4px #6fd8ff,0 0 8px #33c2ff,0 0 16px #00b0ff,0 0 28px rgba(0,150,255,.85),0 0 44px rgba(0,130,255,.55);animation:neonPulse 2.2s ease-in-out infinite;} .slogan-line.l2{animation-delay:1.1s;} @keyframes neonPulse{0%,100%{opacity:1;filter:brightness(1.25);} 45%{opacity:.55;filter:brightness(.75);} 60%{opacity:1;filter:brightness(1.3);}} .field{text-align:left;margin-bottom:14px;} .field label{display:block;font-size:12px;color:#7fb8ea;margin-bottom:5px;letter-spacing:1px;} .field input{font-size:15px;} .login-ops{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 18px;font-size:13px;} .chk{display:flex;align-items:center;gap:6px;color:#9fc3e8;cursor:pointer;} .chk input{width:auto;accent-color:#00b0ff;} .forgot{color:#6fd0ff;cursor:pointer;text-decoration:none;} .forgot:active{color:#00d4ff;} .login-tip{margin-top:14px;font-size:11px;color:#4d6d96;} .login-foot{margin-top:26px;font-size:13px;letter-spacing:6px;color:#5b7ba6;} .home-head{display:flex;justify-content:space-between;align-items:center;padding:10px 4px 18px;} .hello{font-size:19px;font-weight:700;color:#eaf6ff;text-shadow:0 0 10px rgba(0,176,255,.5);} .hello-sub{font-size:12px;color:#7fb8ea;margin-top:4px;} .logo-mini{width:46px;height:46px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#0e4c96,#061b3d);border:1.5px solid #00b0ff;box-shadow:0 0 12px rgba(0,176,255,.5);} .logo-mini span{font-size:22px;} .profile-card{display:flex;align-items:center;gap:14px;margin-top:4px;} .pf-avatar{width:52px;height:52px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#0e4c96,#061b3d);border:2px solid #00b0ff;box-shadow:0 0 12px rgba(0,176,255,.5);font-size:22px;font-weight:900;color:#ffe14d;text-shadow:0 0 10px rgba(255,220,80,.8);} .pf-info{flex:1;min-width:0;} .pf-name{font-size:17px;font-weight:700;color:#eaf6ff;text-shadow:0 0 10px rgba(0,176,255,.4);} .pf-meta{font-size:12px;color:#7fb8ea;margin-top:4px;} .pf-logout{flex:none;background:rgba(255,90,90,.12);border:1px solid rgba(255,90,90,.5);color:#ff9d9d;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:700;cursor:pointer;transition:box-shadow .15s;} .pf-logout:hover{box-shadow:0 0 12px rgba(255,90,90,.45);} .pf-logout:active{background:rgba(255,90,90,.3);} .menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;} @media (min-width:760px){.menu-grid{grid-template-columns:repeat(5,1fr);} .menu-grid.mini{grid-template-columns:repeat(4,1fr);}} .menu-card{background:linear-gradient(160deg,rgba(12,42,88,.85),rgba(6,22,50,.85));border:1px solid rgba(0,176,255,.3);border-radius:14px;padding:18px 10px;text-align:center;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;} .menu-card:hover{transform:translateY(-3px);border-color:#00b0ff;box-shadow:0 0 20px rgba(0,176,255,.4);} .menu-card:active{transform:scale(.96);} .mc-icon{font-size:30px;margin-bottom:8px;filter:drop-shadow(0 0 8px rgba(0,176,255,.7));} .mc-name{font-size:14px;font-weight:700;color:#eaf6ff;} .mc-desc{font-size:11px;color:#6f96c4;margin-top:5px;} .prod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;} @media (min-width:760px){.prod-grid{grid-template-columns:repeat(4,1fr);}} .prod-card{background:linear-gradient(160deg,rgba(12,42,88,.85),rgba(6,22,50,.85));border:1px solid rgba(0,176,255,.28);border-radius:12px;padding:12px;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;} .prod-card:hover{border-color:#00b0ff;box-shadow:0 0 16px rgba(0,176,255,.38);transform:translateY(-2px);} .prod-card:active{transform:scale(.96);} .pc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:6px;} .pc-name{font-size:15px;font-weight:700;color:#eaf6ff;} .pc-badge{background:linear-gradient(135deg,#ff8a00,#ff5400);color:#fff;border-radius:20px;padding:2px 9px;font-size:10px;white-space:nowrap;box-shadow:0 0 10px rgba(255,120,0,.6);} .pc-badge b{font-size:15px;} .pc-badge.zero{background:rgba(0,176,255,.15);color:#6f96c4;box-shadow:none;} .pc-sub{font-size:10px;color:#6f96c4;} .form-row,.frow{display:flex;align-items:center;gap:10px;margin-bottom:10px;} .form-row > label,.frow > label{width:84px;flex:none;font-size:13px;color:#7fb8ea;text-align:right;} .inline-flex{display:flex;align-items:center;gap:8px;flex:1;} .inline-flex > input,.inline-flex > select{flex:1;} .fixed-val{font-size:16px;font-weight:700;color:#00d4ff;text-shadow:0 0 8px rgba(0,176,255,.6);} .sep{color:#6f96c4;font-size:12px;flex:none;} .frow-btns{justify-content:flex-start;} .frow-btns.wrap{flex-wrap:wrap;} .frow-btns .btn-mini{padding:7px 12px;font-size:13px;} .filter-bar .frow > label{width:70px;} .drow{display:grid;grid-template-columns:1.05fr 1.75fr 1fr;gap:8px;align-items:center;padding:7px 0;border-bottom:1px dashed rgba(0,176,255,.15);} .dstep{display:flex;align-items:center;gap:6px;min-width:0;} .dstep .defect-in{flex:1;min-width:0;} .step-btn{flex:none;width:34px;height:34px;line-height:1;background:rgba(0,176,255,.12);color:#7fd4ff;border:1px solid rgba(0,176,255,.4);border-radius:8px;font-size:18px;font-weight:700;cursor:pointer;user-select:none;} .step-btn:active{background:rgba(0,176,255,.35);color:#fff;} .step-btn.step-add{color:#00d4ff;border-color:rgba(0,212,255,.5);background:rgba(0,176,255,.18);} .step-btn.step-add:active{background:rgba(0,212,255,.45);color:#fff;} .drow.dhead{color:#7fb8ea;font-size:12px;border-bottom:1px solid rgba(0,176,255,.35);} .drow:last-of-type{border-bottom:none;} .dname{font-size:13px;color:#cfe6ff;} .dratio{font-size:13px;color:#00d4ff;font-weight:700;text-align:right;white-space:nowrap;} .defect-in{text-align:center;font-weight:700;} .total-row{margin-top:12px;padding:12px;border-radius:10px;background:rgba(0,176,255,.08);border:1px solid rgba(0,176,255,.35);display:flex;align-items:center;justify-content:center;gap:10px;font-size:15px;} .total-row b{font-size:22px;color:#00d4ff;text-shadow:0 0 10px rgba(0,176,255,.8);} .blink-red{color:#ff5f5f !important;animation:blinkRed 1s ease-in-out infinite;text-shadow:0 0 10px rgba(255,60,60,.8);} @keyframes blinkRed{0%,100%{opacity:1;} 50%{opacity:.35;}} .sum-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;} .sum-card{background:rgba(0,176,255,.08);border:1px solid rgba(0,176,255,.35);border-radius:10px;padding:10px;text-align:center;} .sum-card label{display:block;font-size:11px;color:#7fb8ea;margin-bottom:6px;} .sum-card b{font-size:20px;color:#00d4ff;text-shadow:0 0 10px rgba(0,176,255,.7);} .sum-card .warn{display:block;font-size:10px;color:#ff7b7b;margin-top:5px;} .sum-card.blink-red{border-color:rgba(255,90,90,.7);} .sum-card.blink-red b,.sum-card.blink-red .warn{animation:blinkRed 1s ease-in-out infinite;} .photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;} @media (min-width:760px){.photo-grid{grid-template-columns:repeat(6,1fr);}} .ph-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid rgba(0,176,255,.35);} .ph-item img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;} .ph-item img.ph-miss,.pv-wrap img.ph-miss{object-fit:contain;background:rgba(0,40,80,.5);padding:10px;color:#8fb4dd;font-size:11px;text-align:center;} .ph-del{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:rgba(200,30,30,.85);color:#fff;border:none;font-size:11px;cursor:pointer;line-height:1;} .ph-add{aspect-ratio:1;border-radius:8px;border:1.5px dashed rgba(0,176,255,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6fd0ff;font-size:20px;cursor:pointer;gap:2px;} .ph-add span{font-size:10px;} .ph-add:active{background:rgba(0,176,255,.15);} .assess-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;} .assess-row .assess-name{flex:1.2;} .assess-row .assess-score{flex:.8;text-align:center;font-weight:700;} .row-del{width:30px;height:30px;flex:none;border-radius:50%;background:rgba(255,90,90,.12);border:1px solid rgba(255,90,90,.5);color:#ff8f8f;font-size:13px;cursor:pointer;} .tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;} .tab{flex:1;min-width:76px;padding:9px 4px;border-radius:9px;cursor:pointer;background:rgba(0,176,255,.08);color:#7fb8ea;border:1px solid rgba(0,176,255,.25);font-size:13px;} .tab.active{background:linear-gradient(135deg,rgba(0,176,255,.35),rgba(0,114,224,.35));color:#fff;border-color:#00b0ff;box-shadow:0 0 12px rgba(0,176,255,.45);font-weight:700;} .prod-group .pg-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;} .pg-name{font-size:15px;font-weight:700;color:#ffe14d;text-shadow:0 0 8px rgba(255,210,40,.5);} .pg-count{font-size:12px;color:#7fb8ea;} .pg-count b{font-size:20px;color:#00d4ff;text-shadow:0 0 10px rgba(0,176,255,.8);margin:0 2px;} .rec-row{display:flex;align-items:center;gap:8px;background:rgba(4,18,43,.55);border:1px solid rgba(0,176,255,.18);border-radius:9px;padding:9px 10px;margin-bottom:7px;cursor:pointer;} .rec-row:hover{border-color:rgba(0,176,255,.5);} .rr-l{flex:1;min-width:0;} .rr-line1{font-size:13px;color:#cfe6ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .rr-line2{font-size:11px;color:#6f96c4;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .rr-r{font-size:15px;font-weight:800;color:#00d4ff;text-shadow:0 0 8px rgba(0,176,255,.6);white-space:nowrap;} .ph-flag{font-size:11px;color:#ffb84d;flex:none;} .tbl-wrap{overflow-x:auto;} .tbl{width:100%;border-collapse:collapse;font-size:13px;} .tbl th,.tbl td{padding:8px 10px;text-align:center;border-bottom:1px solid rgba(0,176,255,.15);white-space:nowrap;} .tbl th{color:#7fb8ea;background:rgba(0,176,255,.08);font-weight:700;} .tbl td{color:#cfe6ff;} .chart{width:100%;display:block;} .legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;} .lg{font-size:11px;color:#9fc3e8;display:flex;align-items:center;gap:4px;} .lg i{font-style:normal;width:16px;height:16px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;background:linear-gradient(180deg,#00d4ff,#005e9e);color:#fff;} .pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;} @media (min-width:760px){.pack-grid{grid-template-columns:repeat(6,1fr);}} .pack-cell label{display:block;font-size:10px;color:#6f96c4;margin-bottom:3px;text-align:center;} .pack-cell input{text-align:center;padding:8px 4px;font-size:13px;} .over-detail .sum-cards.three{grid-template-columns:1fr 1fr 1fr;margin-top:4px;} @media (max-width:480px){.over-detail .sum-cards.three{grid-template-columns:1fr 1fr 1fr;}} .over-detail .sum-card b{font-size:17px;} .over-detail .sum-card .unit-tag{display:block;margin-top:4px;font-size:10px;} .over-detail .pack-cell{border:1px solid rgba(0,176,255,.22);border-radius:8px;background:rgba(0,176,255,.06);padding:6px 2px;text-align:center;} .over-detail .pack-cell .pack-val{display:block;font-size:14px;font-weight:700;color:#00d4ff;} .over-detail .pack-cell.short{border-color:rgba(255,80,80,.65);background:rgba(255,60,60,.13);} .over-detail .pack-cell.short .pack-val{color:#ff5f5f;text-shadow:0 0 8px rgba(255,60,60,.7);} .danger-zone{border-color:rgba(255,90,90,.45);box-shadow:0 0 18px rgba(255,60,60,.15);} .modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;} .modal-mask{position:absolute;inset:0;background:rgba(2,8,20,.78);backdrop-filter:blur(3px);} .modal-box{position:relative;width:100%;max-width:560px;max-height:86vh;overflow-y:auto;background:linear-gradient(160deg,#0a2a5e,#061b3d);border:1px solid rgba(0,176,255,.45);border-radius:14px;padding:18px;box-shadow:0 0 40px rgba(0,120,255,.4);} .modal-title{font-size:16px;color:#eaf6ff;margin-bottom:8px;} .modal-meta{font-size:12px;color:#7fb8ea;margin-bottom:12px;line-height:1.7;} .modal-desc{font-size:13px;color:#cfe6ff;margin-bottom:12px;line-height:1.7;} .item-box{border:1px solid rgba(0,176,255,.35);border-radius:10px;padding:12px;margin:12px 0;background:rgba(0,176,255,.06);} .item-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;} .item-tag{font-size:13px;font-weight:bold;color:#7fd4ff;} .item-box textarea{width:100%;box-sizing:border-box;border:1px solid rgba(0,176,255,.4);border-radius:8px;background:rgba(0,20,40,.5);color:#eaf6ff;padding:10px;font-size:14px;resize:vertical;} .photo-view{text-align:center;} .photo-view img{max-width:100%;border-radius:10px;border:1px solid rgba(0,176,255,.4);} .pv-head{display:flex;justify-content:flex-end;margin-bottom:6px;} .pv-count{font-size:12px;color:#7fb8ea;border:1px solid rgba(0,176,255,.4);border-radius:10px;padding:2px 10px;} .pv-wrap{touch-action:pan-y;} .pv-wrap img{max-width:100%;max-height:62vh;object-fit:contain;border-radius:10px;border:1px solid rgba(0,176,255,.4);user-select:none;-webkit-user-drag:none;} .pv-nav{display:flex;justify-content:center;gap:12px;margin-top:12px;} .pv-btn{padding:8px 18px;font-size:14px;color:#eaf6ff;background:rgba(0,176,255,.12);border:1px solid rgba(0,176,255,.35);border-radius:10px;cursor:pointer;} .pv-btn:active{background:rgba(0,176,255,.35);} .pv-btn:disabled{opacity:.35;cursor:default;} .pv-tip{margin-top:8px;font-size:11px;color:#5b8fb8;} .kb{position:fixed;left:0;right:0;bottom:0;z-index:80;max-width:560px;margin:0 auto;background:linear-gradient(180deg,#0a2a5e,#04122b);border-top:2px solid #00b0ff;border-radius:16px 16px 0 0;padding:10px 12px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -6px 30px rgba(0,140,255,.45);} .kb-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;} .kb-title{flex:1;font-size:13px;color:#7fb8ea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .kb-val{font-size:20px;font-weight:800;color:#ffe14d;text-shadow:0 0 10px rgba(255,210,40,.6);} .kb-close{width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,90,90,.5);background:rgba(255,90,90,.12);color:#ff8f8f;cursor:pointer;} .kb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;} .kb-key{padding:14px 0;font-size:20px;font-weight:700;color:#eaf6ff;background:rgba(0,176,255,.12);border:1px solid rgba(0,176,255,.35);border-radius:10px;cursor:pointer;user-select:none;} .kb-key:active{background:rgba(0,176,255,.35);} .kb-fn{color:#6fd0ff;font-size:17px;background:rgba(0,176,255,.07);} .kb-ok{background:linear-gradient(135deg,#00b0ff,#0072e0);color:#fff;box-shadow:0 0 14px rgba(0,176,255,.55);font-size:17px;} @media (min-width:760px){.kb-key{padding:12px 0;}} ::-webkit-scrollbar{width:8px;height:8px;} ::-webkit-scrollbar-thumb{background:rgba(0,176,255,.35);border-radius:4px;} ::-webkit-scrollbar-track{background:transparent;} .moist-judge{font-size:16px;font-weight:800;color:#7fb8ea;} .v-ok{color:#35a7ff !important;text-shadow:0 0 8px rgba(53,167,255,.55);} .v-warn{color:#ffd34d !important;text-shadow:0 0 8px rgba(255,211,77,.55);} .v-bad{color:#ff5f5f !important;text-shadow:0 0 10px rgba(255,60,60,.8);} .rr-line2 .v-ok,.rr-line2 .v-warn,.rr-line2 .v-bad{font-weight:700;} .moist-opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;} @media (max-width:640px){.moist-opt-grid{grid-template-columns:1fr;}} .avg-tags{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0 6px;} .avg-tag{background:rgba(0,176,255,.08);border:1px solid rgba(0,176,255,.22);color:#9fc3e8;border-radius:6px;padding:2px 8px;font-size:12px;white-space:nowrap;} .avg-tag b{color:#00d4ff;font-weight:700;} .seg-btns{display:flex;gap:8px;flex-wrap:wrap;} .seg-btn{flex:1;min-width:84px;padding:9px 0;border-radius:10px;border:1px solid rgba(0,176,255,.25);background:rgba(0,176,255,.06);color:#9fc3e8;font-size:14px;cursor:pointer;transition:all .18s;} .seg-btn.active{background:linear-gradient(135deg,#0072c6,#00B0FF);color:#fff;border-color:transparent;box-shadow:0 2px 10px rgba(0,176,255,.35);} .xue-wrap{display:flex;gap:12px;align-items:flex-start;} .xue-nav{flex:0 0 116px;position:sticky;top:12px;display:flex;flex-direction:column;gap:8px;} .xue-nav-btn{padding:11px 8px;font-size:13px;color:#bcd8f5;text-align:center;background:rgba(13,38,66,.85);border:1px solid rgba(0,176,255,.22);border-radius:10px;cursor:pointer;transition:all .15s;} .xue-nav-btn.active{background:linear-gradient(135deg,#0072c6,#00B0FF);color:#fff;border-color:transparent;box-shadow:0 2px 10px rgba(0,176,255,.35);font-weight:bold;} .xue-main{flex:1;min-width:0;} .xue-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;} .xue-cat-name{font-size:15px;font-weight:bold;color:#eaf6ff;} .xue-card{cursor:pointer;margin-bottom:10px;} .xue-title{font-size:14px;font-weight:bold;color:#eaf6ff;margin-bottom:5px;} .xue-body{font-size:12px;color:#8fb4dd;line-height:1.6;} .xue-toc{display:flex;flex-direction:column;gap:8px;} .xue-toc-item{display:flex;align-items:center;gap:10px;background:rgba(13,38,66,.85);border:1px solid rgba(0,176,255,.22);border-radius:10px;padding:13px 14px;cursor:pointer;transition:all .15s;} .xue-toc-item:active{background:rgba(0,114,198,.55);} .xt-no{flex:0 0 auto;font-weight:bold;color:#00d4ff;font-size:13px;} .xt-title{flex:1;min-width:0;font-size:13.5px;color:#eaf6ff;} .xt-ph{flex:0 0 auto;font-size:12px;color:#ffd166;} .xue-full{font-size:13.5px;color:#d7ebff;line-height:1.85;white-space:pre-wrap;background:rgba(13,38,66,.6);border:1px solid rgba(0,176,255,.15);border-radius:10px;padding:14px;margin:10px 0 4px;max-height:52vh;overflow-y:auto;} @media (max-width:560px){.xue-nav{flex:0 0 96px;} .xue-nav-btn{font-size:12px;padding:10px 6px;}} .std-req{font-size:13px;color:#bcd8f5;line-height:1.7;margin:8px 0;white-space:pre-wrap;cursor:pointer;} .sync-opts{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 14px;} .sync-opt{flex:1;min-width:150px;padding:12px 14px;border-radius:12px;text-align:left;cursor:pointer;border:1px solid rgba(0,176,255,.25);background:rgba(0,176,255,.06);color:#9fc3e8;transition:all .18s;} .sync-opt b{display:block;font-size:15px;margin-bottom:5px;color:#cfe6fb;} .sync-opt span{display:block;font-size:12px;line-height:1.5;opacity:.8;} .sync-opt.active{background:linear-gradient(135deg,#0072c6,#00B0FF);border-color:transparent;box-shadow:0 2px 10px rgba(0,176,255,.35);} .sync-opt.active b,.sync-opt.active span{color:#fff;opacity:1;} .export-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px dashed rgba(0,176,255,.15);} .q-det{max-width:220px;white-space:normal;word-break:break-all;font-size:12px;} .q-tr{cursor:pointer;} .q-tr:active td{background:rgba(0,176,255,.1);} .pc-wrap{display:flex;min-height:100vh;background:linear-gradient(165deg,#eef4fb 0%,#f6f9fd 55%,#e9f1fa 100%) fixed;position:relative;} .pc-wrap::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(0,140,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,140,255,.05) 1px,transparent 1px);background-size:34px 34px;} .pc-wrap > *{position:relative;z-index:1;} .pc-side{width:220px;flex-shrink:0;background:rgba(255,255,255,.92);border-right:1px solid #d7e5f4;color:#40618c;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;backdrop-filter:blur(6px);box-shadow:2px 0 12px rgba(30,100,200,.06);} .pc-logo{padding:20px 16px;border-bottom:1px solid #e2ecf7;display:flex;align-items:center;gap:10px;} .pc-logo-mark{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#00b0ff,#0072e0);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0;box-shadow:0 4px 10px rgba(0,130,220,.35);} .pc-logo-txt{font-size:14px;line-height:1.35;color:#16324f;font-weight:700;} .pc-nav{padding:10px 0;flex:1;overflow-y:auto;} .pc-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 18px;background:none;border:none;border-left:3px solid transparent;color:#40618c;font-size:14px;cursor:pointer;text-align:left;font-family:inherit;} .pc-nav-item:hover{background:rgba(0,140,255,.08);color:#0072e0;} .pc-nav-item.active{background:linear-gradient(90deg,rgba(0,140,255,.14),rgba(0,140,255,.02));border-left-color:#008cff;color:#0072e0;font-weight:700;} .pc-nav-ico{width:20px;text-align:center;} .pc-side-foot{padding:14px 18px;border-top:1px solid #e2ecf7;font-size:13px;color:#40618c;display:flex;justify-content:space-between;align-items:center;gap:8px;} .pc-side-foot button{background:none;border:1px solid #b9d4ee;color:#40618c;border-radius:6px;padding:5px 10px;cursor:pointer;font-size:12px;} .pc-side-foot button:hover{color:#0072e0;border-color:#008cff;} .pc-body{flex:1;display:flex;flex-direction:column;min-width:0;} .pc-main{flex:1;padding:22px 26px;width:100%;max-width:1280px;margin:0 auto;} .pc-foot{padding:12px;text-align:center;font-size:12px;color:#7e97b5;border-top:1px solid #e2ecf7;background:rgba(255,255,255,.85);} .pc-foot a{color:#7e97b5;text-decoration:none;margin-left:10px;} .pc-foot a:hover{color:#008cff;} .pc-home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;} .pc-home-item{background:#fff;border:1px solid #d7e5f4;border-radius:12px;padding:18px 12px 14px;text-align:center;cursor:pointer;transition:box-shadow .15s,border-color .15s;} .pc-home-item:hover{border-color:#7cc0ff;box-shadow:0 6px 18px rgba(30,100,200,.14);} .pc-home-item:active{transform:scale(.97);} .pc-home-item .ico{font-size:28px;line-height:1;} .pc-home-item .nm{margin-top:8px;font-size:14px;font-weight:700;color:#1c3d5f;} .pc-home-item .ds{margin-top:3px;font-size:11px;color:#6f96c4;} .pc-h{font-size:18px;margin:0 0 16px;color:#16324f;} .pc-cards{display:flex;gap:14px;margin-bottom:18px;flex-wrap:wrap;} .pc-card{flex:1;min-width:160px;background:#fff;border:1px solid #d7e5f4;border-radius:12px;padding:16px 18px;box-shadow:0 4px 14px rgba(30,100,200,.08);} .pc-card .n{font-size:26px;color:#0072e0;} .pc-card .l{font-size:12px;color:#7e97b5;margin-top:4px;} .pc-panel{background:#fff;border:1px solid #d7e5f4;border-radius:12px;padding:16px 18px;margin-bottom:18px;box-shadow:0 4px 14px rgba(30,100,200,.08);} .pc-tbl th{white-space:nowrap;} .pc-reuse .page{max-width:100%;padding:0;} .pc-reuse .card{max-width:100%;} .pc-light .filter-bar{background:#fff;border-color:#d7e5f4;box-shadow:0 4px 14px rgba(30,100,200,.08);} .pc-light .filter-bar .frow > label{color:#40618c;} .pc-light .sep{color:#7e97b5;} .pc-light input,.pc-light select,.pc-light textarea{background:#fff;border:1px solid #b9d4ee;color:#16324f;} .pc-light input:focus,.pc-light select:focus,.pc-light textarea:focus{border-color:#008cff;box-shadow:0 0 0 2px rgba(0,140,255,.15);} .pc-light input::placeholder,.pc-light textarea::placeholder{color:#9db4cd;} .pc-light select option{background:#fff;color:#16324f;} .pc-light input[type="date"]{color-scheme:light;} .pc-light .card-title{color:#16324f;} .pc-light .tbl th{color:#2c5c8f;background:rgba(0,140,255,.08);border-bottom:1px solid #d7e5f4;} .pc-light .tbl td{color:#2a4a6e;border-bottom:1px solid #e6eef8;} .pc-light .q-tr:active td{background:rgba(0,140,255,.08);} .pc-light .empty{color:#8aa3c0;} .pc-light .unit-tag{color:#0072e0;background:rgba(0,140,255,.1);border-color:rgba(0,140,255,.35);} .pc-light .seg-btn{background:#f4f9fe;border-color:#cde0f3;color:#40618c;} .pc-light .seg-btn.active{background:linear-gradient(135deg,#0072c6,#00B0FF);color:#fff;} .pc-light .btn-ghost{background:#f4f9fe;color:#0072e0;border-color:#b9d4ee;} .pc-light .btn-ghost:active{background:rgba(0,140,255,.15);} .pc-light .export-bar{border-top-color:#e2ecf7;} .pc-light .lg{color:#5b7ba6;} .pc-light .tip-bar{color:#5b7ba6;background:rgba(0,140,255,.06);border-color:#b9d4ee;} .pc-light .tip-bar b{color:#0072e0;} .pc-main{color:#16324f;} .pc-light .card{background:#fff;border:1px solid #d7e5f4;box-shadow:0 4px 14px rgba(30,100,200,.08);color:#16324f;} .pc-light .frow > label{color:#40618c;} .pc-light .fixed-val{color:#0072e0;text-shadow:none;} .pc-light .rec-row{background:#f8fbff;border-color:#e2ecf7;} .pc-light .rec-row:hover{border-color:#b9d4ee;background:#f1f8ff;} .pc-light .rr-line1{color:#16324f;} .pc-light .rr-line2{color:#5b7ba6;} .pc-light .rr-r{color:#0072e0;text-shadow:none;} .pc-light .pg-count{color:#5b7ba6;} .pc-light .pg-count b{color:#0072e0;text-shadow:none;} .pc-light .cw-item{background:#f4f9fe;border-color:#d7e5f4;} .pc-light .cw-name{color:#16324f;} .pc-light .cw-size{color:#7e97b5;} .pc-light .empty{color:#6f8db5;} .pc-light .prod-card{background:#fff;border-color:#d7e5f4;box-shadow:0 4px 12px rgba(30,100,200,.08);} .pc-light .prod-card:hover{border-color:#6cb4ff;box-shadow:0 6px 18px rgba(10,108,255,.14);} .pc-light .pc-name{color:#16324f;} .pc-light .pc-sub{color:#5b7ba6;} .pc-light .pc-badge{box-shadow:none;} .pc-light .pc-badge.zero{background:#e2ecf7;color:#5b7ba6;} .pc-avg{width:100%;border-collapse:collapse;font-size:13px;} .pc-avg th{white-space:nowrap;color:#0d2a4d;background:#e1f0ff;font-weight:700;border-bottom:2px solid #b9d4ee;padding:9px 10px;} .pc-avg td{vertical-align:middle;color:#0a1f3a;background:#fff;padding:9px 10px;border-bottom:1px solid #e2eefc;} .pc-avg tbody tr:nth-child(even) td{background:#f7fbff;} .pc-avg tbody tr:hover td{background:#eef6ff;} .pc-avg-nm{font-weight:700;color:#0d2a4d;white-space:nowrap;} .pc-mx-wrap{overflow:auto;max-height:66vh;} .pc-mx{font-size:12px;border-collapse:collapse;} .pc-mx th,.pc-mx td{border:1px solid #dfeaf6;padding:5px 6px;text-align:center;} .pc-mx th{color:#2c5c8f;background:#eef6fe;font-weight:700;position:sticky;top:0;z-index:3;} .pc-mx th i{font-style:normal;font-size:9px;color:#7e97b5;margin-left:1px;} .pc-mx .pc-mx-l1{position:sticky;left:0;z-index:2;background:#f5f9fd;width:88px;min-width:88px;max-width:88px;font-weight:700;color:#16324f;} .pc-mx thead .pc-mx-l1,.pc-mx thead .pc-mx-l2{z-index:4;} .pc-mx .pc-mx-l2{position:sticky;left:88px;z-index:2;background:#fafcff;width:124px;min-width:124px;max-width:124px;color:#40618c;} .pc-mx .pc-mx-ym{white-space:nowrap;} .pc-mx-nav{border:1px solid #b9d4ee;background:#fff;color:#0072e0;border-radius:5px;cursor:pointer;padding:1px 6px;margin:0 4px;font-size:11px;} .pc-mx-nav:active{background:rgba(0,140,255,.12);} .pc-mx .pc-mx-bad{color:#d81f1f;font-weight:700;background:rgba(216,31,31,.07);} .pc-mx td:empty{background:#fcfdff;} .icp-foot{text-align:center;padding:14px 0 4px;font-size:12px;} .icp-copy{color:#6f96c4;margin-bottom:4px;} .icp-foot a{color:#6f96c4;text-decoration:none;} .icp-foot a:hover{color:#00b0ff;} .cw-list{display:flex;flex-direction:column;gap:8px;margin:6px 0 4px;} .cw-item{display:flex;align-items:center;gap:8px;background:rgba(0,176,255,.07);border:1px solid rgba(0,176,255,.18);border-radius:10px;padding:8px 10px;text-align:left;} .cw-ico{font-size:20px;flex:none;} .cw-name{flex:1;min-width:0;font-size:13px;color:#dcecff;word-break:break-all;text-align:left;} .cw-size{flex:none;font-size:11px;color:#6f96c4;} .cw-ops{flex:none;display:flex;gap:6px;} .cw-empty{font-size:12px;color:#5b7ba6;text-align:left;padding:2px;} .cw-pick{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;} .cw-pick input{display:none !important;} :root{--tblue:#0a6cff;--tblue2:#38b6ff;--tblue-deep:#084fd0;} .pc-wrap{background:linear-gradient(165deg,#eaf3ff 0%,#f5faff 55%,#e3efff 100%) fixed;} .pc-wrap::before{background-image:linear-gradient(rgba(10,108,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(10,108,255,.07) 1px,transparent 1px);background-size:34px 34px;} .pc-side{background:linear-gradient(180deg,rgba(240,247,255,.96),rgba(228,240,255,.92));border-right:1px solid #c4dcf9;box-shadow:2px 0 16px rgba(10,108,255,.1);} .pc-logo{border-bottom:1px solid #d3e6fd;} .pc-logo-mark{background:linear-gradient(135deg,var(--tblue2),var(--tblue));box-shadow:0 4px 12px rgba(10,108,255,.4);} .pc-nav-item{color:#33598c;border-left:3px solid transparent;} .pc-nav-item:hover{background:rgba(10,108,255,.09);color:var(--tblue);} .pc-nav-item.active{background:linear-gradient(90deg,rgba(10,108,255,.16),rgba(10,108,255,.03));border-left-color:var(--tblue);color:var(--tblue-deep);} .pc-h{color:#10315c;padding-left:12px;border-left:4px solid var(--tblue);line-height:1.25;} .pc-card{border-color:#c9e0fc;box-shadow:0 4px 16px rgba(10,108,255,.1);} .pc-card .n{color:var(--tblue);font-weight:800;} .pc-panel{border-color:#c9e0fc;box-shadow:0 4px 16px rgba(10,108,255,.1);} .pc-home-item{border-color:#c9e0fc;} .pc-home-item:hover{border-color:#6cb4ff;box-shadow:0 6px 20px rgba(10,108,255,.16);} .pc-home-item .nm{color:#10315c;} .pc-foot{border-top-color:#d3e6fd;background:rgba(240,247,255,.9);} .pc-sm td{vertical-align:middle;} .pc-sm-grp{background:#f2f8ff;font-size:13px;color:#10315c;} .pc-sm-grp b{font-size:14px;color:#0a3f88;} .pc-sm-grp i{display:block;font-style:normal;font-size:11px;color:#5b83c4;margin-top:2px;} .pc-sm-ok{color:#0a84c8;} .pc-sm-bad{color:#d81f1f;} .pc-sm-note{font-size:11px;color:#5b83c4;}.pc-sm-dt{font-size:11px;line-height:1.7;white-space:nowrap;min-width:108px;} .nowrap{white-space:nowrap;} .tr-time{display:block;font-style:normal;font-size:11px;color:#6f96c4;} .tr-spec{display:block;font-style:normal;font-size:11px;color:#5b83c4;} .tr-det{max-width:320px;font-size:12px;color:#33598c;} .tr-btn{padding:4px 10px;font-size:12px;} .pack-cell .ov-cnt{margin-top:4px;padding:5px 4px;font-size:11px;} .ov-ex{display:block;font-style:normal;font-size:11px;color:#2ecc71;margin-top:2px;} .ov-ex-bad{color:#ff5f5f;} .ov-cnt-t{display:block;font-style:normal;font-size:11px;color:#6f96c4;margin-top:2px;} .pc-det-wrap{margin-top:18px;} .pc-det-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(90deg,rgba(10,108,255,.12),rgba(10,108,255,.03));border:1px solid #c9e0fc;border-bottom:none;border-radius:12px 12px 0 0;} .pc-det-bar b{font-size:15px;color:#10315c;} .pc-det-bar .unit-tag{margin-left:0;} .det-mnav{margin-left:auto;display:flex;align-items:center;gap:8px;} .det-ym{font-size:14px;font-weight:700;color:var(--tblue-deep,#084fd0);min-width:64px;text-align:center;} .pc-scroll{overflow-x:auto;border:1px solid #c9e0fc;border-radius:0 0 12px 12px;background:#fff;} .pc-det{border-collapse:collapse;min-width:100%;font-size:12.5px;} .pc-det th{position:sticky;top:0;background:linear-gradient(180deg,#eaf3ff,#dcebfd);color:#10315c;padding:7px 9px;border:1px solid #cfe3fb;font-size:12px;white-space:nowrap;} .pc-det td{padding:6px 9px;border:1px solid #e2eefc;color:#24466e;vertical-align:middle;} .pc-det tbody tr:nth-child(even) td{background:#f7fbff;} .pc-det tbody tr:hover td{background:#eef6ff;} .pc-det td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;} .pc-det td.det-note{color:#5b83c4;font-size:11px;} .pc-det-over{min-width:1500px;} .pc-det-temp{min-width:1400px;} .pc-det .v-ok{color:#0a84c8;font-weight:600;} .pc-det .v-bad{color:#d81f1f;font-weight:700;} .pc-det .v-warn{color:#b9770e;font-weight:600;} .pc-nav-grp{position:relative;} .pc-nav-arw{margin-left:auto;font-size:11px;opacity:.75;} .pc-nav-sub{background:rgba(10,108,255,.04);border-left:3px solid rgba(10,108,255,.18);} .pc-nav-subitem{padding:9px 18px 9px 34px;font-size:13px;color:#4a6b96;} .pc-nav-subitem .pc-nav-ico{width:18px;font-size:12px;} .pc-nav-subitem.active{font-weight:700;} .pc-ro-tag{display:inline-block;margin-left:12px;padding:3px 10px;border-radius:20px;background:rgba(10,108,255,.1);border:1px solid rgba(10,108,255,.25);color:#0a3f88;font-size:12px;vertical-align:middle;} .pc-ro-line{margin-bottom:12px;} .pc-avg{width:100%;} .pc-avg th{white-space:nowrap;} .pc-avg-nm{font-weight:700;color:#10315c;white-space:nowrap;} .pc-avg td{vertical-align:middle;} .pc-dash-header{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:18px;} .pc-dash-header .pc-h{margin:0;} .pc-dash-filter{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;} .pc-dash-filter .frow{margin-bottom:0;} .pc-dash-filter .frow > label{width:auto;padding-right:6px;} .pc-dash-filter input[type="date"]{width:132px;} .pc-dash-filter select{width:130px;} .pc-dash-filter .sep{color:#94a3b8;} .pc-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px;} .pc-kpi-card{background:#fff;border:1px solid #d7e5f4;border-radius:12px;padding:18px 20px;display:flex;align-items:center;gap:14px;box-shadow:0 4px 14px rgba(30,100,200,.08);} .pc-kpi-ico{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;} .pc-kpi-ico.blue{background:rgba(10,108,255,.1);} .pc-kpi-ico.green{background:rgba(16,185,129,.12);} .pc-kpi-ico.red{background:rgba(239,68,68,.12);} .pc-kpi-ico.orange{background:rgba(245,158,11,.12);} .pc-kpi-main .n{font-size:28px;font-weight:800;color:#0d2a4d;line-height:1;} .pc-kpi-main .n .unit{font-size:14px;font-weight:600;margin-left:2px;} .pc-kpi-main .l{font-size:12px;color:#5b7ba6;margin-top:6px;} .pc-dash-row{display:flex;gap:16px;margin-bottom:16px;} .pc-dash-col8{flex:0 0 66%;max-width:66%;} .pc-dash-col4{flex:0 0 34%;max-width:34%;} .pc-dash-col6{flex:0 0 50%;max-width:50%;} .pc-dash-col3{flex:0 0 25%;max-width:25%;}.pc-dash-cell{flex:1 1 0;min-width:0;} .pc-chart-panel{background:#fff;border:1px solid #d7e5f4;border-radius:12px;padding:16px 18px;box-shadow:0 4px 14px rgba(30,100,200,.08);} .pc-chart-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:#0d2a4d;margin-bottom:12px;flex-wrap:wrap;} .pc-chart-sub{font-size:12px;color:#7e97b5;font-weight:400;} .pc-chart-tools{margin-left:auto;display:flex;gap:6px;} .pc-chart-tools .seg-btn{padding:3px 10px;font-size:12px;} .pc-donut-panel{display:flex;flex-direction:column;} .pc-donut-wrap{position:relative;height:220px;display:flex;align-items:center;justify-content:center;} .pc-donut-wrap canvas{max-width:100%;} .pc-donut-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;font-size:26px;font-weight:800;color:#0d2a4d;line-height:1.1;} .pc-donut-center span{display:block;font-size:11px;color:#7e97b5;font-weight:400;margin-top:4px;} .pc-donut-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-top:10px;} .pc-donut-leg{display:flex;align-items:center;gap:6px;font-size:12px;color:#334155;} .pc-donut-leg i{width:10px;height:10px;border-radius:2px;flex:none;} .pc-donut-leg span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .pc-donut-leg b{color:#0d2a4d;font-weight:700;} .pc-warn-list{display:flex;flex-direction:column;gap:10px;} .pc-warn-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;} .pc-warn-item.warn{border-left:4px solid #f59e0b;} .pc-warn-item.danger{border-left:4px solid #ef4444;} .pc-warn-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none;} .pc-warn-item.warn .pc-warn-dot{color:#f59e0b;} .pc-warn-item.danger .pc-warn-dot{color:#ef4444;} .pc-warn-info{flex:1;min-width:0;} .pc-warn-name{font-size:13px;font-weight:700;color:#0d2a4d;} .pc-warn-meta{font-size:11px;color:#64748b;margin-top:2px;} .pc-warn-tag{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;color:#fff;} .pc-warn-item.warn .pc-warn-tag{background:#f59e0b;} .pc-warn-item.danger .pc-warn-tag{background:#ef4444;} .pc-status{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;} .pc-status.ok{background:rgba(16,185,129,.12);color:#059669;} .pc-status.bad{background:rgba(239,68,68,.12);color:#dc2626;} .pc-recent th,.pc-recent td{text-align:center;} .pc-recent td:first-child{text-align:left;} @media (max-width:1100px){.pc-kpi-grid{grid-template-columns:repeat(2,1fr);} .pc-dash-row{flex-direction:column;} .pc-dash-col8,.pc-dash-col4,.pc-dash-col6,.pc-dash-col3,.pc-dash-cell{flex:1 1 auto;max-width:100%;} .pc-dash-header{flex-direction:column;align-items:flex-start;}} .q-sel-col{width:36px;text-align:center;} .q-sel{width:36px;text-align:center;} .q-sel input[type="checkbox"]{width:16px;height:16px;accent-color:#1f6fd6;cursor:pointer;vertical-align:middle;} tr.q-sel-on > td{background:rgba(31,111,214,.08);} .q-agg-wrap{overflow-x:auto;} table.q-agg{border-collapse:collapse;width:100%;font-size:12px;background:#fff;} .q-agg th,.q-agg td{border:1px solid #b9cbe0;padding:6px 8px;text-align:center;vertical-align:middle;white-space:nowrap;} .q-agg th{background:#e8f1fb;color:#1f4e79;font-weight:700;font-size:13px;} .q-agg .q-date{color:#4a6a8a;font-size:13px;} .q-agg .q-prod{color:#17335c;font-weight:700;font-size:14px;} .q-agg .q-qty{color:#17335c;font-size:13px;} .q-agg .q-rate{color:#1f4e79;font-weight:700;font-size:15px;} .q-agg .q-rate-bad{color:#d0021b;} .q-agg .q-ok{color:#1a9e5c;font-weight:700;} .q-agg .q-bad{color:#d0021b;font-weight:700;} .q-agg .q-note{color:#7a8ba6;font-size:12px;} .ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;flex:none;} .pc-nav-ico .ico{width:17px;height:17px;vertical-align:-3px;} .pc-nav-subitem .pc-nav-ico .ico{width:15px;height:15px;} .pc-kpi-ico .ico{width:22px;height:22px;} .pc-side-foot .ico{width:15px;height:15px;vertical-align:-3px;} .ph-add .ico{display:block;width:22px;height:22px;margin:0 auto 2px;} .tabs .ico,.home-btn .ico{vertical-align:-2px;} .sel-box{flex:none;display:flex;align-items:center;justify-content:center;width:26px;align-self:stretch;margin:-4px 0 -4px -4px;} .sel-box input,.sel-all input,.sel-bar input{width:18px;height:18px;accent-color:#00b0ff;cursor:pointer;} .sel-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 10px;margin:8px 0 10px;background:rgba(0,176,255,.07);border:1px dashed rgba(0,176,255,.28);border-radius:8px;} .sel-bar .sel-all{display:flex;align-items:center;gap:5px;font-size:13px;color:#9fd8ff;cursor:pointer;} .sel-bar .unit-tag b{color:#00d4ff;} .rec-row.q-sel-on,tr.q-sel-on > td{background:rgba(0,176,255,.16);border-color:rgba(0,176,255,.55);} @media (max-width:480px){.sel-bar{gap:6px;padding:7px 8px;} .sel-bar .btn-mini{padding:5px 8px;}} .zhy-judge{margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(255,60,60,.10);border:1px solid rgba(255,60,60,.45);color:#ff5f5f;font-size:14px;font-weight:700;text-align:center;} .zhy-judge em{display:block;margin-top:3px;font-size:11px;font-weight:400;font-style:normal;color:#ff9a9a;} .zhy-judge.hidden{display:none;} .rr-r .zhy-judge{display:block;margin-top:4px;padding:0;background:none;border:none;color:#ff5f5f;font-size:11px;font-weight:700;text-align:right;white-space:normal;} .rr-r .zhy-judge em{display:none;} .zhy-red{color:#d90000 !important;font-weight:700;} .zhy-tip{display:block;font-size:11px;color:#b04040;font-weight:400;font-style:normal;margin-top:2px;} .pc-light .zhy-judge{background:#ffecec;border-color:#ff9b9b;color:#d90000;} .pc-light .zhy-judge em{color:#b03030;} .pc-light .rr-r .zhy-judge{background:none;border:none;color:#d90000;} .pc-light .zhy-tip{color:#a33;}.app-toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%);background:rgba(0,0,0,.82);color:#fff;padding:10px 18px;border-radius:22px;font-size:14px;z-index:9999;opacity:0;transition:opacity .25s;pointer-events:none;max-width:80%;text-align:center}.cw-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;left:-9999px}.pc-sum-wrap{overflow-x:auto;border:1px solid #dbe9f8;border-radius:10px;background:#fff;}table.pc-sum{width:100%;border-collapse:collapse;font-size:12.5px;}.pc-sum th,.pc-sum td{border:1px solid #e4eefa;padding:6px 9px;text-align:center;white-space:nowrap;}.pc-sum thead th{background:linear-gradient(180deg,#eaf3ff,#dcebfd);color:#10315c;font-size:12px;position:sticky;top:0;z-index:1;}.pc-sum tbody tr:nth-child(even) td{background:#f8fbff;}.pc-sum tbody tr td.pc-sum-grp{background:#eef6fe;font-weight:700;color:#10315c;}.pc-sum tbody tr:hover td{background:#e6f1ff;}.pc-sum td.num{text-align:right;font-variant-numeric:tabular-nums;}.pc-sum td.pc-sum-txt{color:#43648e;font-size:11.5px;}.pc-sum .v-ok{color:#0a84c8;font-weight:600;}.pc-sum .v-warn{color:#b9770e;font-weight:600;}.pc-sum .v-bad{color:#d81f1f;font-weight:700;}
.pc-ph{white-space:nowrap;}.pc-ph-t{display:inline-block;margin-right:4px;cursor:pointer;}.pc-ph-t img{display:block;width:44px;height:33px;object-fit:cover;border:1px solid #c9d6e8;border-radius:3px;background:#f4f8fd;}.pc-ph-t:hover img{border-color:#3f7fd4;box-shadow:0 0 0 2px rgba(63,127,212,.15);}.pc-ph-n{font-style:normal;font-size:11px;color:#6b7f99;margin-left:2px;}.tbl-temp th,.tbl-temp td{padding:7px 5px;font-size:12px;}.tbl-temp th{white-space:normal;line-height:1.25;}.ph-row{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 8px 0;}.ph-row .ph-item{width:46px;height:46px;flex:0 0 auto;}.ph-row .ph-add{width:46px;height:46px;flex:0 0 auto;font-size:16px;}.ph-row .ph-add span{font-size:9px;}.ph-list{display:flex;flex-direction:column;gap:8px;}.ph-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}.ph-line-t{color:#cfe6ff;font-size:12px;}.ph-thumb{width:56px;height:56px;border-radius:6px;overflow:hidden;border:1px solid rgba(0,176,255,.35);display:inline-block;cursor:zoom-in;}.ph-thumb img{width:100%;height:100%;object-fit:cover;display:block;}.tcg-group{border:1px solid rgba(0,176,255,.25);border-radius:10px;padding:10px;margin-bottom:10px;background:rgba(0,176,255,.04);}.tcg-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}.tcg-name{flex:1;font-size:15px;font-weight:700;color:#eaf4ff;}.tcg-std{display:flex;align-items:center;gap:6px;font-size:13px;color:#bcd9f5;margin-bottom:8px;}.tcg-std input{width:72px;}.tcg-pts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;}.tcg-pt{display:inline-flex;align-items:center;gap:4px;background:rgba(0,176,255,.14);border:1px solid rgba(0,176,255,.35);border-radius:14px;padding:3px 6px 3px 10px;font-size:13px;color:#dcefff;}.tcg-pt-x{background:rgba(255,90,90,.18);border:none;color:#ff9f9f;width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:11px;line-height:1;}.tcg-pt-add{display:flex;gap:6px;align-items:center;}.tcg-pt-add input{flex:1;}.tcg-auto{font-size:12px;color:#8fb4dd;padding:4px 0;}
.spec-chips{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 10px}.spec-chip{font-size:12px;padding:4px 10px;border-radius:14px;cursor:pointer;color:#7fc4ff;background:rgba(0,176,255,.1);border:1px solid rgba(0,176,255,.3)}.spec-chip:active{background:rgba(0,176,255,.22)}.pc-light .spec-chip{color:#0072e0;background:rgba(0,140,255,.1);border-color:rgba(0,140,255,.35)}
.tcg-ptstd-h{font-size:12px;color:#9ec9ef;margin:6px 0 4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tcg-ptstd{max-height:240px;overflow-y:auto;border:1px solid rgba(0,176,255,.16);border-radius:8px;padding:4px 6px}.tcg-pt-row{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px dashed rgba(0,176,255,.12)}.tcg-pt-row:last-child{border-bottom:none}.tcg-pt-n{flex:1;min-width:0;font-size:13px;color:#dcefff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcg-plo,.tcg-phi{width:62px;flex:none;padding:5px 4px;font-size:13px;text-align:center}.tcg-tilde{color:#7fb8ea;font-size:13px;flex:none}.tcg-pt-row .tcg-pt-x{flex:none}.mod-exp{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.rmg-sec{border:1px solid rgba(0,176,255,.22);border-radius:10px;padding:9px 10px;margin-bottom:10px;background:rgba(0,176,255,.04)}.rmg-h{font-size:14px;font-weight:700;color:#eaf4ff;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.rmg-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow-y:auto;margin-bottom:6px}.rmg-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(0,176,255,.14);border:1px solid rgba(0,176,255,.35);border-radius:14px;padding:3px 6px 3px 10px;font-size:13px;color:#dcefff}.rmg-chip i{font-style:normal;font-size:11px;color:#8fb4dd}.rmg-x{background:rgba(255,90,90,.18);border:none;color:#ff9f9f;width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:11px;line-height:1}.rmg-add{display:flex;gap:6px;align-items:center}.rmg-add input{flex:1}.prob-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}.prob-chip{padding:6px 10px;border-radius:16px;font-size:12px;cursor:pointer;background:rgba(4,18,43,.6);border:1px solid rgba(0,176,255,.25);color:#9ec9ef}.prob-chip.on{background:rgba(0,176,255,.28);border-color:#00b0ff;color:#fff;font-weight:700}


/* ================= v67 新增样式 ================= */
/* ① 原料监控 · 问题项（缺陷项）勾选 + 数量 + 占比 */
.prob-list { margin: 2px 0 8px; }
.prob-head {
  display: flex; align-items: center; gap: 6px; padding: 2px 2px 6px;
  font-size: 11px; color: #8fb4dd; border-bottom: 1px dashed rgba(0, 176, 255, .22);
}
.prob-head span:nth-child(1) { flex: 1; min-width: 0; }
.prob-head span:nth-child(2) { width: 78px; flex: none; text-align: center; }
.prob-head span:nth-child(3) { width: 66px; flex: none; text-align: right; }
.prob-row {
  display: flex; align-items: center; gap: 6px; padding: 5px 0;
  border-bottom: 1px solid rgba(0, 176, 255, .08);
}
.prob-row .prob-chip { flex: 1; min-width: 0; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prob-row .raw-qty {
  width: 78px; flex: none; text-align: center; font-size: 13px; padding: 6px 4px;
  background: rgba(4, 18, 43, .6); border: 1px solid rgba(0, 176, 255, .25); color: #eaf4ff;
}
.prob-row.on .raw-qty { border-color: #00b0ff; box-shadow: 0 0 0 2px rgba(0, 176, 255, .16); }
.prob-rate { width: 66px; flex: none; text-align: right; font-size: 13px; color: #00d4ff; font-weight: 700; white-space: nowrap; }
.prob-foot { margin-top: 8px; font-size: 12px; color: #8fb4dd; }
.prob-foot b { color: #ffe14d; font-size: 13px; }

/* ② 长按操作提示（记录卡片标题右侧小字） */
.card-title .unit-tag { font-weight: 400; }

/* ③ 检验录入页底部「已保存记录」列表：突出数值 */
.rec-row .rr-r.v-ok { color: #1ee08a; font-weight: 700; }
.rec-row .rr-r.v-bad { color: #ff6b6b; font-weight: 700; }


/* ================= v68 新增样式 ================= */
/* ① 原料监控 · 缺陷项取消多选，改为「− 数量 ＋」步进器 */
.prob-head span:nth-child(2) { width: 124px; }   /* v68：容纳 − 数量 ＋ */
.prob-head span:nth-child(3) { width: 56px; }
.prob-row .prob-name {
  flex: 1; min-width: 0; font-size: 13px; color: #cfe6ff; line-height: 1.25;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.prob-row.on .prob-name { color: #ffe14d; font-weight: 700; }
.prob-step { width: 124px; flex: none; display: flex; align-items: center; gap: 4px; justify-content: center; }
.prob-step .ps-btn {
  width: 30px; height: 30px; flex: none; border-radius: 8px; cursor: pointer;
  border: 1px solid rgba(0, 176, 255, .35); background: rgba(4, 18, 43, .8);
  color: #7fd6ff; font-size: 17px; line-height: 1; font-weight: 700; padding: 0;
}
.prob-step .ps-btn:active { background: rgba(0, 176, 255, .28); color: #fff; }
.prob-row .raw-qty { width: 52px; padding: 6px 2px; }
.prob-rate { width: 56px; font-size: 12px; }

/* ② 原料监控录入页：保存按钮加长（整行加大） */
.btn-xl { width: 100%; font-size: 17px; padding: 16px 12px; letter-spacing: 3px; border-radius: 12px; }

/* ③ 记录行：已选项目逐项完整显示 */
.rr-kv { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 3px; }
.rr-kv span {
  font-size: 11px; color: #9dc4e8; background: rgba(0, 176, 255, .08);
  border: 1px solid rgba(0, 176, 255, .18); border-radius: 6px; padding: 2px 6px; white-space: nowrap;
}

/* ④ 详情弹窗字段表（车次/养殖户/追溯编号…逐项列出） */
.tbl-kv th { width: 92px; text-align: left; font-weight: 400; color: #8fb4dd; white-space: nowrap; }
.tbl-kv td { color: #eaf4ff; word-break: break-all; }

/* ⑤ 原料记录行的缺陷/说明：允许换行，完整显示不省略 */
.rec-row .rr-line2.rr-wrap { white-space: normal; overflow: visible; text-overflow: clip; word-break: break-word; line-height: 1.45; }

/* ===== v69：管理员修改检验记录 —— 编辑弹窗表单 ===== */
.ed-form { padding: 2px 0 4px; }
.ed-form .frow { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.ed-form .frow > label { flex: 0 0 96px; font-size: 13px; color: #46608a; font-weight: 600; }
.ed-form .frow > input,
.ed-form .frow > select,
.ed-form .frow > textarea {
  flex: 1; min-width: 0; box-sizing: border-box;
  border: 1px solid #c8d6e8; border-radius: 8px; padding: 9px 10px;
  font-size: 14px; color: #22364f; background: #fff;
}
.ed-form .frow > textarea { min-height: 60px; resize: vertical; line-height: 1.5; }
.ed-form .frow > select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%2346608a' stroke-width='1.6'/></svg>") no-repeat right 10px center; padding-right: 28px; }
.ed-sub { margin: 14px 0 6px; border: 1px solid #dce6f2; border-radius: 10px; background: #f7fafd; padding: 8px 10px 10px; }
.ed-sub-h { font-size: 12px; color: #46608a; font-weight: 700; margin-bottom: 6px; letter-spacing: .5px; }
.ed-line { display: flex; align-items: center; gap: 6px; margin: 6px 0; }
.ed-line .ed-n { flex: 1; min-width: 0; font-size: 13px; color: #22364f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ed-line input { flex: 0 0 92px; width: 92px; box-sizing: border-box; border: 1px solid #c8d6e8; border-radius: 8px; padding: 7px 8px; font-size: 14px; text-align: center; background: #fff; color: #22364f; }
.ed-line textarea { flex: 1; min-width: 0; box-sizing: border-box; border: 1px solid #c8d6e8; border-radius: 8px; padding: 8px; font-size: 14px; line-height: 1.5; background: #fff; color: #22364f; }
.ed-line .unit-tag { flex: 0 0 auto; }
@media (max-width: 360px) {
  .ed-form .frow > label { flex-basis: 82px; font-size: 12px; }
  .ed-line input { flex-basis: 78px; width: 78px; }
}

/* ===== v70 · 缺陷照片同步保存到手机本地 ===== */
/* 缺陷照片卡片下方的控制条：自动保存开关 + 一键保存到手机 */
.ph-save-bar {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 10px; padding: 8px 10px;
  background: rgba(0, 176, 255, .07);
  border: 1px solid rgba(0, 176, 255, .22);
  border-radius: 10px;
}
.ph-save-bar .btn-mini { flex: none; margin-left: auto; }

/* 开关（纯 CSS，::before 为滑轨，::after 为滑块） */
.ph-sw {
  position: relative; display: inline-flex; align-items: center;
  font-size: 12px; line-height: 1; color: #8aa0b4;
  background: #f1f5f9; border: 1px solid #d7e0ea;
  border-radius: 20px; padding: 6px 12px 6px 8px;
  cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
}
.ph-sw::before {
  content: ''; flex: none;
  width: 26px; height: 15px; margin-right: 7px;
  border-radius: 20px; background: #cbd5e1;
  transition: background .18s ease;
}
.ph-sw::after {
  content: ''; position: absolute; left: 10px; top: 50%;
  width: 11px; height: 11px; margin-top: -5.5px;
  border-radius: 50%; background: #fff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
  transition: transform .18s ease;
}
.ph-sw.on { color: #0b6fbf; background: rgba(0, 176, 255, .12); border-color: rgba(0, 176, 255, .45); }
.ph-sw.on::before { background: #00b0ff; }
.ph-sw.on::after { transform: translateX(11px); }

/* 窄屏更紧凑 */
@media (max-width: 380px) {
  .ph-save-bar { gap: 6px; padding: 7px 8px; }
  .ph-sw { font-size: 11px; padding: 6px 10px 6px 7px; }
}

/* ===== v71 · 溢加量管理（产品·规格·溢加量·内包装重量，称重上限自动算） ===== */

/* 录入页：四项标准值的两列网格 */
.ov-std-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  margin: 2px 0 8px;
}
.ov-std-cell { display: flex; flex-direction: column; gap: 4px; }
.ov-std-cell > label { font-size: 12px; color: #8fb4dd; padding-left: 2px; }
.ov-std-cell .kb-in { width: 100%; }
.ov-std-cell .fixed-val,
.fixed-val.ov-max {
  display: flex; align-items: center; justify-content: center;
  min-height: 38px; border-radius: 8px;
  background: rgba(0, 176, 255, .12); border: 1px solid rgba(0, 176, 255, .35);
  color: #7fc4ff; font-size: 15px; font-weight: 600;
}
/* 规格快捷：选中态 */
.spec-chip.on {
  background: rgba(0, 176, 255, .32); border-color: rgba(0, 176, 255, .75);
  color: #eaf6ff; font-weight: 600;
}

/* 系统管理「溢加量管理」列表 */
.ovm-item {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; margin-bottom: 6px;
  border: 1px solid rgba(0, 176, 255, .2); border-radius: 9px;
  background: rgba(0, 176, 255, .05);
}
.ovm-l { flex: 1; min-width: 0; }
.ovm-n { font-size: 14px; color: #dcefff; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ovm-n i.ovm-nop { font-style: normal; color: #8fb4dd; }
.ovm-d { font-size: 11px; color: #8fb4dd; margin-top: 3px; }
.ovm-d b { color: #bcdcff; font-weight: 600; }
.ovm-u {
  flex: none; font-size: 11px; color: #7fc4ff;
  background: rgba(0, 176, 255, .1); border: 1px solid rgba(0, 176, 255, .25);
  border-radius: 7px; padding: 3px 7px; white-space: nowrap;
}
.ovm-u b { font-size: 13px; }
.ovm-add .frow input { width: 100%; }

/* 只读提示（检验员看检验记录时的「仅管理员可修改」） */
.ro-tip {
  width: 100%; text-align: center; font-size: 12px; line-height: 1.5;
  color: #8fb4dd; background: rgba(140, 170, 200, .1);
  border: 1px dashed rgba(140, 170, 200, .35); border-radius: 8px;
  padding: 8px 10px; margin-bottom: 8px;
}
/* 浅色（电脑端）适配 */
.pc-light .ovm-item, .pc-light .ovm-u { background: rgba(0, 140, 255, .06); border-color: rgba(0, 140, 255, .25); }
.pc-light .ovm-n, .pc-light .ovm-d b { color: #1b3f5e; }
.pc-light .ovm-d, .pc-light .ovm-n i.ovm-nop { color: #4a6c88; }
.pc-light .ro-tip { color: #4a6c88; background: rgba(0, 140, 255, .06); border-color: rgba(0, 140, 255, .28); }

/* ===================== v73 电脑端四大模块 ===================== */
/* 通用工具条 */
.pc-seg { display: inline-flex; gap: 0; border: 1px solid #c9e0fc; border-radius: 8px; overflow: hidden; }
.pc-seg .seg-btn { border: none !important; border-radius: 0 !important; }
.pc-seg .seg-btn + .seg-btn { border-left: 1px solid #d7e5f4 !important; }
.pc-flt { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: #40618c; white-space: nowrap; }
.pc-flt > label { font-weight: 600; }
.pc-flt > i { font-style: normal; color: #7e97b5; }
.pc-flt input, .pc-flt select { font-size: 12px; padding: 5px 8px; }
.pc-daynav { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #40618c; }
.pc-daynav input[type="date"] { font-size: 12px; padding: 4px 6px; }
.pc-tabs { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.pc-empty { padding: 26px 10px !important; text-align: center; color: #96abc4 !important; font-size: 13px; }

/* 首页 · 缺陷项图表区 */
.pc-chart-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0 4px; }
.pc-chart-grp { margin-bottom: 16px; }
.pc-grp-title { font-size: 14px; font-weight: 700; color: #16324f; margin: 14px 0 8px; padding-left: 9px; border-left: 3px solid #008cff; }
.pc-grp-title i { font-style: normal; font-weight: 400; font-size: 12px; color: #7e97b5; margin-left: 6px; }
.pc-chart-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 12px; }
.pc-chart-card { background: #fff; border: 1px solid #d7e5f4; border-radius: 12px; padding: 10px 12px 6px; box-shadow: 0 4px 14px rgba(30, 100, 200, .07); }
.pc-chart-hd { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.pc-chart-t b { font-size: 13px; color: #16324f; }
.pc-chart-sub { display: block; font-size: 11px; color: #7e97b5; margin-top: 2px; }
.pc-chart-tools { display: inline-flex; gap: 0; border: 1px solid #c9e0fc; border-radius: 7px; overflow: hidden; flex-shrink: 0; }
.pc-chart-tools .seg-btn { border: none !important; border-radius: 0 !important; padding: 3px 9px; font-size: 11px; }
.pc-chart-tools .seg-btn + .seg-btn { border-left: 1px solid #d7e5f4 !important; }
.pc-chart-body { position: relative; margin-top: 4px; }
.pc-chart-cv { width: 100%; display: block; }
.pc-chart-tip { display: block; text-align: center; font-size: 11px; color: #a3b6cb; padding-bottom: 2px; }

/* 图表右键菜单 */
.pc-cmenu { position: fixed; z-index: 9999; background: #fff; border: 1px solid #c9e0fc; border-radius: 10px; box-shadow: 0 8px 26px rgba(20, 70, 140, .22); overflow: hidden; min-width: 164px; }
.pc-cmenu button { display: block; width: 100%; text-align: left; padding: 9px 14px; font-size: 13px; color: #16324f; background: none; border: none; cursor: pointer; }
.pc-cmenu button:hover { background: rgba(0, 140, 255, .1); }
.pc-cmenu button + button { border-top: 1px solid #e6eef8; }

/* 首页 · 日检验数据明细表 */
.pc-day-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0 4px; }
.pc-day-tbl { font-size: 12px; }
.pc-day-tbl th, .pc-day-tbl td { padding: 6px 8px; }

/* 检验数据汇总 */
.pc-sum-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0 4px; }
.pc-sum-wrap { overflow-x: auto; }
.pc-sum-tbl { border-collapse: collapse; font-size: 12px; white-space: nowrap; min-width: 100%; }
.pc-sum-tbl th { position: sticky; top: 0; z-index: 2; background: #eaf4ff !important; }
.pc-sum-tbl th[rowspan] { background: #e1efff !important; }
.pc-sum-tbl td, .pc-sum-tbl th { border: 1px solid #dce9f7; padding: 5px 7px; text-align: center; }
.pc-sum-tbl td.num { text-align: center; font-variant-numeric: tabular-nums; }
.pc-sum-tbl td.sp { text-align: left; font-weight: 600; color: #16324f; background: #f5faff; }
.pc-sum-tbl thead tr:first-child th { top: 0; }
.pc-sum-tbl thead tr:nth-child(2) th { top: 30px; }

/* 数据分析 */
.pc-ana-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; margin: 14px 0; }
.pc-ana-chart { background: #fff; border: 1px solid #d7e5f4; border-radius: 12px; padding: 10px 12px; }
.pc-ana-ct { font-size: 13px; font-weight: 600; color: #16324f; margin-bottom: 6px; }
.pc-ana-chart canvas { width: 100%; display: block; }
.pc-ana-box { background: #f3f9ff; border: 1px solid #cfe4fb; border-radius: 10px; padding: 12px 14px; margin-top: 12px; }
.pc-ana-t { font-size: 13px; font-weight: 700; color: #0072e0; margin-bottom: 6px; }
.pc-ana-box ul { margin: 0; padding-left: 18px; }
.pc-ana-box li { font-size: 13px; color: #2a4a6e; line-height: 1.9; }
.pc-ana-list { margin-top: 12px; font-size: 12px; color: #40618c; }
.pc-ana-list b { display: block; margin-bottom: 6px; color: #16324f; }
.pc-ana-chip { display: inline-block; margin: 0 6px 6px 0; padding: 4px 10px; border-radius: 14px; background: #eef6ff; border: 1px solid #d3e6fa; }
.pc-ana-chip i { font-style: normal; color: #0072e0; font-weight: 700; }
.pc-ana-chip.hot { background: #fff2f2; border-color: #ffd2d2; }
.pc-ana-chip.hot i { color: #e03030; }

/* 数据查询 */
.pc-qr-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 10px 0 4px; }
.pc-qr-tbl { font-size: 12px; }
.pc-qr-tbl th, .pc-qr-tbl td { padding: 6px 8px; border-bottom: 1px solid #e6eef8; }
.pc-qr-tbl tr.sel td { background: rgba(0, 140, 255, .08); }
.pc-selall { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #40618c; }
.q-sel-col { width: 40px; text-align: center; }


/* ===== v74 · 周黑鸭产品总不良率要求（徽章 + 标准表） ===== */
.pc-chart-bdg { display: block; margin-top: 5px; }
.zhy-bdg {
  display: inline-block; padding: 2px 9px; border-radius: 10px;
  font-size: 11px; font-weight: 700; line-height: 17px; white-space: nowrap;
  border: 1px solid transparent; cursor: help;
}
.zhy-bdg.ok { background: rgba(16, 185, 129, .14); color: #059669; border-color: rgba(16, 185, 129, .3); }
.zhy-bdg.warn { background: rgba(245, 158, 11, .16); color: #b45309; border-color: rgba(245, 158, 11, .32); }
.zhy-bdg.bad { background: rgba(239, 68, 68, .14); color: #dc2626; border-color: rgba(239, 68, 68, .3); }
.zhy-bdg.none { background: rgba(126, 151, 181, .14); color: #7e97b5; border-color: rgba(126, 151, 181, .28); }

.pc-zhy-std .tbl-wrap { margin-top: 8px; }
.pc-zhy-std table { min-width: 660px; }
.pc-zhy-std th, .pc-zhy-std td { text-align: left; font-size: 12px; padding: 7px 10px; }
.pc-zhy-std th { background: #eef5fb; color: #16324f; font-weight: 700; }
.pc-zhy-std td:first-child { font-weight: 700; color: #16324f; }
.pc-zhy-std td i { display: block; font-style: normal; font-size: 11px; color: #93a7bd; font-weight: 400; margin-top: 2px; }
.pc-zhy-std .c-ok { color: #059669; font-weight: 700; }
.pc-zhy-std .c-warn { color: #b45309; font-weight: 700; }
.pc-zhy-std .c-bad { color: #dc2626; font-weight: 700; }
.pc-zhy-std .c-dim { color: #8fa5bd; font-size: 11px; }
