*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.inline{display:inline}.table{display:table}.grid{display:grid}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{font-family:Microsoft YaHei,PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#1f2933;background:#f4f7fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid rgba(45,156,219,.45);outline-offset:1px}select:focus-visible{outline:2px solid rgba(45,156,219,.45);outline-offset:1px}@keyframes softEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseNode{0%,to{box-shadow:0 0 #2d9cdb47}50%{box-shadow:0 0 0 8px #2d9cdb00}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.login-page{position:relative;width:100%;height:100%;overflow:hidden;background:linear-gradient(90deg,#6040261f,#ffffff05),url(/contentFullScreenBg.jpg) center / cover no-repeat}.login-logo{position:absolute;left:20px;top:17px}.login-logo img{width:101px;height:auto;display:block}.login-title{position:absolute;left:calc(50% - 800px);top:280px;color:#fff;font-family:SimSun,Songti SC,serif;font-size:60px;font-weight:700;line-height:1.76;letter-spacing:8px;text-shadow:0 2px 9px rgba(92,64,36,.34);white-space:nowrap}.login-card{position:absolute;left:calc(50% + 72px);top:200px;width:500px;min-height:400px;padding:27px 31px 25px;border-radius:5px;background:#fffffffa;box-shadow:0 8px 26px #50402d33}.login-card h1{margin:0 0 21px;color:#008542;font-size:24px;font-weight:700;text-align:center}.login-field{position:relative;display:block;margin-bottom:8px}.login-field:before{content:"";position:absolute;left:12px;top:50%;width:13px;height:13px;transform:translateY(-50%);opacity:.52;pointer-events:none}.username-field:before{border:1.6px solid #aeb6bd;border-radius:50%;box-shadow:0 7px 0 -4px #aeb6bd}.password-field:before{border:1.6px solid #aeb6bd;border-radius:2px}.password-field:after{content:"";position:absolute;left:15px;top:8px;width:7px;height:6px;border:1.5px solid #aeb6bd;border-bottom:0;border-radius:6px 6px 0 0;opacity:.52;pointer-events:none}.login-card input{width:100%;height:50px;border:1px solid #e7eaee;background:#fff;color:#172033;font-size:20px}.login-field input{padding:0 10px 0 37px}.login-field input::-moz-placeholder{color:#626f7a;opacity:1}.login-field input::placeholder{color:#626f7a;opacity:1}.remember-line{display:flex;align-items:center;gap:10px;margin:10px 0 30px;color:#8a949e;font-size:16px}.remember-line input{width:15px;height:8px;margin:0;accent-color:#008542}.login-card button{width:100%;height:50px;border:0;background:#008542;color:#fff;font-size:28px;font-weight:700;letter-spacing:15px}.login-page footer{position:absolute;left:0;right:0;bottom:0;height:24px;display:flex;align-items:center;justify-content:center;background:#008542;color:#ffffffd1;font-size:11px}@media (max-width: 760px){.login-logo{left:18px;top:16px}.login-title{left:50%;top:108px;transform:translate(-50%);font-size:30px;text-align:center;letter-spacing:5px}.login-card{left:50%;right:auto;top:265px;transform:translate(-50%)}}.app-shell{--top-blue: #234a73;--side-blue: #24659b;--active-blue: #2f8fcf;--content-gray: #f4f7fa;--card-white: #ffffff;--table-head: #f1f3f5;--table-stripe: #f7fafc;--text-main: #1f2933;--text-sub: #6b7280;--border: #e5e7eb;--action-blue: #2d9cdb;width:100%;height:100%;overflow:hidden;background:var(--content-gray)}.top-bar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 27px 0 28px;background:var(--top-blue);color:#fff}.system-name{font-size:14px;font-weight:700;letter-spacing:.2px}.top-user{display:flex;align-items:center;gap:7px;font-size:12px;color:#fffffff2}.avatar-icon{margin-left:12px;color:#ffffffe0;fill:#ffffff2e}.logout-button{height:24px;padding:0 8px;border:1px solid rgba(255,255,255,.38);border-radius:3px;background:#ffffff14;color:#fff;font-size:12px}.app-body{height:calc(100% - 48px);display:flex}.side-nav{width:88px;height:100%;display:flex;flex-direction:column;justify-content:space-between;background:var(--side-blue);color:#ffffffe6;box-shadow:inset -1px 0 #ffffff14}.menu-list{padding-top:2px}.menu-item{position:relative;width:88px;height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;color:#ffffffdb;background:transparent;padding:0 5px;font-size:11px;line-height:1.18;text-align:center}.menu-item svg{color:#e0effff2}.menu-item:hover{background:#ffffff14}.menu-item.active{background:var(--active-blue);color:#fff}.menu-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#fff}.collapse-btn{width:88px;height:40px;display:flex;align-items:center;justify-content:center;border:0;color:#fff;background:transparent}.workspace{width:calc(100% - 88px);height:100%;padding:0 8px 8px;overflow:hidden;background:var(--content-gray)}.breadcrumb{height:40px;display:flex;align-items:center;gap:5px;padding-left:8px;color:#5f6f82;font-size:12px}.breadcrumb span:last-child{color:#586675}.page-card{height:calc(100% - 40px);padding:0 20px;overflow:hidden;background:var(--card-white);border-radius:1px;border:1px solid rgba(229,231,235,.72)}.page-title-row{height:39px;display:flex;align-items:end;padding-bottom:8px}.title-left{display:flex;align-items:center;gap:8px}.title-icon{width:13px;height:13px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;background:#3aa0c9;color:#fff;font-size:10px;line-height:1}.page-title-row h1{margin:0;font-size:13px;font-weight:700;color:#111827}.filter-row{position:relative;height:55px;display:flex;align-items:start;padding-top:6px}.field-label{width:90px;margin-left:32px;padding-top:8px;text-align:right;color:#2f3945;font-size:12px}.warehouse-input{width:105px;height:25px;margin-left:10px;padding:0 8px;border:1px solid var(--border);border-radius:4px;background:#fff;color:var(--text-main);font-size:12px}.query-btn{position:absolute;right:0;top:7px;height:23px;display:inline-flex;align-items:center;gap:5px;padding:0 11px;border:0;border-radius:3px;background:#3ba0cf;color:#fff;font-size:12px}.query-btn:hover{background:#2d92c4}.action-row{height:25px;display:flex;justify-content:flex-end;align-items:start}.add-btn{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0;border:0;background:transparent;color:var(--action-blue);font-size:12px}.table-wrap{width:100%;overflow:hidden}table{width:100%;border-collapse:collapse;table-layout:fixed;color:#111827;font-size:12px}thead tr{height:46px;background:var(--table-head)}th{text-align:left;font-weight:700;color:#0f172a}th,td{padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}th:nth-child(1),td:nth-child(1){width:7%;padding-left:22px}th:nth-child(2),td:nth-child(2){width:10%}th:nth-child(3),td:nth-child(3){width:10%}th:nth-child(4),td:nth-child(4){width:10%}th:nth-child(5),td:nth-child(5){width:10%}th:nth-child(6),td:nth-child(6){width:10%}th:nth-child(7),td:nth-child(7){width:10%}th:nth-child(8),td:nth-child(8){width:10%}th:nth-child(9),td:nth-child(9){width:10%}th:nth-child(10),td:nth-child(10){width:13%}tbody tr{height:31px;background:#fff}tbody tr:nth-child(2n){background:var(--table-stripe)}.table-actions{display:flex;align-items:center;gap:8px}.table-actions button{display:inline-flex;align-items:center;padding:0;border:0;background:transparent;color:var(--action-blue);font-size:12px}.pagination{position:absolute;right:24px;bottom:15px;display:flex;align-items:center;gap:9px;color:#536170;font-size:12px}.page-card{position:relative}.page-size{width:71px;height:22px;display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid var(--border);border-radius:3px;background:#fff;color:#536170;font-size:12px}.pager{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:2px;background:#eef0f3;color:#9aa4b2}.pager.current{background:#3ba0cf;color:#fff}.pager.disabled{cursor:not-allowed;opacity:.72}.page-input{width:32px;height:22px;border:1px solid var(--border);border-radius:3px;text-align:center;color:#536170;font-size:12px}@media (max-width: 900px){.workspace{overflow-x:auto}.page-card{min-width:880px}}.dashboard-page{height:calc(100% - 40px);display:flex;flex-direction:column;gap:12px;padding:14px;overflow:hidden;background:linear-gradient(180deg,#f4f9fd,#f7f9fb);border:1px solid rgba(229,231,235,.72)}.dashboard-header{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#fff;border:1px solid #e8edf2;border-radius:3px}.dashboard-title{display:flex;align-items:center;gap:8px}.dashboard-title h1{margin:0;color:#111827;font-size:15px;font-weight:700}.dashboard-header p{margin:5px 0 0 21px;color:#6b7280;font-size:12px}.dashboard-tools{display:flex;align-items:center;gap:10px;color:#64748b;font-size:12px}.status-pill{height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;background:#eaf8f1;color:#16884d}.refresh-time{display:inline-flex;align-items:center;gap:5px}.refresh-btn,.task-head button{height:28px;display:inline-flex;align-items:center;gap:5px;padding:0 10px;border:0;border-radius:3px;background:#3ba0cf;color:#fff;font-size:12px}.dashboard-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(280px,.72fr) minmax(560px,1.55fr) minmax(300px,.82fr);gap:14px}.dashboard-panel{min-height:0;background:#fff;border:1px solid #d9eaf4;border-radius:8px;overflow:hidden;box-shadow:0 12px 26px #234a7312}.panel-head{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid #dcecf5;background:linear-gradient(90deg,#f5fbff,#fff 72%)}.panel-head h2{position:relative;margin:0;padding-left:10px;color:#142033;font-size:13px;font-weight:700}.panel-head h2:before{content:"";position:absolute;left:0;top:50%;width:3px;height:13px;border-radius:99px;background:#2d9cdb;transform:translateY(-50%)}.panel-head span{color:#7a8797;font-size:12px}.overview-panel,.warning-panel{display:flex;flex-direction:column}.overview-main-card{height:112px;margin:14px;display:flex;flex-direction:column;justify-content:center;padding:0 14px;border:1px solid #dceef8;border-radius:10px;background:linear-gradient(135deg,#f5fbff,#edf7fc)}.overview-label,.mini-chart-title{color:#425466;font-size:12px}.overview-empty{margin-top:6px;color:#2d9cdb;font-size:26px;font-weight:700}.overview-subline{margin-top:4px;color:#718096;font-size:12px}.overview-card-grid{display:grid;grid-template-columns:1fr;gap:10px;padding:0 14px}.overview-card{height:64px;display:flex;flex-direction:column;justify-content:center;padding:0 10px;border:1px solid #edf1f5;border-radius:8px;background:#fbfdff}.overview-card span{color:#718096;font-size:12px}.overview-card strong{margin-top:4px;color:#172033;font-size:18px}.mini-chart-card{margin:14px;padding:14px;border:1px solid #edf1f5;border-radius:8px;background:linear-gradient(180deg,#fff,#fbfdff)}.grain-share-card{display:flex;align-items:center;gap:14px;margin-top:12px}.donut-chart{width:78px;height:78px;flex-shrink:0;border-radius:50%;background:conic-gradient(#2d9cdb 0,#2d9cdb 60%,#f2c94c 60%,#f2c94c);position:relative;box-shadow:0 0 0 7px #f4f9fd}.donut-chart:after{content:"占比";position:absolute;top:17px;right:17px;bottom:17px;left:17px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:#607080;font-size:12px;font-weight:700}.grain-share-legend{display:flex;flex-direction:column;gap:8px;color:#526171;font-size:12px}.grain-share-legend span{display:inline-flex;align-items:center;gap:6px}.grain-share-legend i{width:9px;height:9px;display:inline-block;border-radius:50%}.grain-share-legend .wheat{background:#2d9cdb}.grain-share-legend .soybean{background:#f2c94c}.empty-chart-lines,.grain-distribution{display:flex;flex-direction:column;gap:9px;margin-top:12px}.grain-distribution div{display:grid;grid-template-columns:42px 1fr 34px;align-items:center;gap:8px;color:#526171;font-size:12px}.grain-distribution i{height:8px;border-radius:999px;background:linear-gradient(90deg,#2d9cdb,#d6edf8)}.grain-distribution b{color:#172033;font-weight:700}.empty-chart-lines span{height:8px;border-radius:999px;background:linear-gradient(90deg,#d6edf8,#f3f7fa)}.empty-chart-lines span:nth-child(2){width:78%}.empty-chart-lines span:nth-child(3){width:64%}.map-panel{display:flex;flex-direction:column}.map-head{height:52px}.map-head>div:first-child{display:flex;flex-direction:column;gap:4px}.layer-tabs{display:flex;gap:6px}.layer-tabs button{height:24px;padding:0 8px;border:1px solid #d9e5ee;border-radius:3px;background:#fff;color:#607080;font-size:12px}.layer-tabs button.active{border-color:#087ea4;background:#087ea4;color:#fff;font-weight:800}.warehouse-map-shell{position:relative;flex:1;min-height:0;margin:12px;overflow:hidden;border:1px solid #cfe4f0;border-radius:4px;background:#eef3f6;box-shadow:inset 0 0 0 1px #2d9cdb14}.warehouse-map-shell.calibrating{cursor:crosshair}.warehouse-map-image{width:100%;height:100%;display:block;-o-object-fit:contain;object-fit:contain}.warehouse-marker{position:absolute;transform:translate(-50%,-50%);width:18px;height:18px;padding:0;border:2px solid rgba(255,255,255,.95);border-radius:50%;color:#fff;font-size:11px;font-weight:700;box-shadow:0 3px 9px #0f172a3d;transition:width .16s ease,border-radius .16s ease,background .16s ease}.warehouse-marker span{opacity:0;white-space:nowrap;transform:scale(.82);transition:opacity .16s ease,transform .16s ease}.warehouse-marker:hover,.warehouse-marker:focus-visible,.warehouse-marker.selected{width:38px;border-radius:999px}.warehouse-marker:hover span,.warehouse-marker:focus-visible span,.warehouse-marker.selected span{opacity:1;transform:scale(1)}.warehouse-marker.normal{background:#27ae60}.warehouse-marker.warning{background:#f2994a}.warehouse-marker.level3{background:#f2c94c}.warehouse-marker.alarm{background:#eb5757}.warehouse-marker.selected{outline:3px solid rgba(45,156,219,.42);outline-offset:2px}.warehouse-marker.calibrating{cursor:grab;touch-action:none}.warehouse-marker.calibration-selected{outline:3px solid #1677b8;outline-offset:3px}.map-calibration-tools{position:absolute;z-index:6;top:12px;left:12px}.map-calibration-tools button,.map-calibration-actions button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid #c9dde9;border-radius:4px;background:#fffffff5;color:#526171;box-shadow:0 4px 12px #0f172a1f}.map-calibration-tools button.active{border-color:#1677b8;background:#1677b8;color:#fff}.map-calibration-panel{position:absolute;z-index:6;top:50px;left:12px;min-width:168px;padding:8px;border:1px solid #c9dde9;border-radius:4px;background:#fffffff5;color:#526171;box-shadow:0 6px 16px #0f172a24;font-size:11px}.map-calibration-panel>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.map-calibration-panel b{color:#1677b8;font-size:12px}.map-calibration-actions{display:flex;gap:5px;margin-top:7px}.map-calibration-actions button{width:26px;height:26px;box-shadow:none}.map-calibration-actions button:disabled{cursor:not-allowed;opacity:.42}.map-calibration-panel small{display:block;margin-top:6px;color:#1677b8}.warehouse-info-card{position:absolute;top:12px;right:12px;width:210px;padding:12px;border:1px solid rgba(45,156,219,.26);border-radius:6px;background:#fffffff0;box-shadow:0 10px 28px #0f172a29;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.warehouse-info-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:9px;border-bottom:1px solid #e6eef5}.warehouse-info-head div{display:flex;flex-direction:column;gap:3px}.warehouse-info-head strong{color:#142033;font-size:15px}.warehouse-info-head small{color:#718096;font-size:11px}.warehouse-position-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding-top:10px}.warehouse-position-tabs button{height:26px;border:1px solid #dcecf5;border-radius:4px;background:#f7fbff;color:#526171;font-size:12px;cursor:pointer}.warehouse-position-tabs button.active{border-color:#087ea4;background:#087ea4;color:#fff;font-weight:800;box-shadow:0 4px 10px #087ea438}.info-status{flex-shrink:0;height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;color:#fff;font-size:11px}.info-status.normal{background:#27ae60}.info-status.warning{background:#f2994a}.info-status.level3{background:#f2c94c}.info-status.alarm{background:#eb5757}.warehouse-info-grid{display:grid;grid-template-columns:1fr;gap:8px;padding-top:10px}.warehouse-info-grid div{display:flex;align-items:center;justify-content:space-between;gap:12px}.warehouse-info-grid span{color:#718096;font-size:12px}.warehouse-info-grid b{color:#172033;font-size:12px;font-weight:700}.map-legend{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:4px;background:#ffffffe6;color:#526171;font-size:12px;box-shadow:0 4px 12px #0f172a1f}.map-legend span,.warning-levels div{display:inline-flex;align-items:center;gap:5px}.map-legend i,.dot{width:8px;height:8px;display:inline-block;border-radius:50%}i.normal{background:#27ae60}i.warning,.dot.warning{background:#f2994a}i.level3{background:#f2c94c}i.alarm,.dot.alarm{background:#eb5757}.warehouse-detail-strip{height:62px;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:0 12px 12px}.warehouse-detail-strip div{display:flex;flex-direction:column;justify-content:center;padding:0 10px;border:1px solid #dcecf5;border-radius:4px;background:linear-gradient(180deg,#fff,#f7fbff)}.warehouse-detail-strip span{color:#718096;font-size:12px}.warehouse-detail-strip strong{margin-top:3px;color:#172033;font-size:13px}.warning-total-card{height:78px;margin:12px;display:flex;align-items:center;gap:12px;padding:0 14px;border:1px solid #fde8d7;border-radius:4px;background:#fff8f2;color:#f2994a}.warning-total-card span{color:#7a8797;font-size:12px}.warning-total-card strong{display:block;margin-top:3px;color:#142033;font-size:22px}.warning-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:0 12px;color:#526171;font-size:12px}.warning-levels div{height:30px;justify-content:center;border:1px solid #edf1f5;border-radius:3px;background:#fbfdff}.warning-donut-card{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:12px;padding:12px}.warning-donut{width:82px;height:82px;display:grid;place-items:center;border-radius:50%;position:relative}.warning-donut:after{content:"";position:absolute;top:15px;right:15px;bottom:15px;left:15px;border-radius:50%;background:#fff}.warning-donut span{position:relative;z-index:1;color:#142033;font-size:16px;font-weight:800}.warning-donut-legend{display:flex;flex-direction:column;gap:7px;color:#526171;font-size:12px}.warning-donut-legend span{display:flex;align-items:center;gap:6px}.warning-donut-legend i,.warning-summary-grid i{width:8px;height:8px;border-radius:50%}.warning-donut-legend i.normal{background:#2f80ed}.warning-donut-legend i.level1{background:#eb5757}.warning-donut-legend i.level2,.warning-donut-legend i.warning{background:#f2994a}.warning-donut-legend i.level3{background:#f2c94c}.warning-donut-legend i.alarm{background:#eb5757}.warning-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 12px 0}.warning-summary-grid div{min-height:54px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:0 10px;border:1px solid #edf1f5;border-radius:4px;background:#fbfdff}.warning-summary-grid span{color:#7a8797;font-size:12px}.warning-summary-grid b{color:#142033;font-size:18px}.warning-type-list{display:flex;flex-direction:column;gap:10px;padding:14px 12px}.warning-type-row{display:grid;grid-template-columns:64px 1fr 24px;align-items:center;gap:8px;color:#526171;font-size:12px}.warning-type-row i{height:7px;max-width:100%;border-radius:999px;background:linear-gradient(90deg,#f2994a,#f7e3cf)}.warning-type-row b{color:#172033;font-weight:700}.warning-list-placeholder{margin:0 12px 12px;padding:10px;border:1px solid #edf1f5;border-radius:4px;background:#fbfdff}.list-title{margin-bottom:8px;color:#142033;font-size:12px;font-weight:700}.warning-list-placeholder button{width:100%;min-height:34px;margin-top:6px;display:flex;align-items:center;gap:6px;border:1px dashed #d8e2ea;border-radius:3px;background:#fff;color:#526171;font-size:12px}.warning-list-placeholder button:hover{border-color:#9bd2ec;background:#f5fbff}.warning-tag{flex-shrink:0;height:20px;display:inline-flex;align-items:center;padding:0 6px;border-radius:3px;color:#fff;font-size:11px}.warning-tag.level3,.warning-tag.报警{background:#eb5757}.warning-tag.level2,.warning-tag.预警{background:#f2994a}.warning-tag.level1{background:#d9a514}.warning-tag.normal{background:#2f80ed}.warning-list-placeholder em{margin-left:auto;color:#7a8797;font-style:normal}.task-panel{height:128px;flex-shrink:0}.task-head{height:42px}.task-head>div:first-child{display:flex;flex-direction:column;gap:3px}.task-stage-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;height:calc(100% - 42px);padding:12px 14px}.task-stage-card{height:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 14px;border:1px solid #dcecf5;border-radius:4px;background:linear-gradient(180deg,#fff,#f4faff);color:#526171;font-size:12px}.task-stage-card svg{flex-shrink:0;width:28px;height:28px;padding:5px;border-radius:50%;background:#eaf7fd;color:#2d9cdb}.task-stage-card:hover{border-color:#9bd2ec;box-shadow:0 4px 10px #2d9cdb1f}.task-stage-card strong{margin-left:auto;color:#172033;font-size:24px}.process-dialog-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#0f172a57}.system-confirm-mask{z-index:80;background:#0f172a75}.system-confirm-dialog{position:relative;width:min(450px,calc(100vw - 32px));display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;padding:22px 22px 0;border:1px solid #d9eaf4;border-radius:8px;background:#fff;box-shadow:0 22px 55px #0f172a4d;animation:softEnter .18s ease-out}.system-confirm-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#eaf7fd;color:#2384b6}.system-confirm-icon.danger{background:#fef2f2;color:#c2413a}.system-confirm-content{min-width:0;padding:1px 24px 20px 0}.system-confirm-content h2{margin:0;color:#172033;font-size:16px;line-height:1.5}.system-confirm-content p{margin:8px 0 0;color:#526171;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.system-confirm-close{position:absolute;top:14px;right:14px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:4px;background:transparent;color:#718096}.system-confirm-close:hover{background:#eef4f7;color:#172033}.system-confirm-actions{grid-column:1 / -1;min-height:56px;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 -22px;padding:0 22px;border-top:1px solid #edf1f5;background:#f8fbfd;border-radius:0 0 8px 8px}.system-confirm-actions button{min-width:86px;height:32px;padding:0 14px;border:1px solid #d4e1e8;border-radius:4px;background:#fff;color:#526171;font-size:12px}.system-confirm-actions button:last-child{border-color:#2384b6;background:#2384b6;color:#fff}.system-confirm-actions button:last-child.danger{border-color:#c2413a;background:#c2413a}.process-dialog{width:min(980px,calc(100vw - 80px));max-height:min(620px,calc(100vh - 90px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.process-dialog-head{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #dcecf5;background:linear-gradient(90deg,#eef8fe,#fff 80%)}.process-dialog-head h2{margin:0;color:#142033;font-size:15px;font-weight:700}.process-dialog-head span{display:block;margin-top:4px;color:#718096;font-size:12px}.process-dialog-head button{width:auto;min-width:72px;height:30px;display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;padding:0 14px;border:0;border-radius:3px;background:#3ba0cf;color:#fff;font-size:12px;line-height:1;white-space:nowrap}.process-dialog-head button svg{flex:none}.process-table-wrap{padding:14px;overflow:auto}.process-table{width:100%;min-width:1180px;border-collapse:collapse;table-layout:fixed;font-size:12px}.process-table thead tr{height:42px;background:#f1f7fb}.process-table tbody tr{height:40px;border-bottom:1px solid #edf1f5}.process-table th,.process-table td{padding:0 10px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.process-table th:nth-child(5),.process-table td:nth-child(5){width:360px;white-space:normal;line-height:1.45}.process-status{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#eaf7fd;color:#2384b6}.inspection-page{height:calc(100% - 40px);display:flex;flex-direction:column;gap:10px;padding:12px;overflow:hidden;background:linear-gradient(180deg,#f4f9fd,#f7f9fb);border:1px solid rgba(229,231,235,.72)}.inspection-tabs{height:42px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #d9eaf4;border-radius:3px;background:#fff}.inspection-tabs button,.sampling-source-tabs button{height:28px;padding:0 12px;border:1px solid #dcecf5;border-radius:3px;background:#fff;color:#526171;font-size:12px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.inspection-tabs button.active,.sampling-source-tabs button.active{border-color:#087ea4;background:#087ea4;color:#fff;font-weight:800;box-shadow:0 6px 14px #087ea447;transform:translateY(-2px)}.inspection-overview,.sampling-page{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}.inspection-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.inspection-kpis div,.inspection-kpis button{height:76px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:11px;padding:0 16px;border:1px solid #d9eaf4;border-radius:4px;background:#fff;box-shadow:0 2px 8px #234a730d;animation:softEnter .34s ease both;text-align:left}.inspection-kpis button{cursor:pointer}.inspection-kpis button:hover{border-color:#3ba0cf;background:#eef9ff}.inspection-kpi-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;background:#eaf7fd;color:#2384b6}.inspection-kpi-content{min-width:0;display:flex;flex-direction:column}.inspection-kpi-content>span{color:#718096;font-size:12px}.inspection-kpi-content strong{margin-top:3px;color:#172033;font-size:24px}.inspection-kpi-card.blue{border-left:4px solid #2589bd;background:#f7fcff}.inspection-kpi-card.blue .inspection-kpi-icon{background:#e5f5fc;color:#1677a8}.inspection-kpi-card.teal{border-left:4px solid #0f9f8f;background:#f5fdfb}.inspection-kpi-card.teal .inspection-kpi-icon{background:#ddf7f1;color:#087a6d}.inspection-kpi-card.violet{border-left:4px solid #7c5ac7;background:#faf8ff}.inspection-kpi-card.violet .inspection-kpi-icon{background:#eee8ff;color:#6844b5}.inspection-kpi-card.amber{border-left:4px solid #d89414;background:#fffaf1}.inspection-kpi-card.amber .inspection-kpi-icon{background:#fff0cf;color:#ad6e05}.inspection-kpi-card.green{border-left:4px solid #3b9b62;background:#f6fcf8}.inspection-kpi-card.green .inspection-kpi-icon{background:#e2f6e9;color:#277d4b}.inspection-kpi-card.red{border-left:4px solid #d74a4a;background:#fff8f8}.inspection-kpi-card.red .inspection-kpi-icon{background:#fde7e7;color:#b82f2f}.upcoming-business-card{min-height:246px;overflow:hidden;border:1px solid #d9eaf4;border-radius:6px;background:linear-gradient(135deg,#f8fcff,#fff 54%,#f8fbff);box-shadow:0 2px 8px #234a730d;animation:softEnter .28s ease both}.upcoming-business-card .panel-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 12px;border-bottom:1px solid #edf3f6}.upcoming-business-card .panel-head h2{margin:0 0 3px;color:#183b56;font-size:16px}.upcoming-business-card .panel-head span,.upcoming-business-card .panel-head small{color:#7b8c9b;font-size:12px;font-weight:400}.upcoming-business-card .panel-head>b{color:#1879aa;font-size:22px}.upcoming-business-layout{display:grid;grid-template-columns:166px minmax(0,1fr);gap:18px;padding:15px 18px 17px}.upcoming-business-chart{position:relative;align-self:center;width:134px;height:134px;margin:0 auto}.upcoming-business-chart svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.upcoming-chart-track,.upcoming-chart-segment{fill:none;stroke-width:4.2}.upcoming-chart-track{stroke:#e9f1f5}.upcoming-chart-segment{transform-origin:21px 21px;transition:stroke-dasharray .4s ease,stroke-dashoffset .4s ease}.upcoming-chart-segment.blue{stroke:#238fca}.upcoming-chart-segment.teal{stroke:#16a68c}.upcoming-chart-segment.violet{stroke:#7769c8}.upcoming-chart-segment.orange{stroke:#e88834}.upcoming-chart-segment.green{stroke:#38a169}.upcoming-chart-segment.red{stroke:#dc6262}.upcoming-business-chart>div{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.upcoming-business-chart strong{color:#183b56;font-size:25px;line-height:1}.upcoming-business-chart span{margin-top:5px;color:#7b8c9b;font-size:11px}.upcoming-business-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.upcoming-business-item{min-width:0;min-height:72px;display:grid;grid-template-columns:31px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;border:1px solid #e1edf3;border-radius:5px;background:#ffffffd6;color:#30485b;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.upcoming-business-item:not(:disabled):hover{transform:translateY(-2px);border-color:#9bcfe7;box-shadow:0 8px 18px #296c911f}.upcoming-business-item:disabled{cursor:default;opacity:.54}.upcoming-business-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#eaf6fc;color:#238fca}.upcoming-business-item.teal .upcoming-business-icon{background:#e4f7f2;color:#168873}.upcoming-business-item.violet .upcoming-business-icon{background:#efedfd;color:#6b5fc0}.upcoming-business-item.orange .upcoming-business-icon{background:#fff2e5;color:#d97927}.upcoming-business-item.green .upcoming-business-icon{background:#e9f8ed;color:#299052}.upcoming-business-item.red .upcoming-business-icon{background:#fff0f0;color:#c65050}.upcoming-business-content{min-width:0;display:flex;flex-direction:column;gap:4px}.upcoming-business-content b{overflow:hidden;color:#284357;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.upcoming-business-content small{overflow:hidden;color:#82919e;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.upcoming-business-count{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.upcoming-business-count strong{color:#1879aa;font-size:18px;line-height:1}.upcoming-business-count small{color:#5093b4;font-size:10px;white-space:nowrap}.upcoming-business-item.orange .upcoming-business-count strong{color:#d97927}.upcoming-business-item.green .upcoming-business-count strong{color:#299052}.upcoming-business-item.red .upcoming-business-count strong{color:#c65050}.upcoming-approval-dialog{width:min(1240px,calc(100vw - 48px));max-height:min(780px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.upcoming-approval-body{min-height:0;display:flex;flex-direction:column;gap:12px;padding:14px;overflow:auto;background:#f8fbfd}.upcoming-approval-summary{display:flex;align-items:center;gap:20px;padding:10px 12px;border:1px solid #d9eaf4;border-radius:5px;background:#fff;color:#718096;font-size:12px}.upcoming-approval-summary b{margin-left:4px;color:#17476d;font-size:14px}.upcoming-approval-table-wrap{min-height:0;overflow:auto;border:1px solid #d9eaf4;border-radius:5px;background:#fff}.upcoming-approval-table{min-width:1080px;table-layout:fixed}.upcoming-approval-table th,.upcoming-approval-table td{height:48px;padding:8px 10px;vertical-align:middle}.upcoming-approval-table th:nth-child(1){width:130px}.upcoming-approval-table th:nth-child(2){width:190px}.upcoming-approval-table th:nth-child(3){width:230px}.upcoming-approval-table th:nth-child(4){width:140px}.upcoming-approval-table th:nth-child(6){width:260px}.upcoming-approval-table td:nth-child(3) b,.upcoming-approval-table td:nth-child(3) span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-approval-table td:nth-child(3) span{margin-top:3px;color:#718096;font-size:11px}.upcoming-approval-step{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #efc978;border-radius:4px;background:#fff8e8;color:#9a6107;font-size:11px;font-weight:700}.upcoming-approval-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.upcoming-approval-actions button{min-height:26px;display:inline-flex;align-items:center;gap:4px;padding:0 7px;border:1px solid #dce3ea;border-radius:4px;background:#fff;color:#526171;font-size:11px;font-weight:700}.upcoming-approval-actions button:hover{filter:brightness(.97)}.upcoming-approval-actions .upcoming-approval-view{color:#4b7ea2}.upcoming-approval-actions .upcoming-approval-detail{border-color:#8ac6dd;background:#edfaff;color:#087ea4}.upcoming-approval-actions .upcoming-approval-pass{border-color:#9bd7bd;background:#f2fbf6;color:#18794e}.upcoming-approval-actions .upcoming-approval-return{border-color:#efb0b0;background:#fff7f7;color:#b42318}.upcoming-approval-empty{height:120px!important;color:#718096;text-align:center!important}.inspection-overview-dialog{width:min(1180px,calc(100vw - 48px));max-height:min(760px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.inspection-overview-dialog-body{min-height:0;padding:14px;overflow:auto;background:#f8fbfd}.overview-dialog-filters{display:flex;align-items:end;flex-wrap:wrap;gap:10px;padding:0 0 12px}.overview-dialog-filters input,.overview-dialog-filters select{min-width:150px;height:30px;padding:0 8px;border:1px solid #dce3ea;border-radius:3px;color:#172033;font-size:12px}.overview-dialog-filters label{display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px}.overview-dialog-table-wrap{overflow:auto;border:1px solid #d9eaf4;border-radius:4px;background:#fff}.overview-dialog-table-wrap .sampling-table{min-width:980px}.flow-visual-card,.sampling-table-card,.coming-panel{min-height:0;overflow:hidden;border:1px solid #d9eaf4;border-radius:4px;background:#fff;box-shadow:0 2px 8px #234a730d;animation:softEnter .28s ease both}.flow-nodes{position:relative;min-height:190px;display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr 28px 1fr 28px 1fr 28px 1fr 28px 1fr;align-items:center;gap:0;padding:24px 22px 20px;border-radius:14px;background:linear-gradient(135deg,#f8fcff,#eef8ff 52%,#fff7ed)}.flow-nodes:before{content:none}.flow-node{position:relative;z-index:1;min-height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(124,185,217,.34);border-radius:16px;background:#ffffffeb;color:#526171;font-size:12px;font-family:inherit;cursor:pointer;box-shadow:0 14px 30px #234a7314;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.flow-node:not(:last-child):after{content:none}.flow-node-arrow{position:relative;z-index:2;height:4px;border-radius:999px;background:#cfe4ee}.flow-node-arrow:after{content:"";position:absolute;right:-1px;top:50%;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:9px solid #cfe4ee;transform:translateY(-50%)}.flow-node-arrow.done,.flow-node-arrow.active{background:linear-gradient(90deg,#16a4cc,#22c55e)}.flow-node-arrow.done:after,.flow-node-arrow.active:after{border-left-color:#22c55e}.flow-node-arrow.warning{background:linear-gradient(90deg,#f59e0b,#fb923c)}.flow-node-arrow.warning:after{border-left-color:#fb923c}.flow-node:hover{transform:translateY(-4px);border-color:#9bd2ec;box-shadow:0 14px 28px #234a7321}.flow-node-circle{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#e0f2fe,#f0f9ff);color:#0369a1;font-size:16px;font-weight:700}.flow-node em{position:absolute;top:10px;left:12px;color:#9aa8b5;font-size:11px;font-style:normal;font-weight:800;letter-spacing:.08em}.flow-node b{min-width:26px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#f1f7fb;color:#17476d;font-size:12px}.flow-node.done .flow-node-circle{background:linear-gradient(135deg,#dcfce7,#ecfdf5);color:#15803d}.flow-node.warning .flow-node-circle{background:linear-gradient(135deg,#ffedd5,#fff7ed);color:#c2410c}.flow-node.active .flow-node-circle{animation:pulseNode 1.8s ease-in-out infinite}.overview-bottom-grid{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.sample-status-bars{display:flex;flex-direction:column;gap:14px;padding:18px}.sample-status-bars div{display:grid;grid-template-columns:70px 1fr 32px;align-items:center;gap:10px;color:#526171;font-size:12px}.sample-status-bars i{height:8px;border-radius:999px;background:linear-gradient(90deg,#2d9cdb,#d6edf8)}.todo-list{display:flex;flex-direction:column;gap:8px;padding:14px}.todo-list button{height:34px;display:inline-flex;align-items:center;gap:8px;border:1px dashed #d8e2ea;border-radius:4px;background:#fff;color:#526171;text-align:left;font-size:12px;transition:transform .18s ease,border-color .18s ease,background .18s ease}.todo-list button:hover{transform:translate(3px);border-color:#9bd2ec;background:#f5fbff}.todo-list button>span{min-width:0;flex:1}.todo-list button>b{min-width:24px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;background:#eaf7fd;color:#1677a8;font-size:12px}.todo-list button:disabled{cursor:default;opacity:.58}.sampling-confirm-action{border-color:#75c3a5!important;background:#edf9f4!important;color:#087452!important}.sampling-approval-dialog{width:min(860px,calc(100vw - 48px));max-height:min(800px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.inspection-summary-card{min-height:0}.inspection-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 14px 14px}.inspection-summary-item{min-height:48px;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:7px;padding:0 9px;border:1px solid #dce8ef;border-radius:6px;background:#fbfdfe;color:inherit;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.inspection-summary-item:hover:not(:disabled){transform:translateY(-2px);border-color:#8ac6dd;box-shadow:0 6px 12px #087ea424}.inspection-summary-item:disabled{cursor:default;opacity:.55}.inspection-summary-item>span:not(.inspection-summary-icon){overflow:hidden;color:#526171;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.inspection-summary-item b{color:#142033;font-size:17px}.inspection-summary-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;background:#eaf7fd;color:#087ea4}.inspection-summary-item.green .inspection-summary-icon{background:#eaf8f2;color:#16725e}.inspection-summary-item.orange .inspection-summary-icon,.inspection-summary-item.amber .inspection-summary-icon{background:#fff5df;color:#b66a05}.inspection-summary-item.red .inspection-summary-icon{background:#fff0f0;color:#b42318}.inspection-summary-dialog{width:min(1240px,calc(100vw - 48px))}.inspection-summary-detail-table{min-width:1080px}.inspection-summary-detail-table th:nth-child(1){width:150px}.inspection-summary-detail-table th:nth-child(2){width:190px}.inspection-summary-detail-table th:nth-child(3){width:170px}.inspection-summary-detail-table th:nth-child(4){width:90px}.inspection-summary-detail-table th:nth-child(5){width:130px}.inspection-summary-detail-table th:nth-child(6){width:230px}.inspection-summary-detail-table th:nth-child(7){width:100px}.inspection-summary-detail-table .upcoming-approval-detail{height:26px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border:1px solid #8ac6dd;border-radius:4px;background:#edfaff;color:#087ea4;font-size:11px;font-weight:700}.sampling-order-approval-dialog{width:min(1080px,calc(100vw - 48px))}.sampling-approval-body{min-height:0;padding:16px;overflow:auto;background:#f8fbfd}.sampling-approval-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.sampling-approval-summary>div{min-height:62px;display:flex;justify-content:center;flex-direction:column;gap:4px;padding:9px 11px;border:1px solid #d9eaf4;border-radius:4px;background:#fff}.sampling-approval-summary span,.sampling-approval-history span{color:#718096;font-size:11px}.sampling-approval-summary b{color:#17476d;font-size:13px}.sampling-approval-route{display:grid;grid-template-columns:1fr 54px 1fr 54px 1fr;align-items:center;margin-top:14px;padding:14px;border:1px solid #d9eaf4;border-radius:4px;background:#fff}.sampling-approval-route>div{min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dce3ea;border-radius:4px;color:#718096;font-size:12px}.sampling-approval-route>div.active{border-color:#e9b65d;background:#fff8e8;color:#a56508;font-weight:700}.sampling-approval-route>div.done{border-color:#75c3a5;background:#edf9f4;color:#087452;font-weight:700}.sampling-approval-route>i{height:2px;background:#cbd8e2}.sampling-order-approval-route{grid-template-columns:1fr 28px 1fr 28px 1fr 28px 1fr 28px 1fr;min-width:900px;overflow-x:auto}.sampling-approval-history{margin-top:14px;padding:12px;border:1px solid #d9eaf4;border-radius:4px;background:#fff}.sampling-approval-history h3{margin:0 0 8px;color:#17476d;font-size:13px}.sampling-approval-history>div{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:3px 12px;padding:7px 0;border-top:1px solid #edf1f5;font-size:12px}.sampling-approval-history p{grid-column:1 / -1;margin:0;color:#526171}.sampling-approval-actions{margin-top:14px;padding:12px;border:1px solid #d9eaf4;border-radius:4px;background:#fff}.sampling-approval-actions label{display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px}.sampling-approval-actions textarea{min-height:62px;padding:8px;border:1px solid #dce3ea;border-radius:4px;resize:vertical}.sampling-approval-actions>div{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.sampling-approval-actions button{height:32px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border-radius:4px;font-size:12px}.sampling-approval-actions button.return{border:1px solid #e4a2a2;background:#fff5f5;color:#b42318}.sampling-approval-actions button.pass{border:1px solid #16725e;background:#16725e;color:#fff}.sampling-approval-waiting{margin-top:14px;padding:10px 12px;border:1px solid #e8d4a4;border-radius:4px;background:#fff9eb;color:#8a5a08;font-size:12px}.detail-approval-link{min-height:30px;display:inline-flex;align-items:center;gap:5px;margin-top:10px;padding:0 10px;border:1px solid #75c3a5;border-radius:4px;background:#edf9f4;color:#087452;font-size:12px;font-weight:700}.sampling-toolbar{height:42px;display:flex;align-items:center;justify-content:space-between}.module-title-block{display:flex;flex-direction:column;gap:4px}.module-title-block h2{margin:0;color:#142033;font-size:16px}.module-title-block span{color:#718096;font-size:12px}.approval-role-switch{display:flex;align-items:center;gap:8px;color:#526171;font-size:12px}.approval-role-switch select,.approval-role-switch b{height:30px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid #dcecf5;border-radius:3px;background:#fff;color:#17476d;font-size:12px;font-weight:700}.sampling-source-tabs{display:flex;gap:8px}.primary-action,.sampling-filter-bar button,.dialog-actions button,.sample-label-card button,.send-form button{height:30px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 12px;border:0;border-radius:3px;background:#3ba0cf;color:#fff;font-size:12px}.sampling-filter-bar{min-height:48px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #d9eaf4;border-radius:4px;background:#fff}.sampling-filter-bar input,.sampling-filter-bar select{width:150px;height:30px;padding:0 8px;border:1px solid #dce3ea;border-radius:3px;background:#fff;color:#526171;font-size:12px;transition:border-color .18s ease,box-shadow .18s ease}.sampling-filter-bar input:focus,.sampling-filter-bar select:focus{border-color:#3ba0cf;box-shadow:0 0 0 3px #3ba0cf1f}.sample-lifecycle-filter-bar{min-height:62px;flex-wrap:wrap;padding:9px 12px}.sample-lifecycle-filter-bar label{display:grid;gap:4px;color:#617083;font-size:11px}.sample-lifecycle-filter-bar label span{line-height:1}.sample-lifecycle-filter-bar input,.sample-lifecycle-filter-bar select{width:168px}.sample-lifecycle-filter-bar .lifecycle-location-filter input{width:210px}.lifecycle-filter-result{margin-left:auto;color:#617083;font-size:12px;white-space:nowrap}.lifecycle-filter-result b{color:#17476d;font-size:14px}.sampling-filter-bar .lifecycle-filter-reset{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #d7e0e8;background:#fff;color:#526171}.sampling-filter-bar .lifecycle-filter-reset:hover{border-color:#9fb6c8;background:#f6f9fb}.sampling-table-card{flex:1;width:100%;min-width:0;overflow-x:auto;overflow-y:auto;border-radius:8px;box-sizing:border-box}.sampling-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.sampling-table thead tr{height:42px;background:linear-gradient(90deg,#edf8ff,#f7fbff)}.sampling-table tbody tr{height:44px;border-bottom:1px solid #edf1f5;transition:background .16s ease,transform .16s ease}.sampling-table tbody tr:hover{background:#f5fbff}.sampling-table tbody tr:hover td:first-child{color:#0f7fa3;font-weight:700}.sampling-table th,.sampling-table td{padding:0 8px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sampling-status{height:22px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border-radius:999px;background:#eaf7fd;color:#2384b6;font-weight:700}.sampling-order-approval-status{min-height:24px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;border:1px solid #b9deef;border-radius:4px;background:#eef8fe;color:#1677a8;font-size:11px;font-weight:700}.sampling-order-approval-status.warn{border-color:#f2c879;background:#fff8e8;color:#9a6107}.sampling-order-approval-status.danger{border-color:#efaaaa;background:#fff3f3;color:#b42318}.sampling-order-approval-status.ok{border-color:#83cdb1;background:#edf9f4;color:#087452}.sampling-order-approval-status.muted{border-color:#dce3ea;background:#f7f9fb;color:#718096}.report-process-status{min-height:24px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border:1px solid #b9deef;border-radius:4px;background:#eef8fe;color:#1677a8;font-weight:700}.report-process-status svg{flex:0 0 auto}.report-process-status.active{border-color:#7fc7e5;background:#e8f7fd;color:#116f9b}.report-process-status.approval{border-color:#e3bd6a;background:#fff8e8;color:#a56508}.report-process-status.returned,.report-process-status.failed{border-color:#e9a2a2;background:#fff1f1;color:#b42318}.report-process-status.complete{border-color:#7bc7a5;background:#eefbf5;color:#087443}.report-sample-status{min-width:58px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;border:1px solid #d6e0e8;border-radius:4px;background:#f7f9fb;color:#617083;font-size:12px;font-weight:800}.report-sample-status.qualified{border-color:#75c7a4;background:#edf9f4;color:#087452}.report-sample-status.unqualified{border-color:#e69a9a;background:#fff1f1;color:#b42318}.label-print-status{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700}.label-print-status.unprinted{background:#fff7ed;color:#c2410c}.label-print-status.printed{background:#ecfdf5;color:#15803d}.unqualified-text{color:#d93025;font-weight:800}.unqualified-list{display:inline-block;min-width:260px;max-width:100%;white-space:normal;line-height:1.5}.warning-record-table,.destroy-table{width:100%;table-layout:fixed}.sampling-order-table{min-width:1640px}.sampling-order-table th:last-child,.sampling-order-table td:last-child,.retain-table th:last-child,.retain-table td:last-child{position:sticky;right:0;z-index:2;overflow:visible;text-overflow:clip;background:#fff;box-shadow:-8px 0 12px #0f23340f}.sampling-order-table th:last-child,.sampling-order-table td:last-child{width:260px;min-width:260px}.retain-table th:last-child,.retain-table td:last-child{width:180px;min-width:180px}.sampling-order-table th:last-child,.retain-table th:last-child{z-index:3;background:#f7fbff}.destroy-table{min-width:1180px}.label-table{min-width:1240px}.label-col-sample-no{width:170px}.label-col-name{width:240px}.label-col-quantity,.label-col-representative{width:130px}.label-col-source{width:110px}.label-col-print-status{width:100px}.label-col-received-at,.label-col-actions{width:180px}.label-table th:last-child,.label-table td:last-child{position:sticky;right:0;z-index:2;overflow:visible;text-overflow:clip;background:#fff;box-shadow:-8px 0 12px #0f23340f}.label-table th:last-child{z-index:3;background:#f7fbff}.retain-table{width:100%;min-width:0;table-layout:fixed;font-size:11px}.retain-table th:last-child,.retain-table td:last-child{position:static;right:auto;width:11%;min-width:0;box-shadow:none}.retain-table tbody tr{height:auto;min-height:64px}.retain-table th,.retain-table td{padding:7px 4px;white-space:normal;line-height:1.35;overflow-wrap:anywhere}.retain-table th:nth-child(1),.retain-table td:nth-child(1){width:7%}.retain-table th:nth-child(2),.retain-table td:nth-child(2){width:8%}.retain-table th:nth-child(3),.retain-table td:nth-child(3){width:9%}.retain-table th:nth-child(4),.retain-table td:nth-child(4){width:7%}.retain-table th:nth-child(5),.retain-table td:nth-child(5){width:7%}.retain-table th:nth-child(6),.retain-table td:nth-child(6){width:6%}.retain-table th:nth-child(7),.retain-table td:nth-child(7){width:5%}.retain-table th:nth-child(8),.retain-table td:nth-child(8){width:16%;overflow:visible;text-overflow:clip}.retain-table th:nth-child(9),.retain-table td:nth-child(9){width:11%}.retain-table th:nth-child(10),.retain-table td:nth-child(10){width:8%}.retain-table th:nth-child(11),.retain-table td:nth-child(11){width:16%}.retain-expire-progress{width:100%;min-width:0;max-width:none;display:flex;flex-direction:column;gap:4px}.retain-expire-progress-meta{display:grid;grid-template-columns:1fr;gap:1px;color:#526171;font-size:10px}.retain-expire-progress-meta b{color:#087443;font-size:10px;overflow:visible;text-align:left;white-space:nowrap}.retain-expire-progress-track{width:100%;height:7px;overflow:hidden;border-radius:999px;background:#e5eef2}.retain-expire-progress-track i{height:100%;display:block;border-radius:inherit;background:#22a06b;transition:width .3s ease}.retain-expire-progress.soon .retain-expire-progress-meta b{color:#b76a08}.retain-expire-progress.soon .retain-expire-progress-track i{background:#e59b2f}.retain-expire-progress.expired .retain-expire-progress-meta b{color:#b42318}.retain-expire-progress.expired .retain-expire-progress-track i{background:#d84b45}.retain-row-actions{flex-wrap:wrap;align-content:center;gap:3px 6px;overflow:visible}.retain-row-actions button{height:22px;font-size:10px;white-space:nowrap}.retain-location-cell,.retain-state-stack{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.retain-location-cell b,.retain-location-cell span{max-width:100%;overflow-wrap:anywhere}.retain-state-stack .sampling-status,.retain-state-stack .retain-status-badge{max-width:100%;height:auto;min-height:21px;padding:3px 6px;white-space:normal;line-height:1.25}.destroy-row-actions{min-width:290px;gap:9px;overflow:visible}.destroy-entry-dialog{width:min(920px,calc(100vw - 50px))}.retain-table tbody tr.retain-approval-row{background:#fffaf0;box-shadow:inset 3px 0 #e8a43a}.sampling-status.retain-approval-reminder{border:1px solid #e5b15e;background:#fff4d8;color:#a45d05}.destroy-approval-status{min-height:24px;border:1px solid transparent;border-radius:4px}.destroy-approval-status.review{border-color:#fdba74;background:#fff7ed;color:#c2410c}.destroy-approval-status.owner{border-color:#67e8f9;background:#ecfeff;color:#0e7490}.destroy-approval-status.approve{border-color:#f5c66a;background:#fff8df;color:#9a5b00}.destroy-approval-status.pending{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.destroy-approval-status.returned{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.destroy-approval-status.destroyed{border-color:#86efac;background:#f0fdf4;color:#15803d}.destroy-approval-status.history{border-color:#cbd5e1;background:#f8fafc;color:#475569}.destroy-approval-status.destroy-approval-current{border-width:2px;box-shadow:0 0 0 2px #0e74901f}.sampling-actions .retain-quick-approve,.sampling-actions .retain-quick-reject{height:26px;padding:0 8px;border:1px solid;border-radius:4px;font-weight:700;white-space:nowrap}.sampling-actions .retain-quick-approve{border-color:#74c69d;background:#ecfdf5;color:#087443}.sampling-actions .retain-quick-reject{border-color:#eba3a3;background:#fff1f1;color:#b42318}.sampling-actions .retain-destroy-action{height:26px;padding:0 8px;border:1px solid #e58b8b;border-radius:4px;background:#fff3f3;color:#b42318;font-weight:700;white-space:nowrap}.sampling-actions .retain-quick-approve:hover{color:#05603a}.sampling-actions .retain-quick-reject:hover{color:#8f1d14}.retain-entry-dialog{width:min(920px,calc(100vw - 50px));max-height:min(780px,calc(100vh - 50px))}.retain-entry-body{background:#f8fbfd}.retain-entry-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.retain-scan-dialog{width:min(680px,calc(100vw - 40px))}.retain-approval-dialog .approval-route-node{min-height:126px}@media (max-width: 760px){.retain-entry-grid{grid-template-columns:1fr}.retain-entry-grid label.full{grid-column:auto}}.retain-expire-select{width:86px;height:28px;border:1px solid #dcecf5;border-radius:5px;background:#fff;color:#142033;font-size:12px}.retain-expire-status,.retain-status-badge{height:22px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border-radius:999px;font-weight:700}.retain-expire-status.normal,.retain-status-badge.normal{background:#ecfdf5;color:#047857}.retain-expire-status.soon,.retain-status-badge.soon{background:#fff7ed;color:#c2410c}.retain-expire-status.expired,.retain-status-badge.expired{background:#fef2f2;color:#b91c1c}.retain-status-badge.disposing{background:#fff7ed;color:#c2410c}.retain-status-badge.destroyed{background:#f1f5f9;color:#475569}.destroy-table th:nth-child(6),.destroy-table td:nth-child(6){width:360px;white-space:normal;overflow:visible;text-overflow:clip}.destroy-table th:nth-child(7),.destroy-table td:nth-child(7){width:150px}.inspection-result-table tr.unqualified-row td,.readonly-report-body .unqualified-field{color:#d93025;font-weight:800}.unqualified-dialog{width:min(980px,calc(100vw - 80px));max-height:min(680px,calc(100vh - 80px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.unqualified-dialog-body{display:flex;flex-direction:column;gap:12px;padding:14px;overflow:hidden}.unqualified-summary-card{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.unqualified-summary-card div{min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 14px;border:1px solid #d9eaf4;border-radius:5px;background:#f8fcff}.unqualified-summary-card span{color:#718096;font-size:12px}.unqualified-summary-card b{color:#142033;font-size:14px}.unqualified-detail-wrap{overflow:auto;border:1px solid #d9eaf4;border-radius:5px}.unqualified-detail-table{width:100%;min-width:820px;border-collapse:collapse;table-layout:fixed;background:#fff}.unqualified-index-col{width:44px}.unqualified-detail-table th,.unqualified-detail-table td{padding:10px 12px;border-bottom:1px solid #edf1f5;color:#526171;font-size:12px;text-align:left;white-space:normal;word-break:break-word}.unqualified-detail-table th{background:#f5f9fc;color:#142033;font-weight:800}.unqualified-detail-table th:first-child,.unqualified-detail-table td:first-child{width:44px;max-width:44px;padding-left:6px;padding-right:6px;text-align:center}.unqualified-detail-table th:nth-child(2),.unqualified-detail-table td:nth-child(2){width:210px}.unqualified-detail-table th:nth-child(3),.unqualified-detail-table td:nth-child(3){width:180px}.unqualified-detail-table th:nth-child(4),.unqualified-detail-table td:nth-child(4){width:100px}.unqualified-detail-table th:nth-child(5),.unqualified-detail-table td:nth-child(5){width:260px;text-align:left}.indicator-attr-badge{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:0}.indicator-attr-badge.key{border:1px solid #b91c1c;background:#fef2f2;color:#991b1b}.indicator-attr-badge.normal{border:1px solid #cbd5e1;background:#f8fafc;color:#475569}.warning-record-page{height:100%;display:flex;flex-direction:column;gap:12px}.warning-rule-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.warning-rule-cards div{min-height:86px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:14px 16px;border:1px solid #d9eaf4;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fcff);box-shadow:0 10px 22px #234a730f}.warning-rule-cards .level1{border-color:#fecaca;background:linear-gradient(180deg,#fff7f7,#fef2f2)}.warning-rule-cards .level2{border-color:#fed7aa;background:linear-gradient(180deg,#fffaf3,#fff7ed)}.warning-rule-cards .level3{border-color:#fde68a;background:linear-gradient(180deg,#fffdf3,#fffbeb)}.warning-rule-cards b{color:#142033;font-size:14px}.warning-rule-cards strong{color:#17476d;font-size:22px}.warning-rule-cards .level1 strong{color:#dc2626}.warning-rule-cards .level2 strong{color:#c2410c}.warning-rule-cards .level3 strong{color:#a16207}.warning-rule-cards span{color:#718096;font-size:12px}.warning-filter-panel{display:flex;flex-direction:column;gap:10px;padding:12px 0;border-top:1px solid #d9eaf4;border-bottom:1px solid #d9eaf4}.warning-filter-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.warning-filter-tag{min-width:112px;height:34px;display:inline-flex;align-items:center;justify-content:space-between;gap:10px;padding:0 10px;border:1px solid #d6e2ea;border-radius:4px;background:#fff;color:#526171;font-size:12px;font-weight:700}.warning-filter-tag b{min-width:22px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;background:#edf2f6;color:inherit;font-size:11px}.warning-filter-tag.all.active{border-color:#38a3cf;background:#eef8fe;color:#166b91}.warning-filter-tag.level1.active{border-color:#ef4444;background:#fef2f2;color:#b91c1c}.warning-filter-tag.level2.active{border-color:#f97316;background:#fff7ed;color:#c2410c}.warning-filter-tag.level3.active{border-color:#eab308;background:#fefce8;color:#854d0e}.warning-filter-fields{display:grid;grid-template-columns:minmax(240px,1.4fr) minmax(120px,.65fr) minmax(160px,.8fr) minmax(210px,.9fr) 88px;gap:8px;align-items:center}.warning-filter-fields select,.warning-filter-fields input,.warning-filter-reset{height:34px;border:1px solid #d6e2ea;border-radius:4px;background:#fff;color:#334155;font-size:12px}.warning-filter-fields select,.warning-filter-fields input{min-width:0;padding:0 10px}.warning-keyword-filter{position:relative;min-width:0;color:#718096}.warning-keyword-filter>svg{position:absolute;z-index:1;left:10px;top:10px}.warning-keyword-filter input{width:100%;padding-left:32px}.warning-date-filter{height:34px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px;padding-left:10px;border:1px solid #d6e2ea;border-radius:4px;background:#fff;color:#718096;font-size:12px;white-space:nowrap}.warning-date-filter input{width:100%;border:0}.warning-filter-reset{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#526171;font-weight:700}.warning-filter-reset:hover{border-color:#38a3cf;color:#166b91}@media (max-width: 1180px){.warning-filter-fields{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(140px,.6fr))}.warning-date-filter,.warning-filter-reset{min-width:0}}.warning-record-table-card{border:1px solid #d9eaf4;border-radius:4px;background:#fff}.warning-record-table{min-width:1700px}.warning-level-col{width:120px}.warning-report-col{width:190px}.warning-sample-col{width:170px}.warning-name-col{width:220px}.warning-warehouse-col{width:140px}.warning-grain-col{width:100px}.warning-reason-col{width:130px}.warning-count-col{width:150px;text-align:center}.warning-time-col{width:170px}.warning-status-col{width:260px;white-space:normal}.warning-action-col{width:150px}.warning-level-badge{height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;font-weight:700}.warning-level-badge.warning{background:#fff4e5;color:#b7791f}.warning-level-badge.level3{background:#fffbeb;color:#9a6700}.warning-level-badge.alarm{background:#fde8e8;color:#d93025}.unqualified-count-btn{min-width:72px;height:28px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:1px solid #7dd3fc;border-radius:4px;background:#f0f9ff;color:#0369a1;font-weight:800}.unqualified-count-btn:hover{border-color:#0284c7;background:#e0f2fe}.quality-report-page{height:100%;display:flex;flex-direction:column;gap:12px;overflow:hidden}.quality-report-hero{min-height:118px;display:flex;justify-content:space-between;gap:18px;padding:20px 22px;border-radius:8px;background:linear-gradient(135deg,#123d64,#1b86a8 56%,#22b8a0);color:#fff;box-shadow:0 14px 32px #123d6433}.quality-report-hero span{color:#ffffffc7;font-size:12px}.quality-report-hero h2{margin:4px 0 6px;font-size:24px}.quality-report-hero p{margin:0;color:#ffffffd1;font-size:13px}.quality-report-metrics{display:grid;grid-template-columns:repeat(3,104px);gap:10px}.quality-report-metrics div{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.22);border-radius:7px;background:#ffffff1f}.quality-report-metrics b{font-size:26px}.quality-report-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quality-report-tabs button{height:42px;border:1px solid #d9eaf4;border-radius:6px;background:#fff;color:#526171;font-weight:700}.quality-report-tabs button.active{border-color:#087ea4;background:#087ea4;color:#fff;box-shadow:0 6px 14px #087ea442;transform:translateY(-2px)}.quality-report-sheet{flex:1;min-height:0;padding:22px 28px 28px;overflow:auto;border:1px solid #d8dde4;border-radius:2px;background:linear-gradient(#fff,#fff) padding-box,repeating-linear-gradient(0deg,rgba(15,23,42,.025) 0,rgba(15,23,42,.025) 1px,transparent 1px,transparent 32px);box-shadow:0 10px 28px #0f172a14}.report-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:10px;border-bottom:2px solid #111827}.report-sheet-head h3{margin:0 0 4px;color:#142033;font-size:18px}.report-sheet-head span{color:#718096;font-size:12px}.report-sheet-head button{height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border:1px solid #9de0f4;border-radius:4px;background:#ecfbff;color:#1398bd}.visual-report-table{width:100%;min-width:1120px;border-collapse:collapse;color:#111827;font-family:SimSun,Songti SC,serif;font-size:13px}.visual-report-table th{height:38px;background:#f4f6f8;color:#111827;text-align:center;font-weight:700}.visual-report-table th,.visual-report-table td{padding:0 8px;border:1px solid #111827;white-space:normal}.visual-report-table td{height:36px;color:#111827;text-align:center}.warehouse-record-paper{position:relative;min-width:1840px;padding:22px 18px 26px;border-top:3px solid #17a7c8;background:#fff;color:#000;font-family:SimSun,Songti SC,serif}.report-record-paper{box-shadow:0 8px 20px #0f172a0f}.cargo-record-paper{min-width:1580px}.acceptance-record-paper{min-width:1360px}.season-record-paper{min-width:1580px}.cargo-record-table{min-width:1528px;font-size:13.5px}.cargo-col-sample{width:150px}.cargo-col-report{width:180px}.cargo-col-position{width:124px}.cargo-col-warehouse{width:78px}.cargo-col-grain{width:82px}.cargo-col-stock,.cargo-col-count{width:96px}.cargo-col-reason{width:120px}.cargo-col-conclusion{width:110px}.cargo-col-risk{width:292px}.acceptance-record-table{min-width:1304px;font-size:13.5px}.acceptance-col-report{width:210px}.acceptance-col-sample{width:170px}.acceptance-col-warehouse{width:86px}.acceptance-col-grain{width:96px}.acceptance-col-reason{width:140px}.acceptance-col-conclusion{width:128px}.acceptance-col-opinion{width:210px}.season-record-table{min-width:1520px;font-size:13.5px}.season-col-sample{width:158px}.season-col-survey{width:170px}.season-col-type{width:112px}.season-col-warehouse{width:82px}.season-col-grain{width:86px}.season-col-value{width:102px}.season-col-acid{width:148px}.season-col-afb{width:156px}.season-col-health,.season-col-conclusion{width:128px}.warehouse-summary-record-paper{width:-moz-fit-content;width:fit-content;min-width:1320px;padding:18px 16px 22px}.warehouse-summary-record-paper h2{min-height:34px;margin-bottom:10px;font-size:24px}.warehouse-grain-tabs{display:inline-flex;margin-bottom:12px;border:1px solid #b9dce8;border-radius:4px;overflow:hidden}.warehouse-grain-tabs button{min-width:88px;height:30px;border:0;border-right:1px solid #b9dce8;background:#fff;color:#526171;font-weight:700}.warehouse-grain-tabs button:last-child{border-right:0}.warehouse-grain-tabs button.active{background:#087ea4;color:#fff;font-weight:800}.warehouse-summary-record-paper .warehouse-record-meta{margin-bottom:6px;font-size:13px}.warehouse-summary-record-table{width:100%;min-width:1288px;table-layout:fixed;font-size:14px}.warehouse-summary-record-table th,.warehouse-summary-record-table td{height:34px;padding:3px 5px;line-height:1.2;word-break:normal;overflow-wrap:anywhere}.warehouse-summary-record-table .warehouse-record-base th,.warehouse-summary-record-table .warehouse-record-base td{height:36px;font-size:13px}.warehouse-summary-record-table thead tr:not(.warehouse-record-base) th{height:62px}.warehouse-summary-record-table thead small{display:block;margin-top:3px;color:#526171;font-size:11px;font-weight:400}.warehouse-summary-record-table .warehouse-record-blank-row td{height:34px}.warehouse-col-position{width:84px}.warehouse-col-date{width:82px}.warehouse-col-small{width:60px}.warehouse-col-indicator{width:90px}.warehouse-col-medium{width:70px}.warehouse-col-mold{width:58px}.warehouse-col-agency{width:78px}.warehouse-col-report{width:132px}.warehouse-col-recorder{width:58px}.warehouse-col-purpose{width:70px}.warehouse-col-remark{width:62px}.warehouse-record-paper h2{min-height:42px;margin:0 0 14px;padding:0 24px;display:flex;align-items:center;justify-content:center;text-align:center;color:#000;font-size:24px;font-weight:800;letter-spacing:0}.warehouse-record-meta{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:16px;margin-bottom:8px;color:#000;font-size:13px}.warehouse-record-meta span:nth-child(2){text-align:center}.warehouse-record-meta span:nth-child(3){text-align:center}.warehouse-record-table{width:100%;border-collapse:collapse;table-layout:fixed;color:#000;font-family:SimSun,Songti SC,serif;font-size:13px}.warehouse-record-table th,.warehouse-record-table td{height:42px;padding:5px 8px;border:1px solid #000;background:#fff;text-align:center;vertical-align:middle;line-height:1.38;white-space:normal;word-break:break-word}.warehouse-record-table th{font-weight:800}.warehouse-record-base th,.warehouse-record-base td{height:44px;font-weight:700}.warehouse-record-table tbody td:nth-child(1){font-weight:700}.warehouse-record-table tbody td:nth-child(14){font-family:Arial,sans-serif;font-size:12px}.warehouse-record-blank-row td{height:42px}.warehouse-record-table.warehouse-summary-record-table{width:100%;min-width:1288px;table-layout:fixed;font-size:14px}.warehouse-record-table.warehouse-summary-record-table th,.warehouse-record-table.warehouse-summary-record-table td{height:34px;padding:3px 5px;line-height:1.2;word-break:normal;overflow-wrap:anywhere}.warehouse-record-table.warehouse-summary-record-table thead th{font-size:13.5px;line-height:1.16}.warehouse-record-table.warehouse-summary-record-table .warehouse-record-base th,.warehouse-record-table.warehouse-summary-record-table .warehouse-record-base td{height:36px;font-size:13px}.warehouse-record-table.warehouse-summary-record-table .warehouse-record-blank-row td{height:34px}.warehouse-record-table.warehouse-summary-record-table tbody td:nth-child(13),.warehouse-record-table.warehouse-summary-record-table tbody td:nth-child(15),.warehouse-record-table.warehouse-summary-record-table tbody td:nth-child(16),.warehouse-record-table.warehouse-summary-record-table tbody td:nth-child(17){font-size:13px;line-height:1.16}.warehouse-record-table.warehouse-summary-record-table tbody td:nth-child(14){font-family:Arial,sans-serif;font-size:12px;line-height:1.12;word-break:break-all;overflow-wrap:anywhere}.cargo-record-table td:nth-child(2),.acceptance-record-table td:nth-child(1),.season-record-table td:nth-child(1),.season-record-table td:nth-child(2){font-family:Arial,sans-serif;word-break:break-all;overflow-wrap:anywhere}.cargo-record-table td:nth-child(10){text-align:left;line-height:1.32}.acceptance-record-table td:nth-child(7){line-height:1.32}.season-record-table td:nth-child(7),.season-record-table td:nth-child(8),.season-record-table td:nth-child(9){line-height:1.3}.paper-report-title{margin-bottom:12px;text-align:center;font-family:SimSun,Songti SC,serif}.paper-report-title h2{margin:0 0 8px;color:#111827;font-size:24px;letter-spacing:2px}.paper-report-title p,.paper-letter-meta{margin:0;color:#334155;font-size:13px}.paper-letter-meta{display:flex;justify-content:space-between;margin-bottom:14px;padding:8px 0;border-top:1px solid #111827;border-bottom:1px solid #111827}.paper-report-sign{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:18px;color:#111827;font-family:SimSun,Songti SC,serif;font-size:14px}.paper-report-sign span{min-height:32px;display:flex;align-items:flex-end;border-bottom:1px solid #111827}.report-result-pill{height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;font-weight:700}.report-result-pill.ok{background:#edfdf4;color:#15803d}.report-result-pill.warning{background:#fff7ed;color:#c2410c}.report-result-pill.alarm{background:#fef2f2;color:#d93025}.report-inline-progress{height:12px;overflow:hidden;border:1px solid #111827;background:#fff}.report-inline-progress i{height:100%;display:block;background:repeating-linear-gradient(45deg,#111827 0,#111827 4px,#dbeafe 4px,#dbeafe 8px)}.warehouse-summary-card p,.acceptance-letter p{color:#526171;font-size:13px}.acceptance-letter h3{text-align:center;color:#142033;font-size:22px}.lab-page{height:100%;display:flex;flex-direction:column;gap:12px;overflow:hidden}.lab-hero{min-height:112px;display:flex;justify-content:space-between;gap:18px;padding:18px 22px;border-radius:8px;background:linear-gradient(135deg,#17365d,#256b91 52%,#3ba0cf);color:#fff;box-shadow:0 14px 32px #17365d2e}.lab-hero h2{margin:4px 0 6px;font-size:23px}.lab-hero span,.lab-hero p{color:#ffffffc7;font-size:13px}.lab-stat-grid{display:grid;grid-template-columns:repeat(4,86px);gap:10px}.lab-stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:#ffffff1f}.lab-stat-card b{font-size:25px}.lab-main-grid,.lab-bottom-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:12px;min-height:0}.lab-module-tabs{flex:none;margin-top:2px}.lab-ledger-grid{grid-template-columns:minmax(520px,1.05fr) minmax(520px,1fr);gap:16px}.lab-ledger-module{min-height:0;display:flex;flex:1}.lab-ledger-module>.instrument-panel,.environment-module{flex:1}.instrument-panel{height:100%}.lab-single-module{flex:1;min-height:0}.lab-main-grid{flex:1.1}.lab-bottom-grid{flex:.9}.lab-panel{min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #d9eaf4;border-radius:6px;background:#fff}.lab-panel-head{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #edf1f5}.lab-panel-head h3{margin:0 0 4px;color:#142033;font-size:15px}.lab-panel-head span{color:#718096;font-size:12px}.lab-panel-head button{height:28px;display:inline-flex;align-items:center;gap:4px;border:0;border-radius:4px;background:#3ba0cf;color:#fff;font-size:12px}.secondary-action{background:#f1f7fb!important;color:#2384b6!important}.instrument-type-grid{flex:0 0 15%;min-height:94px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:10px 14px;overflow:auto}.instrument-type-card{min-width:0;min-height:74px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:5px 8px;padding:9px 10px;border:1px solid #e3eef5;border-left-width:3px;border-radius:6px;background:#f8fcff;cursor:pointer;font:inherit;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.instrument-type-card:hover{border-color:#7bbbd7;background:#f2f9fd}.instrument-type-card.active{border-color:#3ba0cf;background:#eef8fe;box-shadow:0 0 0 2px #3ba0cf1f}.instrument-type-icon{grid-row:1 / span 2;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;background:#eaf7fd;color:#2384b6}.instrument-type-card.physical{border-left-color:#3b82f6}.instrument-type-card.moisture{border-left-color:#06b6d4}.instrument-type-card.chemistry{border-left-color:#ef4444}.instrument-type-card.preparation{border-left-color:#f59e0b}.instrument-type-card.environment{border-left-color:#22c55e}.instrument-type-card.moisture .instrument-type-icon{background:#ecfeff;color:#0891b2}.instrument-type-card.chemistry .instrument-type-icon{background:#fef2f2;color:#dc2626}.instrument-type-card.preparation .instrument-type-icon{background:#fffbeb;color:#d97706}.instrument-type-card.environment .instrument-type-icon{background:#f0fdf4;color:#16a34a}.instrument-type-name{min-width:0;overflow:hidden;color:#526171;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.instrument-type-card>b{color:#142033;font-size:20px;line-height:1}.instrument-type-card>b small{margin-left:2px;color:#718096;font-size:10px;font-weight:500}.instrument-type-meta{grid-column:2 / 4;display:flex;gap:6px}.instrument-type-meta em{min-height:18px;display:inline-flex;align-items:center;padding:0 6px;border-radius:3px;background:#edfdf4;color:#15803d;font-size:10px;font-style:normal;white-space:nowrap}.instrument-type-meta em.warn{background:#fff7ed;color:#c2410c}.lab-status{height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;background:#edfdf4;color:#15803d;font-size:12px}.lab-status.warn{background:#fff7ed;color:#c2410c}.lab-status.danger{background:#fef2f2;color:#b91c1c}.lab-status.info{background:#eaf7fd;color:#2384b6}.section-subhead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 10px}.section-subhead>div{min-width:0}.section-subhead h4{margin:0;color:#142033;font-size:14px}.section-subhead span{display:block;margin-top:4px;color:#718096;font-size:12px}.custodian-instrument-section{min-height:0;display:flex;flex:0 0 70%;flex-direction:column;border-top:1px solid #edf1f5}.custodian-instrument-section .section-subhead{flex:0 0 50px;padding:8px 14px;border-bottom:1px solid #edf1f5}.instrument-detail-scroll{min-height:0;flex:1;padding:0 14px 14px;overflow:auto}.instrument-detail-table{width:100%;min-width:1020px;table-layout:fixed}.instrument-code-col{width:12%}.instrument-name-col{width:14%}.instrument-model-col{width:12%}.instrument-location-col{width:13%}.instrument-custodian-col{width:9%}.instrument-calibration-col{width:13%}.instrument-progress-col{width:19%}.instrument-status-col{width:8%}.instrument-detail-table th,.instrument-detail-table td{height:auto;padding:10px 8px;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}.instrument-detail-table tbody tr{min-height:50px}.instrument-detail-table input[type=date]{width:100%;min-width:0;height:30px;padding:0 6px;border:1px solid #dce3ea;border-radius:3px;box-sizing:border-box}.instrument-detail-main{min-width:0}.instrument-detail-main b{display:block;color:#142033;font-size:13px}.instrument-detail-main span,.instrument-detail-row label,.env-record-list div,.lab-table{color:#526171;font-size:12px}.instrument-detail-main span{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instrument-detail-row label{display:flex;flex-direction:column;gap:5px}.instrument-detail-row input{height:28px;padding:0 8px;border:1px solid #dce3ea;border-radius:4px;color:#172033;font-size:12px}.calibration-progress{display:flex;flex-direction:column;gap:8px}.calibration-progress.compact{min-width:210px}.calibration-progress div{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#526171;font-size:12px}.calibration-progress em{min-width:38px;min-height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#edfdf4;color:#15803d;font-style:normal}.calibration-progress em.warn{background:#fff7ed;color:#c2410c}.calibration-progress em.danger{background:#fef2f2;color:#b91c1c}.calibration-progress em.info{background:#eaf7fd;color:#2384b6}.calibration-progress i{height:8px;display:block;overflow:hidden;border-radius:999px;background:#e5edf3}.calibration-progress i b{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,#18a9d1,#22c55e)}.calibration-progress i b.warn{background:linear-gradient(90deg,#f59e0b,#f97316)}.calibration-progress i b.danger{background:linear-gradient(90deg,#ef4444,#b91c1c)}.calibration-progress i b.info{background:linear-gradient(90deg,#38bdf8,#3b82f6)}.maintenance-scroll{min-height:0;padding:0 14px 14px;overflow:auto}.maintenance-table{min-width:1440px}.maintenance-table th,.maintenance-table td{height:auto;padding:10px 8px;vertical-align:middle}.maintenance-table th:nth-child(8),.maintenance-table td:nth-child(8){width:230px}.maintenance-table th:last-child,.maintenance-table td:last-child{width:150px;text-align:center}.maintenance-empty{color:#718096;font-size:12px}.maintenance-actions{display:inline-flex;align-items:center;justify-content:center;gap:6px}.abandon-link{border-color:#f3c4c4;color:#b91c1c}.abandon-link:hover:not(:disabled){border-color:#dc2626;background:#fef2f2}.abandon-link:disabled{cursor:not-allowed;border-color:#e5e7eb;background:#f8fafc;color:#94a3b8}.abandon-confirm{background:#b91c1c!important}.secondary-link{height:24px;padding:0 10px;border:1px solid #d9e5ee;border-radius:4px;background:#fff;color:#2384b6;font-size:12px}.secondary-link:hover{border-color:#3ba0cf;background:#f4fbff}.calibration-module{flex:1;min-height:0}.calibration-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 14px}.calibration-summary-card{min-height:58px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px 14px;border:1px solid #e3eef5;border-radius:8px;background:linear-gradient(180deg,#fff,#f8fcff);box-shadow:0 8px 18px #234a730d}.calibration-summary-card b{color:#142033;font-size:24px}.calibration-summary-card span{color:#718096;font-size:12px}.calibration-summary-card.blue{border-color:#d8eefe}.calibration-summary-card.green{border-color:#dff6eb}.calibration-summary-card.orange{border-color:#fee2b8}.calibration-summary-card.red{border-color:#f8c8c8}.calibration-layout{flex:1;min-height:0;display:flex;padding:0 14px 14px}.calibration-plan-panel,.calibration-history-panel{min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #d9eaf4;border-radius:6px;background:#fff}.env-panel{overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}.env-panel::-webkit-scrollbar{width:8px}.env-panel::-webkit-scrollbar-thumb{border:2px solid #fff;border-radius:8px;background:#b8ccd9}.env-panel::-webkit-scrollbar-track{background:#f6fafc}.calibration-scroll{min-height:0;flex:1;padding:0 14px 14px;overflow:auto}.calibration-plan-table{width:100%;min-width:1140px;table-layout:fixed}.calibration-plan-table th,.calibration-plan-table td{height:auto;padding:10px 8px;vertical-align:middle}.calibration-plan-table tbody tr{cursor:pointer;transition:background .16s ease}.calibration-plan-table tbody tr:hover{background:#f8fcff}.calibration-plan-table tbody tr.active{background:#edf8fe}.calibration-plan-table input{width:100%;min-width:140px;height:28px;padding:0 8px;border:1px solid #dce3ea;border-radius:4px;color:#172033;font-size:12px}.calibration-plan-table th:nth-child(4),.calibration-plan-table td:nth-child(4){width:160px}.calibration-plan-table th:nth-child(6),.calibration-plan-table td:nth-child(6){width:230px}.calibration-plan-table th:nth-child(8),.calibration-plan-table td:nth-child(8){width:86px;text-align:center}.calibration-plan-table th:nth-child(9),.calibration-plan-table td:nth-child(9){width:86px;text-align:center}.calibration-action{color:#18794e!important}.calibration-action:disabled{color:#a0aec0!important;cursor:not-allowed}.calibration-detail-card{margin:0 14px 12px;padding:12px 14px;border:1px solid #d9eaf4;border-radius:6px;background:linear-gradient(180deg,#f8fcff,#fff)}.calibration-detail-card>div:first-child{display:flex;flex-direction:column;gap:4px;padding-bottom:12px}.calibration-detail-card>div:first-child b{color:#142033;font-size:15px}.calibration-detail-card>div:first-child span{color:#718096;font-size:12px}.calibration-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.calibration-detail-grid div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #edf1f5;border-radius:4px;background:#fff}.calibration-detail-grid span{color:#718096;font-size:12px}.calibration-detail-grid b{color:#142033;font-size:13px}.calibration-history-list{min-height:0;padding:0 14px 14px;display:flex;flex-direction:column;gap:8px;overflow:auto}.calibration-history-item{display:grid;grid-template-columns:112px 1fr 88px;align-items:center;gap:10px;min-height:58px;padding:10px 12px;border:1px solid #edf1f5;border-radius:6px;background:#fff}.calibration-history-item.current{border-color:#3ba0cf;background:#f3fbff}.calibration-history-main{display:flex;flex-direction:column;gap:3px}.calibration-history-main b{color:#142033;font-size:13px}.calibration-history-main span{color:#718096;font-size:12px}.calibration-history-meta{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.calibration-history-meta span{color:#526171;font-size:12px}.calibration-history-meta em{min-height:20px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;background:#edfdf4;color:#15803d;font-size:11px;font-style:normal}.calibration-history-item strong{justify-self:end;color:#17476d;font-family:Arial,sans-serif;font-size:12px}.calibration-history-dialog{width:min(920px,calc(100vw - 60px));max-height:min(780px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a4d}.calibration-history-dialog-body{min-height:0;display:flex;flex-direction:column;gap:12px;padding:14px;overflow:hidden;background:#f8fbfd}.calibration-history-dialog .calibration-detail-card{flex:none;margin:0}.calibration-history-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px}.calibration-history-dialog-head h3{margin:0 0 3px;color:#142033;font-size:14px}.calibration-history-dialog-head span{color:#718096;font-size:12px}.calibration-history-dialog-head>b{color:#2384b6;font-size:13px}.calibration-history-dialog .calibration-history-list{flex:1;padding:0}.calibration-dialog-actions{display:inline-flex;align-items:center;gap:8px}.calibration-dialog-actions button{height:28px;display:inline-flex;align-items:center;gap:4px;padding:0 9px;border:1px solid #dce3ea;border-radius:4px;background:#fff;color:#526171;font-size:12px}.calibration-dialog-actions button:first-child{border-color:#9bd7bd;background:#f2fbf6;color:#18794e}.calibration-operation-dialog{width:min(620px,calc(100vw - 48px))}.calibration-operation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}.calibration-operation-form label{display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px}.calibration-operation-form input,.calibration-operation-form select{height:32px;padding:0 8px;border:1px solid #dce3ea;border-radius:4px;color:#172033;font-size:12px}.calibration-operation-instrument,.calibration-operation-form>button{grid-column:1 / -1}.calibration-operation-instrument{display:grid;grid-template-columns:auto auto;gap:4px 10px;padding:11px 12px;border:1px solid #d9eaf4;border-radius:5px;background:#f8fcff}.calibration-operation-instrument span,.calibration-operation-instrument small{color:#718096;font-size:11px}.calibration-operation-instrument b{color:#17476d;font-size:13px}.calibration-operation-instrument small{grid-column:1 / -1}.calibration-operation-form>button{height:34px;border:0;border-radius:4px;background:#16725e;color:#fff;font-size:12px;font-weight:700}.calibration-operation-form>button:disabled{background:#b8c7d1;cursor:not-allowed}.env-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 14px 0;justify-content:flex-end}.env-filter-row select,.env-status-row select{width:164px;height:34px;border:1px solid #dce3ea;border-radius:4px;color:#172033;font-size:12px}.env-alarm-tabs{display:flex;flex-wrap:wrap;gap:6px}.env-alarm-tabs button{height:34px;padding:0 10px;border:1px solid #d9e5ee;border-radius:4px;background:#fff;color:#526171;font-size:12px}.env-alarm-tabs button.active{border-color:#c2410c;background:#c2410c;color:#fff;font-weight:800;box-shadow:0 4px 10px #c2410c38}.env-range-tabs{display:flex;gap:6px}.env-range-tabs button{height:30px;padding:0 10px;border:1px solid #d9e5ee;border-radius:4px;background:#fff;color:#526171;font-size:12px}.env-range-tabs button.active{border-color:#087ea4;background:#087ea4;color:#fff;font-weight:800;box-shadow:0 4px 10px #087ea438}.env-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:6px 14px 14px}.env-status-row label{display:inline-flex;align-items:center;gap:8px;color:#526171;font-size:12px}.env-status-row>span{flex:none;min-width:66px;color:#526171;font-size:12px}.env-status-row .env-alarm-tabs{flex:1}.env-gauge-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px}.env-gauge-row div{min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #dff0f8;border-radius:12px;background:linear-gradient(135deg,#f1f8fc,#fff)}.env-gauge-row b{color:#17476d;font-size:24px}.env-gauge-row small{margin-top:3px;color:#7b8b9a;font-size:10px}.environment-live-section{flex:0 0 122px;padding:9px 14px;border-bottom:1px solid #edf1f5}.environment-live-head,.environment-detail-head,.environment-trend-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px}.environment-live-head>div:first-child{display:flex;align-items:center;gap:8px}.environment-live-head>div:first-child i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}.environment-live-head b{color:#142033;font-size:14px}.environment-live-head span,.environment-detail-head span{color:#718096;font-size:12px}.environment-live-summary{display:flex;align-items:center;gap:16px;color:#718096;font-size:12px}.environment-live-summary b{margin-left:4px;color:#17476d;font-size:14px}.environment-live-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:8px;border-top:1px solid #edf1f5;border-left:1px solid #edf1f5}.environment-live-item{min-width:0;display:grid;grid-template-columns:minmax(70px,1fr) minmax(70px,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:4px 8px;padding:7px 9px;border-right:1px solid #edf1f5;border-bottom:1px solid #edf1f5}.environment-live-item>div{min-width:0;grid-column:1 / -1;display:flex;flex-direction:column;gap:3px}.environment-live-item>div b{overflow:hidden;color:#142033;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.environment-live-item>div span{color:#94a3b8;font-size:10px}.environment-live-item>strong{min-width:0;display:flex;align-items:baseline;gap:4px;color:#17476d;font-size:15px;white-space:nowrap}.environment-live-item>strong small{color:#718096;font-size:10px;font-weight:500}.environment-live-item>em{justify-self:end;font-style:normal}.environment-detail-toolbar{flex:0 0 42px;display:flex;align-items:center;gap:10px;padding:5px 14px;border-bottom:1px solid #edf1f5}.environment-detail-toolbar .env-range-tabs{margin-right:auto}.environment-detail-toolbar label,.environment-trend-toolbar label{display:inline-flex;align-items:center;gap:6px;color:#526171;font-size:12px}.environment-detail-toolbar select,.environment-trend-toolbar select{height:32px;min-width:132px;padding:0 8px;border:1px solid #dce3ea;border-radius:4px;background:#fff;color:#172033;font-size:12px}.environment-detail-head{flex:0 0 38px;padding:5px 14px}.environment-detail-head>div{min-width:0;display:flex;align-items:center;gap:12px}.environment-detail-head h4{margin:0;color:#142033;font-size:14px}.environment-detail-head b{color:#2384b6;font-size:13px}.environment-detail-table-wrap{min-height:0;flex:1 1 65%;padding:0 14px 14px;overflow:auto}.environment-detail-table{min-width:760px;table-layout:fixed}.environment-time-col{width:190px}.environment-area-col{width:220px}.environment-value-col{width:120px}.environment-status-col{width:150px}.environment-detail-table th,.environment-detail-table td{height:42px;padding:7px 10px;white-space:normal}.environment-detail-table td b{color:#17476d}.environment-trend-dialog{width:min(1120px,calc(100vw - 60px));max-height:min(820px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a4d}.environment-trend-dialog-body{min-height:0;padding:14px;overflow:auto;background:#f8fbfd}.environment-trend-toolbar{padding-bottom:12px}.environment-trend-summary{display:flex;align-items:center;gap:24px;padding:10px 12px;border:1px solid #d9eaf4;background:#fff;color:#718096;font-size:12px}.environment-trend-summary b{margin-left:4px;color:#17476d;font-size:14px}.environment-popup-chart{margin:12px 0 0;background:#fff}.calibration-plan-panel{flex:1}@media (max-width: 980px){.environment-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.environment-live-head,.environment-detail-toolbar,.environment-trend-toolbar{align-items:flex-start;flex-direction:column}.environment-detail-toolbar .env-range-tabs{margin-right:0}}.env-trend-chart{flex:0 0 auto;position:relative;margin:0 14px 10px;padding:12px 14px 8px;overflow:hidden;border:1px solid #dff0f8;border-radius:8px;background:linear-gradient(180deg,#fff,#f8fcff)}.chart-legend{display:flex;gap:14px;margin-bottom:6px;color:#526171;font-size:12px}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend span:before{content:"";width:18px;height:3px;border-radius:999px;background:#ef4444}.chart-legend .humidity:before{background:#2d9cdb}.chart-tooltip{position:absolute;right:14px;top:52px;z-index:2;padding:8px 10px;border:1px solid #d9eaf4;border-radius:6px;background:#fffffff5;color:#142033;font-size:12px;box-shadow:0 10px 18px #234a731f}.env-trend-chart svg{width:100%;min-width:0;height:280px;display:block}.env-trend-chart line{stroke:#d9e5ee;stroke-width:1}.env-trend-chart .chart-x-guide{stroke:#e7f0f6;stroke-width:1}.chart-axis-text{fill:#718096;font-size:11px;font-weight:600}.env-trend-chart polyline{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.temperature-line{stroke:#ef4444}.humidity-line{stroke:#2d9cdb}.temperature-dot{fill:#ef4444}.humidity-dot{fill:#2d9cdb}.temperature-dot:hover,.humidity-dot:hover{stroke:#fff;stroke-width:3}.chart-axis-labels{position:relative;height:18px;color:#718096;font-size:10px}.chart-axis-labels span{position:absolute;top:0;width:48px;transform:translate(-50%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.env-record-list{flex:1 1 0;min-height:200px;padding:0 12px 12px;overflow:auto;max-height:none}.env-record-list div{display:grid;grid-template-columns:120px 1fr 90px 70px;align-items:center;gap:8px;min-height:42px;border-bottom:1px solid #edf1f5}.env-record-list b{color:#142033}.env-record-list strong{color:#15803d}.env-record-list strong.warn{color:#d93025}.env-record-list strong{font-weight:700}.lab-table{width:100%;border-collapse:collapse}.lab-table th,.lab-table td{height:36px;padding:0 10px;border-bottom:1px solid #edf1f5;text-align:left}.lab-table th{background:#f1f7fb;color:#17476d}.reagent-page{height:100%;display:flex;flex-direction:column;gap:8px;overflow:hidden}.reagent-toolbar{height:34px;flex:0 0 34px;margin:0;padding:0 2px}.reagent-overview-grid{flex:1;min-height:0;display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px}.reagent-overview-process{grid-column:1 / -1}.reagent-overview-alert-list,.reagent-overview-approval-list{min-height:0;display:flex;flex:1;flex-direction:column;gap:8px;padding:12px;overflow:auto}.reagent-overview-alert-list>div,.reagent-overview-approval-list>div{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:10px 12px;border-left:3px solid #f59e0b;background:#fff7ed}.reagent-overview-alert-list b,.reagent-overview-approval-list b{color:#7c2d12;font-size:12px}.reagent-overview-alert-list span,.reagent-overview-approval-list span{grid-column:1 / -1;color:#9a3412;font-size:11px}.reagent-overview-approval-list button{grid-column:2;grid-row:1 / span 2;align-self:center;height:26px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;border:1px solid #7dd3fc;border-radius:4px;background:#f0f9ff;color:#0369a1}.approval-flow-dialog.reagent-approval-detail-dialog{width:min(1080px,calc(100vw - 48px));max-height:min(880px,calc(100vh - 36px))}.reagent-approval-business-form{margin-bottom:16px;border:1px solid #cfe1eb;border-radius:6px;background:#fff;overflow:hidden}.reagent-approval-business-head{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;border-bottom:1px solid #dceaf1;background:#f1f8fc}.reagent-approval-business-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}.reagent-approval-business-head h3{margin:0;color:#17476d;font-size:14px}.reagent-approval-business-head>div>span{color:#718096;font-size:11px}.reagent-approval-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;padding:14px}.reagent-approval-form-grid label{min-width:0;display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px;font-weight:600}.reagent-approval-form-grid label.full{grid-column:1 / -1}.reagent-approval-form-grid input,.reagent-approval-form-grid textarea{width:100%;min-width:0;padding:0 9px;border:1px solid #d7e4eb;border-radius:4px;background:#f8fafc;color:#172033;font:inherit;font-weight:500}.reagent-approval-form-grid input{height:34px}.reagent-approval-form-grid textarea{min-height:58px;padding-top:8px;line-height:1.5;resize:none}.reagent-approval-section-title{display:flex;align-items:center;gap:8px;margin:2px 2px 8px;color:#2384b6}.reagent-approval-section-title>div{display:flex;flex-direction:column;gap:1px}.reagent-approval-section-title b{color:#17476d;font-size:13px}.reagent-approval-section-title span{color:#718096;font-size:11px}@media (max-width: 900px){.reagent-approval-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 600px){.approval-flow-dialog.reagent-approval-detail-dialog{width:calc(100vw - 20px)}.reagent-approval-form-grid{grid-template-columns:1fr}.reagent-approval-form-grid label.full{grid-column:auto}}.reagent-overview-cabinet-alerts{border-color:#fca5a5;background:snow}.reagent-overview-cabinet-alerts .lab-panel-head{border-bottom-color:#fecaca;background:#fef2f2}.reagent-overview-cabinet-alerts .lab-panel-head h3{color:#b91c1c}.reagent-cabinet-alert-list{min-height:0;display:flex;flex:1;flex-direction:column;gap:8px;padding:12px;overflow:auto}.reagent-cabinet-alert-list button,.reagent-cabinet-alert-list>div{min-height:56px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:9px 12px;border:1px solid #fca5a5;border-left:4px solid #dc2626;border-radius:4px;background:#fef2f2;color:#991b1b;text-align:left}.reagent-cabinet-alert-list b{font-size:13px}.reagent-cabinet-alert-list span{color:#b91c1c;font-size:11px}.reagent-inventory-module,.reagent-cabinet-module{flex:1}.reagent-inventory-module{overflow:auto}.reagent-inventory-module .reagent-table{min-width:1050px}.reagent-hero{min-height:112px;display:flex;justify-content:space-between;gap:18px;padding:18px 22px;border-radius:8px;background:linear-gradient(135deg,#184e3a,#1b8a73 54%,#2db8a7);color:#fff;box-shadow:0 14px 32px #184e3a2e}.reagent-hero h2{margin:4px 0 6px;font-size:23px}.reagent-hero span,.reagent-hero p{color:#fffc;font-size:13px}.reagent-flow-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:12px}.reagent-flow-strip button{min-height:66px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:12px;border:1px solid #d8efe9;border-radius:6px;background:#f6fffc;color:inherit;text-align:left;cursor:pointer}.reagent-flow-strip button:hover{border-color:#48a78f;background:#eaf8f4}.reagent-flow-card.purchase{border-left:4px solid #2563eb;background:#eff6ff}.reagent-flow-card.purchase b{color:#1d4ed8}.reagent-flow-card.inbound{border-left:4px solid #16a34a;background:#f0fdf4}.reagent-flow-card.inbound b{color:#15803d}.reagent-flow-card.usage{border-left:4px solid #ea580c;background:#fff7ed}.reagent-flow-card.usage b{color:#c2410c}.reagent-flow-card.return{border-left:4px solid #0891b2;background:#ecfeff}.reagent-flow-card.return b{color:#0e7490}.reagent-flow-card.inventory{border-left:4px solid #7c3aed;background:#f5f3ff}.reagent-flow-card.inventory b{color:#6d28d9}.reagent-flow-strip b{color:#184e3a;font-size:20px;font-weight:800}.reagent-flow-strip span{color:#5b756c;font-size:13px;font-weight:700}.reagent-main-grid{flex:1.1;min-height:0;display:grid;grid-template-columns:1.65fr .75fr;gap:12px}.reagent-side-stack{min-height:0;display:flex;flex-direction:column;gap:12px}.reagent-cabinet-panel{flex:none}.reagent-side-stack>.lab-panel:last-child{flex:1}.reagent-cabinet-card{width:calc(100% - 28px);margin:0 14px;padding:13px;border:1px solid #d7ebe5;border-radius:6px;background:#f8fffd;color:#172033;text-align:left}.reagent-cabinet-card:hover{border-color:#48a78f;background:#f1fffa}.reagent-cabinet-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.reagent-cabinet-card-head b{overflow:hidden;color:#184e3a;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.reagent-cabinet-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.reagent-cabinet-metrics div{padding:8px 10px;border:1px solid #e0f0eb;border-radius:4px;background:#fff}.reagent-cabinet-metrics span,.reagent-cabinet-card small{display:block;color:#5b756c;font-size:11px}.reagent-cabinet-metrics strong{display:block;margin-top:4px;color:#184e3a;font-size:18px}.reagent-cabinet-card small{margin-top:10px}.reagent-cabinet-dots{display:flex;justify-content:center;gap:6px;padding:12px 14px 14px}.reagent-cabinet-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#bfd8cf}.reagent-cabinet-dots button.active{width:18px;border-radius:8px;background:#1b8a73}.reagent-bottom-grid{flex:.9;min-height:0;display:grid;grid-template-columns:1.35fr .85fr;gap:12px}.reagent-table{min-width:980px}.reagent-flow-table{min-width:1120px}.reagent-process-page{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}.reagent-process-tabs{display:flex;gap:6px}.reagent-process-tabs button{min-width:76px;height:32px;padding:0 14px;border:1px solid #d4e5df;border-radius:4px;background:#fff;color:#547167;font-size:13px}.reagent-process-tabs button.active{border-color:#1b8a73;background:#176b58;color:#fff;font-weight:800;box-shadow:0 6px 14px #176b583d;transform:translateY(-2px)}.reagent-process-table-wrap{min-height:0;padding:0 14px 14px;overflow:auto}.reagent-flow-link{height:24px;display:inline-flex;align-items:center;gap:4px;padding:0 10px;border:1px solid #d9e5ee;border-radius:4px;background:#fff;color:#2384b6;font-size:12px}.reagent-type{height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700}.reagent-type.normal{background:#edfdf4;color:#15803d}.reagent-type.danger{background:#fef2f2;color:#d93025}.reagent-entry-dialog{max-height:min(720px,calc(100vh - 50px));display:flex;flex-direction:column}.reagent-entry-dialog .send-form{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:auto}.reagent-entry-dialog .send-form button{grid-column:1 / -1}.reagent-flow-dialog{max-height:min(720px,calc(100vh - 50px));display:flex;flex-direction:column}.reagent-flow-form-body{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px;overflow:auto}.reagent-flow-form-body label{display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px}.reagent-flow-form-body label.full,.reagent-flow-form-body button{grid-column:1 / -1}.reagent-flow-form-body input,.reagent-flow-form-body select,.reagent-flow-form-body textarea{min-height:30px;padding:0 8px;border:1px solid #dce3ea;border-radius:3px;color:#172033;font-size:12px}.reagent-flow-form-body textarea{min-height:58px;padding-top:8px;resize:none}.reagent-flow-form-body input[readonly]{background:#f7faf9;color:#61746d}.reagent-flow-form-body button{height:32px;border:0;border-radius:4px;background:#1b8a73;color:#fff;font-weight:700}.reagent-cabinet-dialog{width:min(1040px,calc(100vw - 48px));max-height:min(760px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.reagent-cabinet-history-body{min-height:0;padding:14px;overflow:auto;background:#f8fcfb}.reagent-cabinet-standard-banner{padding:10px 12px;border:1px solid #86efac;background:#f0fdf4}.reagent-cabinet-standard-banner.alert{border-color:#fca5a5;background:#fef2f2}.reagent-cabinet-standard-banner b,.reagent-cabinet-standard-banner span{display:block}.reagent-cabinet-standard-banner b{color:#166534;font-size:13px}.reagent-cabinet-standard-banner span{margin-top:4px;color:#527568;font-size:11px}.reagent-cabinet-standard-banner.alert b,.reagent-cabinet-standard-banner.alert span{color:#b91c1c}.reagent-cabinet-stock-section{margin-top:12px;border:1px solid #d9eaf4;background:#fff}.reagent-cabinet-stock-section .section-subhead{padding:10px 12px;border-bottom:1px solid #edf1f5}.reagent-cabinet-stock-table-wrap{overflow:auto}.reagent-cabinet-stock-table-wrap table{min-width:840px}.reagent-cabinet-live-section{flex:none}.reagent-cabinet-inline-actions{display:flex;flex:none;gap:8px;margin-left:auto}.reagent-cabinet-inline-actions button{height:34px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border-radius:4px;color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.reagent-cabinet-inline-actions button:hover{transform:translateY(-1px)}.cabinet-add-button{border:1px solid #0f766e;background:#0f766e;box-shadow:0 4px 10px #0f766e29}.cabinet-stock-add-button{border:1px solid #d97706;background:#d97706;box-shadow:0 4px 10px #d9770629}.reagent-cabinet-live-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reagent-cabinet-live-item{min-height:72px;border:0;border-right:1px solid #edf1f5;border-bottom:1px solid #edf1f5;background:#fff;color:inherit;text-align:left;font:inherit;cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.reagent-cabinet-live-item:hover{background:#f3fbf8;box-shadow:inset 0 0 0 1px #8bd4c2}.reagent-cabinet-live-item.alert{background:#fff5f5;box-shadow:inset 4px 0 #dc2626}.reagent-cabinet-live-item.selected{position:relative;z-index:1;background:#eaf8f4;box-shadow:inset 0 0 0 2px #1b8a73}.reagent-cabinet-live-item.alert.selected{background:#fff1f1;box-shadow:inset 0 0 0 2px #dc2626}.reagent-cabinet-live-item>.reagent-cabinet-live-title{flex-direction:row;align-items:center;gap:8px}.reagent-cabinet-live-title>span{min-width:0;display:flex;flex:1;flex-direction:column;gap:3px;color:inherit}.reagent-cabinet-live-title>span b{overflow:hidden;color:#142033;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.reagent-cabinet-live-title>span small{color:#94a3b8;font-size:10px}.reagent-cabinet-live-title>button{width:28px;height:28px;display:inline-flex;flex:none;align-items:center;justify-content:center;padding:0;border:1px solid #9ad2c4;border-radius:4px;background:#f0faf7;color:#16725e;cursor:pointer}.reagent-cabinet-live-title>button:hover{border-color:#16725e;background:#d8f3eb}.reagent-cabinet-type-tabs{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid #dfeae6;background:#fff;overflow-x:auto}.reagent-cabinet-type-tabs>button{min-width:220px;height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;border:1px solid #86c9b8;border-radius:5px;background:#f0faf7;color:#176b58;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.reagent-cabinet-type-tabs>button b{font-size:14px}.reagent-cabinet-type-tabs>button span{padding:2px 7px;border-radius:10px;background:#176b581a;color:inherit;font-size:11px;font-weight:600}.reagent-cabinet-type-tabs>button.controlled{border-color:#f0a3a3;background:#fff5f5;color:#b42318}.reagent-cabinet-type-tabs>button.active{border-color:#1b8a73;background:#176b58;color:#fff;box-shadow:0 4px 10px #176b5838}.reagent-cabinet-type-tabs>button.active span{background:#fff3}.reagent-cabinet-type-tabs>button.controlled.active{border-color:#dc2626;background:#b91c1c;color:#fff;box-shadow:0 4px 10px #b91c1c33}.reagent-cabinet-inventory-section{min-height:0;flex:1;display:flex;flex-direction:column;border-top:1px solid #dfeae6}.reagent-cabinet-inventory-table-wrap{flex:1}.reagent-cabinet-inventory-section .environment-detail-head{min-height:42px}.reagent-cabinet-stock-filters{min-height:42px;display:flex;align-items:center;gap:10px;padding:5px 14px;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5;background:#fbfefd}.reagent-cabinet-stock-filters label{display:inline-flex;align-items:center;gap:6px;color:#526171;font-size:12px}.reagent-inbound-report-dialog{width:min(900px,calc(100vw - 48px));max-height:min(820px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.reagent-inbound-report-body{min-height:0;margin:16px;padding:28px 32px;overflow:auto;border:1px solid #cfd8df;background:#fff;color:#172033}.reagent-inbound-report-body>header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:2px solid #17476d}.reagent-inbound-report-body>header span,.reagent-inbound-report-body>header small{color:#64748b;font-size:12px}.reagent-inbound-report-body h1{margin:5px 0 0;color:#142033;font-size:25px;letter-spacing:0}.reagent-inbound-report-code{display:flex;align-items:flex-end;flex-direction:column;gap:5px}.reagent-inbound-report-code b{color:#17476d;font-size:16px}.reagent-inbound-report-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0;border-top:1px solid #d9e1e7;border-left:1px solid #d9e1e7}.reagent-inbound-report-meta>div{min-height:64px;display:flex;justify-content:center;flex-direction:column;gap:5px;padding:10px 12px;border-right:1px solid #d9e1e7;border-bottom:1px solid #d9e1e7}.reagent-inbound-report-meta span{color:#64748b;font-size:11px}.reagent-inbound-report-meta b{color:#142033;font-size:14px}.reagent-inbound-report-meta .reagent-report-ok{color:#15803d}.reagent-inbound-report-body section h3{margin:0 0 8px;color:#17476d;font-size:14px}.reagent-inbound-report-body table{width:100%;border-collapse:collapse;font-size:12px}.reagent-inbound-report-body th,.reagent-inbound-report-body td{padding:10px 12px;border:1px solid #d9e1e7;text-align:left}.reagent-inbound-report-body th{width:120px;background:#f3f7fa;color:#526171}.reagent-inbound-report-body>footer{display:flex;justify-content:space-between;gap:20px;margin-top:28px;padding-top:12px;border-top:1px solid #94a3b8;color:#526171;font-size:12px}.reagent-inventory-confirm-dialog{width:min(720px,calc(100vw - 48px));max-height:min(760px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.reagent-inventory-confirm-body{min-height:0;padding:16px;overflow:auto;background:#f8fbfd}.reagent-inventory-confirm-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reagent-inventory-confirm-summary>div{min-height:62px;display:flex;justify-content:center;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #d9eaf4;border-radius:4px;background:#fff}.reagent-inventory-confirm-summary span{color:#718096;font-size:11px}.reagent-inventory-confirm-summary b{color:#17476d;font-size:13px}.reagent-inventory-confirm-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.reagent-inventory-confirm-form label{display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px}.reagent-inventory-confirm-form label.full{grid-column:1 / -1}.reagent-inventory-confirm-form input,.reagent-inventory-confirm-form textarea{min-height:32px;padding:0 9px;border:1px solid #dce3ea;border-radius:4px;background:#fff;color:#172033;font-size:12px}.reagent-inventory-confirm-form input[readonly]{background:#eef7f3;color:#166452;font-weight:700}.reagent-inventory-confirm-form textarea[readonly]{background:#f3f7f6;color:#526171}.reagent-inventory-confirm-form textarea{min-height:72px;padding-top:8px;resize:vertical}.reagent-inventory-confirm-button{width:100%;height:36px;display:flex;align-items:center;justify-content:center;gap:5px;margin-top:14px;border:0;border-radius:4px;background:#16725e;color:#fff;font-size:13px;font-weight:700}.reagent-inventory-confirmed-tip{min-height:38px;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;border:1px solid #86c9b8;border-radius:4px;background:#edf9f5;color:#166452;font-size:12px;font-weight:700}.reagent-cabinet-stock-filters label:first-child{min-width:220px;flex:1}.reagent-cabinet-stock-filters input,.reagent-cabinet-stock-filters select{height:30px;min-width:0;padding:0 8px;border:1px solid #dce3ea;border-radius:4px;background:#fff;color:#172033;font-size:12px}.reagent-cabinet-stock-filters input{width:100%}.reagent-cabinet-stock-filters select{width:150px}.reagent-cabinet-stock-filters>span{flex:none;color:#718096;font-size:11px}.reagent-cabinet-inventory-table{min-width:1180px}.reagent-cabinet-inventory-table th{height:36px;padding:5px 10px}.reagent-cabinet-inventory-table td{height:40px;padding:5px 10px;line-height:1.25;vertical-align:middle}.reagent-cabinet-inventory-table td:nth-child(2)>b{display:inline-flex;align-items:center}.reagent-cabinet-inventory-table td:nth-child(2) .reagent-type{height:19px;margin-left:6px;padding:0 6px;font-size:10px}@media (max-width: 1100px){.reagent-overview-grid{grid-template-columns:1fr;overflow:auto}.reagent-flow-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.reagent-cabinet-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reagent-cabinet-live-section{flex:none}}@media (max-width: 680px){.reagent-flow-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.reagent-cabinet-type-tabs>button{min-width:150px;padding:0 8px}.reagent-cabinet-type-tabs>button span,.reagent-cabinet-inline-actions button span{display:none}.reagent-cabinet-inline-actions button{width:34px;justify-content:center;padding:0}.reagent-cabinet-stock-filters{align-items:stretch;flex-direction:column}.reagent-cabinet-stock-filters label:first-child{min-width:0}.reagent-cabinet-stock-filters select{width:100%}}.cabinet-history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cabinet-history-summary div{padding:10px 12px;border:1px solid #dceee7;border-radius:5px;background:#fff}.cabinet-history-summary span{display:block;color:#5b756c;font-size:11px}.cabinet-history-summary b{display:block;margin-top:5px;color:#184e3a;font-size:15px}.cabinet-history-summary div:last-child b{font-size:12px}.cabinet-history-table-wrap{max-height:240px;margin-top:12px;overflow:auto;border:1px solid #dceee7;border-radius:5px;background:#fff}.purchase-alert-list{display:flex;flex-direction:column;gap:10px;padding:12px;overflow:auto}.purchase-alert-list div{display:flex;flex-direction:column;gap:5px;padding:12px;border-radius:6px;background:#fff7ed;border:1px solid #fed7aa}.purchase-alert-list b{color:#9a3412;font-size:14px}.purchase-alert-list span,.purchase-alert-list em{color:#7c2d12;font-size:12px;font-style:normal}.control-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:12px}.control-steps div{min-height:82px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px;border:1px solid #d9eaf4;border-radius:7px;background:linear-gradient(180deg,#fff,#f8fcff)}.control-steps b{color:#142033;font-size:14px}.control-steps span{color:#718096;font-size:12px}.sampling-actions{display:flex;align-items:center;gap:6px}.sampling-actions button{height:24px;display:inline-flex;align-items:center;gap:3px;padding:0;border:0;background:transparent;color:#2d9cdb;font-size:12px;transition:transform .16s ease,color .16s ease}.sampling-actions button:hover{transform:translateY(-1px);color:#0f7fa3}.sampling-actions button:disabled{color:#a0aec0;cursor:not-allowed}.sampling-order-approval-entry{color:#4b7ea2!important}.sampling-inline-approval-actions{display:inline-flex;align-items:center;gap:4px;padding-left:4px;border-left:1px solid #e5edf3}.sampling-inline-approval-actions button{min-height:24px;display:inline-flex;align-items:center;gap:3px;padding:0 6px!important;border:1px solid!important;border-radius:4px;font-size:11px!important;font-weight:700;transform:none!important}.sampling-inline-approval-actions button:hover{transform:none!important;filter:brightness(.97)}.sampling-inline-approve{border-color:#9bd7bd!important;background:#f2fbf6!important;color:#18794e!important}.sampling-inline-return{border-color:#efb0b0!important;background:#fff7f7!important;color:#b42318!important}.ledger-page{height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid #e6eef3;border-radius:4px;overflow:hidden}.ledger-head{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 14px;border-bottom:1px solid #edf1f5;background:#fff}.ledger-title{display:inline-flex;align-items:center;gap:8px;color:#111827;font-size:14px;font-weight:700}.ledger-title span{width:13px;height:13px;border-radius:2px;background:#18a9d1}.ledger-print{height:26px;display:inline-flex;align-items:center;gap:4px;padding:0 9px;border:1px solid #9de0f4;border-radius:3px;background:#ecfbff;color:#1398bd;font-size:12px}.ledger-filter-panel{min-height:78px;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid #edf1f5;background:#fff}.ledger-filter-panel label{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:8px;color:#111827;font-size:12px;font-weight:700}.ledger-filter-panel select,.ledger-filter-panel input{height:28px;min-width:0;padding:0 8px;border:1px solid #dce3ea;border-radius:3px;background:#fff;color:#526171;font-size:12px;font-weight:400}.ledger-date-range{display:flex;align-items:center;gap:6px}.ledger-date-range input{width:112px}.ledger-filter-actions{display:flex;align-items:center;gap:8px}.ledger-filter-actions button{height:28px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 12px;border:0;border-radius:3px;background:#18a9d1;color:#fff;font-size:12px}.ledger-filter-actions button:last-child{border:1px solid #cfe4ee;background:#f7fbfd;color:#4c7182}.ledger-version-tabs{height:38px;display:flex;align-items:center;gap:18px;padding:0 24px;border-bottom:1px solid #edf1f5}.ledger-version-tabs button{border:0;background:transparent;color:#526171;font-size:13px}.ledger-version-tabs button.active{padding:6px 12px;border-radius:4px;background:#087ea4;color:#fff;font-weight:800;box-shadow:0 4px 10px #087ea438}.ledger-sheet-wrap{flex:1;width:100%;min-height:0;padding:0 24px;overflow-x:auto;overflow-y:auto;scrollbar-gutter:stable;box-sizing:border-box}.ledger-sheet-table{width:100%;min-width:1180px;border-collapse:collapse;table-layout:fixed;color:#111827;font-family:SimSun,Songti SC,serif;font-size:12px;font-weight:700}.ledger-sheet-table caption{height:30px;caption-side:top;color:#111827;font-size:18px;font-weight:800;line-height:30px}.ledger-sheet-table th,.ledger-sheet-table td{height:34px;border:1px solid #222;padding:0 6px;text-align:center;white-space:nowrap;font-weight:700}.ledger-col-index{width:46px}.ledger-col-sample-no{width:126px}.ledger-col-grain{width:68px}.ledger-col-reason{width:140px}.ledger-col-count{width:92px}.ledger-col-date{width:96px}.ledger-col-receiver{width:82px}.ledger-col-method{width:150px}.ledger-col-approver,.ledger-col-reviewer{width:138px}.ledger-sheet-table th:nth-child(10),.ledger-sheet-table td:nth-child(10){white-space:normal;line-height:1.35}.ledger-sheet-table th{font-weight:800}.ledger-sheet-table td:nth-child(2),.ledger-sheet-table td:nth-child(4){text-align:left}.signature-cell{color:#111827;font-family:KaiTi,STKaiti,cursive;font-size:18px}.ledger-pagination{height:36px;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0 14px;border-top:1px solid #edf1f5;color:#526171;font-size:12px}.ledger-pagination select,.ledger-pagination input{height:26px;border:1px solid #dce3ea;border-radius:3px;color:#526171;font-size:12px}.ledger-pagination input{width:38px;text-align:center}.ledger-pagination button{width:26px;height:26px;border:1px solid #dce3ea;border-radius:3px;background:#fff;color:#718096}.ledger-pagination button.active{border-color:#18a9d1;background:#18a9d1;color:#fff}.sampling-form-dialog,.sampling-preview-dialog{width:min(1080px,calc(100vw - 80px));max-height:min(760px,calc(100vh - 70px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.sampling-form-dialog.narrow,.send-sample-dialog,.label-preview-dialog{width:min(640px,calc(100vw - 80px));max-height:min(620px,calc(100vh - 70px));overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.label-preview-dialog.wide{width:min(900px,calc(100vw - 80px))}.sampling-form-dialog.narrow{display:flex;flex-direction:column}.sampling-form-body{padding:14px;overflow:auto}.form-line{margin-bottom:10px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.form-grid label,.form-line label,.send-form label{display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px}.form-grid label.full{grid-column:1 / -1}.form-grid input,.form-grid select,.form-grid textarea,.form-line select,.send-form input,.send-form select,.send-form textarea{min-height:30px;padding:0 8px;border:1px solid #dce3ea;border-radius:3px;color:#172033;font-size:12px}.send-form textarea{min-height:58px;padding-top:8px;resize:none}.form-grid textarea{height:58px;padding-top:8px;resize:none}.dialog-actions{height:48px;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0 14px;border-top:1px solid #edf1f5}.dialog-actions button:last-child{background:#eef2f6;color:#526171}.dialog-actions button:disabled{opacity:.45;cursor:not-allowed}.dialog-actions>span{margin-right:auto;color:#718096;font-size:12px}.detail-sections{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;max-height:none;padding:16px 16px 24px;overflow:auto}.detail-section{flex-shrink:0;border:1px solid #d9eaf4;border-radius:5px;background:#fff;overflow:hidden}.detail-section h3{height:36px;display:flex;align-items:center;margin:0;padding:0 12px;border-bottom:1px solid #edf1f5;background:linear-gradient(90deg,#edf8ff,#fff);color:#17476d;font-size:13px;font-weight:700}.detail-section h3:before{content:"";width:3px;height:14px;margin-right:8px;border-radius:999px;background:#2d9cdb}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:12px}.detail-grid.compact{grid-template-columns:repeat(2,1fr)}.detail-grid div{display:flex;flex-direction:column;gap:5px;padding:10px;border:1px solid #edf1f5;border-radius:4px;background:#fbfdff}.detail-grid span{color:#718096;font-size:12px}.detail-grid b{color:#172033;font-size:13px}.approval-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px}.approval-flow div{min-height:76px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px;border:1px solid #edf1f5;border-radius:5px;background:#fbfdff}.approval-flow div.active{border-color:#2d9cdb;background:#edf8ff}.approval-flow div.done{border-color:#bce8d2;background:#f1fbf6}.approval-flow span{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#eaf7fd;color:#2384b6;font-size:12px;font-weight:700}.approval-flow b{color:#172033;font-size:13px}.approval-flow em{color:#718096;font-size:12px;font-style:normal}.approval-actions{display:flex;align-items:center;gap:10px;padding:0 12px 12px;color:#526171;font-size:12px}.approval-actions div{flex:1}.approval-actions button{min-width:136px;height:34px;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:5px;padding:0 14px;border:0;border-radius:4px;background:#2d9cdb;color:#fff;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.approval-actions button:last-child{min-width:152px;background:#d9772f}.approval-actions button svg{flex:0 0 auto}.approval-actions.inline{flex-wrap:wrap;padding:14px 0 0;border-top:1px solid #edf1f5}.approval-opinion-editor{flex:1 1 100%;display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:8px;color:#526171;font-size:12px}.approval-opinion-editor textarea{min-height:54px;padding:8px 10px;border:1px solid #dce3ea;border-radius:4px;background:#fff;color:#172033;font-size:12px;resize:vertical}.approval-tip{margin:0 12px 12px;padding:9px 10px;border-radius:3px;background:#f8fafc;color:#718096;font-size:12px}.approval-flow-dialog{width:min(940px,calc(100vw - 60px));max-height:min(800px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:10px;background:#f7fbfe;box-shadow:0 18px 46px #0f172a47}.approval-flow-body{padding:18px 22px 22px;overflow:auto;background:linear-gradient(180deg,#f7fbfe,#fff)}.approval-flow-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.business-detail-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.business-detail-summary b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approval-flow-summary div{min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 14px;border:1px solid #d9eaf4;border-radius:8px;background:#fff}.approval-flow-summary span{color:#718096;font-size:12px}.approval-flow-summary b{color:#142033;font-size:15px}.approval-route{position:relative;display:grid;grid-template-columns:1fr 34px 1fr 34px 1fr 34px 1fr 34px 1fr;align-items:center;gap:0;margin-bottom:18px;padding:16px 12px 12px;border-radius:16px;background:linear-gradient(135deg,#f7fbff,#eef8ff 60%,#fff7ed)}.approval-route:before{content:none}.approval-route-node{position:relative;z-index:1;min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(124,185,217,.34);border-radius:16px;background:#fffffff0;color:#718096;text-align:center;box-shadow:0 14px 30px #234a7314;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.approval-route-node:not(:last-child):after{content:none}.approval-route-arrow{width:100%;height:4px;position:relative;border-radius:999px;background:#cfe4ee}.approval-route-arrow:after{content:"";position:absolute;right:-1px;top:50%;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:9px solid #cfe4ee;background:transparent;transform:translateY(-50%)}.approval-route-arrow.done{background:linear-gradient(90deg,#16a4cc,#22c55e)}.approval-route-arrow.done:after{border-left-color:#22c55e}.approval-route-node span{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid #d7e5ec;background:linear-gradient(135deg,#fff,#f0f9ff)}.approval-route-node.done,.approval-route-node.active{border-color:#9bd9ef;background:linear-gradient(180deg,#edf8ff,#fff);color:#17476d}.approval-route-node.danger{border-color:#f4b4b4;background:#fff5f5;color:#d93025}.approval-route-node.done span,.approval-route-node.active span{border-color:#16a4cc;background:#16a4cc;color:#fff}.approval-route-node.danger span{border-color:#d93025;background:#d93025;color:#fff}.approval-route-node.active span{animation:pulseNode 1.8s ease-in-out infinite}.approval-route-node:hover{transform:translateY(-4px);box-shadow:0 14px 28px #234a7321}.approval-route-node b{color:#172033;font-size:13px}.approval-route-node em{font-size:12px;font-style:normal}.approval-route-node small{color:#718096;font-size:11px}.approval-history-card{padding:16px 20px 18px;border:1px solid #d9eaf4;border-radius:10px;background:#fff;box-shadow:0 8px 18px #234a730d}.approval-result-bar{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;padding:6px 10px;border:1px solid #d9eaf4;border-radius:6px;background:#f7fbff;color:#526171;font-size:13px}.approval-result-bar button{height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 12px;border:1px solid #b9deef;border-radius:4px;background:#fff;color:#1677b8}.history-mode{display:flex;align-items:center;gap:18px;margin-bottom:12px;color:#172033;font-size:14px}.history-mode label{display:inline-flex;align-items:center;gap:5px;color:#526171;font-size:13px}.approval-timeline{padding-left:40px}.approval-timeline-item{position:relative;min-height:60px;display:flex;flex-direction:column;gap:5px;padding-left:24px;color:#526171}.approval-timeline-item:before{content:"";position:absolute;left:5px;top:12px;bottom:-12px;width:2px;background:#18a9d1}.approval-timeline-item:last-child:before{display:none}.approval-timeline-item i{position:absolute;left:0;top:5px;width:12px;height:12px;border-radius:50%;background:#18a9d1}.approval-timeline-item b{color:#172033;font-size:14px}.approval-timeline-item span{color:#718096;font-size:13px}.approval-timeline-item small{display:block;padding:6px 8px;border-left:3px solid #9bd6e8;background:#f4fbfd;color:#426b7d;font-size:12px;line-height:1.6}.readonly-report-body input,.readonly-report-body textarea{background:#f8fafc;color:#334155}.paper-report-dialog{width:min(1280px,calc(100vw - 40px));max-height:min(920px,calc(100vh - 30px));background:#eef1ea}.quality-result-dialog{background:#e8f5fb}.report-view-actions{display:flex;align-items:center;gap:6px}.report-view-actions button{min-width:auto;display:inline-flex;align-items:center;gap:4px}.paper-report-body{padding:18px;background:linear-gradient(180deg,#ffffffb8,#ffffffb8),#e8ece3}.paper-report-page{max-width:1100px;margin:0 auto;padding:22px 24px 28px;border:1px solid #2f3438;background:#fffef8;box-shadow:0 10px 26px #2228311f;font-family:SimSun,Songti SC,serif;color:#111827}.quality-result-page{max-width:980px;border:1px solid #86c9e4;background:#fbfeff;box-shadow:0 10px 28px #20739929;font-family:Inter,Microsoft YaHei,sans-serif}.quality-result-page .paper-report-header{border-bottom:2px solid #2e91bb}.quality-result-page .paper-report-header h1{color:#155b7a;font-size:25px}.quality-result-page .paper-info-table th{background:#eaf7fc;color:#155b7a}.quality-result-page .paper-report-section h2{color:#176b91}.quality-result-page .paper-result-table th{background:#edf8fc;color:#24566d}.quality-result-page .paper-conclusion-box{display:none}.quality-status-banner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.quality-status-card{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 16px;border:2px solid #b7d8e6;border-radius:8px;background:#f4fbfe}.quality-status-card span{color:#527184;font-size:13px;font-weight:700}.quality-status-card strong{max-width:70%;overflow:hidden;color:#155b7a;font-size:20px;line-height:1.3;text-align:right;text-overflow:ellipsis;white-space:nowrap}.quality-status-card.pass{border-color:#65c39e;background:#effbf5}.quality-status-card.pass strong{color:#087443}.quality-status-card.warning{border-color:#e5b15e;background:#fff9ed}.quality-status-card.warning strong{color:#b56a00}.quality-status-card.fail{border-color:#e58b8b;background:#fff3f3}.quality-status-card.fail strong{color:#b42318}@media (max-width: 680px){.quality-status-banner{grid-template-columns:1fr}}.paper-report-header{padding-bottom:14px;border-bottom:2px solid #111827}.paper-report-brand{display:flex;align-items:center;gap:10px;color:#111827;font-size:14px;font-weight:700}.paper-report-brand img{width:68px;height:auto}.paper-report-header h1{margin:10px 0 8px;text-align:center;font-size:28px;font-weight:800;letter-spacing:0}.paper-report-code{display:flex;justify-content:space-between;gap:16px;color:#111827;font-size:13px;font-weight:700}.paper-info-table{width:100%;margin-top:14px;border-collapse:collapse;table-layout:fixed;font-family:SimSun,Songti SC,serif}.paper-info-table th,.paper-info-table td{padding:8px 10px;border:1px solid #222;font-size:12px}.paper-info-table th{width:12%;background:#f7f3e8;text-align:center}.paper-info-table td{width:38%;background:#fff}.paper-report-section{margin-top:14px}.paper-report-section h2{margin:0 0 8px;color:#111827;font-size:15px;font-weight:800}.paper-result-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.paper-result-table th,.paper-result-table td{padding:7px 8px;border:1px solid #222;text-align:center;vertical-align:middle}.paper-result-table th{background:#f7f3e8;font-weight:800}.paper-result-table tbody tr:nth-child(2n){background:#fffdfa}.paper-unqualified-row{background:#fff4f4!important}.paper-indicator-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border:1px solid #94a3b8;border-radius:999px;font-size:11px;font-weight:700}.paper-indicator-badge.key{border-color:#991b1b;background:#fef2f2;color:#991b1b}.paper-indicator-badge.normal{border-color:#64748b;background:#f8fafc;color:#475569}.paper-judge{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;font-weight:700}.paper-judge.pass{border:1px solid #047857;background:#ecfdf5;color:#047857}.paper-judge.fail{border:1px solid #b91c1c;background:#fef2f2;color:#b91c1c}.paper-conclusion-box{margin-top:14px;padding:12px 14px;border:1px solid #222;background:#fff}.paper-conclusion-box h2{margin:0 0 8px;font-size:15px;font-weight:800}.paper-conclusion-box p{margin:0 0 6px;font-size:13px;line-height:1.7}.paper-result-seal{display:inline-flex;align-items:center;padding:0 10px;min-height:26px;border:1px solid #64748b;border-radius:0;font-weight:800;letter-spacing:0}.paper-result-seal.ok{border-color:#047857;background:#ecfdf5;color:#047857}.paper-result-seal.warning{border-color:#c2410c;background:#fff7ed;color:#c2410c}.paper-result-seal.alarm{border-color:#b91c1c;background:#fef2f2;color:#b91c1c}.paper-report-signatures{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.paper-report-signatures div{min-height:56px;padding:10px 12px;border:1px solid #222;background:#fff}.paper-report-signatures span{display:block;margin-bottom:6px;font-size:12px;color:#475569}.paper-report-signatures b{font-size:14px;color:#111827}.sampling-register-preview{padding:24px 42px;overflow:auto}.preview-brand{height:34px;display:flex;align-items:center}.preview-brand img{width:104px;height:auto;display:block}.sampling-register-preview h2{margin:-28px 0 16px;text-align:center;color:#111827;font-size:24px}.preview-sub{margin-bottom:8px;color:#111827;font-size:14px;font-weight:700}.sampling-register-preview table{width:100%;border-collapse:collapse;table-layout:fixed}.sampling-register-preview th,.sampling-register-preview td{height:54px;border:1px solid #555;text-align:center;font-size:13px}.preview-sign{margin-top:10px;color:#111827;font-size:14px;font-weight:700}.sample-label-preview-wrap{padding:18px 22px 24px}.label-status-toolbar{display:flex;align-items:center;justify-content:flex-end;height:44px;color:#526171;font-size:13px}.label-status-toolbar button{height:32px;display:inline-flex;align-items:center;gap:5px;padding:0 14px;border:1px solid #dcecf5;border-radius:3px;background:#fff;color:#2384b6}.print-sample-label{width:774px;min-height:270px;margin:14px auto 0;padding:22px 20px 26px;border:2px solid #111;background:#fff;color:#111;font-family:SimSun,Songti SC,serif}.print-sample-label h2{margin:0 0 18px;text-align:center;font-size:21px;letter-spacing:1px}.label-row.two{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:18px}.label-row div{display:flex;align-items:flex-end;gap:6px;border-bottom:2px solid #111;line-height:24px;font-size:14px}.label-row span{white-space:nowrap}.label-row b{font-weight:400}.label-code-area{position:relative;min-height:96px;display:flex;align-items:center;justify-content:center;margin:24px 0 18px}.barcode-block{display:flex;flex-direction:column;align-items:center;gap:7px}.barcode-image{width:420px;height:62px;display:block;-o-object-fit:contain;object-fit:contain;background:#fff}.barcode-block strong{color:#111;font-family:Arial,sans-serif;font-size:13px;letter-spacing:1px}.qr-code-image{position:absolute;right:0;top:50%;transform:translateY(-50%);width:96px;height:96px;display:block;-o-object-fit:contain;object-fit:contain;background:#fff}.print-sample-label p{margin:0;text-align:center;font-size:14px}@media print{body *{visibility:hidden!important}.print-sample-label,.print-sample-label *,.paper-report-page,.paper-report-page *{visibility:visible!important}.print-sample-label{position:fixed;left:50%;top:24px;transform:translate(-50%);width:774px;min-height:auto;margin:0;box-shadow:none;page-break-inside:avoid}.process-dialog-mask,.label-preview-dialog,.sample-label-preview-wrap{position:static!important;inset:auto!important;display:block!important;padding:0!important;background:transparent!important;box-shadow:none!important}.process-dialog-head,.label-status-toolbar{display:none!important}.paper-report-dialog,.paper-report-body{width:auto!important;max-height:none!important;overflow:visible!important;padding:0!important;background:transparent!important;box-shadow:none!important}.paper-report-page{max-width:none;margin:0;box-shadow:none}}.send-form{display:flex;flex-direction:column;gap:14px;padding:18px}.report-form-dialog{width:min(1180px,calc(100vw - 60px));max-height:min(820px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.inspection-scan-dialog{width:min(660px,calc(100vw - 40px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a47}.inspection-scan-body{display:flex;flex-direction:column;gap:14px;padding:18px;background:#f8fbfd}.inspection-scan-target{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px}.inspection-scan-target div{min-width:0;padding:10px 12px;border:1px solid #d9eaf4;border-radius:5px;background:#fff}.inspection-scan-target span,.inspection-scan-target b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspection-scan-target span{color:#718096;font-size:11px}.inspection-scan-target b{margin-top:4px;color:#172033;font-size:13px}.inspection-scan-workspace{display:flex;flex-direction:column;align-items:center;gap:12px}.inspection-scan-frame{position:relative;width:220px;height:220px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#101b27}.inspection-scan-frame img{width:154px;height:154px;-o-object-fit:contain;object-fit:contain;background:#fff}.inspection-scan-line{position:absolute;z-index:2;left:22px;right:22px;top:30px;height:2px;background:#2dd4bf;box-shadow:0 0 10px #2dd4bfe6;animation:inspectionScan 2.2s ease-in-out infinite}@keyframes inspectionScan{0%,to{transform:translateY(0)}50%{transform:translateY(158px)}}.scan-corner{position:absolute;z-index:3;width:28px;height:28px;border-color:#2dd4bf;border-style:solid}.scan-corner.top-left{left:14px;top:14px;border-width:3px 0 0 3px}.scan-corner.top-right{right:14px;top:14px;border-width:3px 3px 0 0}.scan-corner.bottom-left{left:14px;bottom:14px;border-width:0 0 3px 3px}.scan-corner.bottom-right{right:14px;bottom:14px;border-width:0 3px 3px 0}.scan-read-button,.report-auto-entry-toolbar button{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;border:0;border-radius:4px;background:#2384b6;color:#fff;font-size:12px}.inspection-scan-input{display:grid;grid-template-columns:86px 1fr;align-items:center;gap:10px;color:#526171;font-size:12px}.inspection-scan-input input{height:34px;padding:0 10px;border:1px solid #dce3ea;border-radius:4px;color:#172033}.inspection-scan-result{min-height:34px;display:flex;align-items:center;gap:7px;padding:0 10px;border-radius:4px;font-size:12px}.inspection-scan-result.pending{background:#f1f5f9;color:#64748b}.inspection-scan-result.matched{background:#ecfdf5;color:#047857}.inspection-scan-result.mismatched{background:#fef2f2;color:#b91c1c}.report-auto-entry-toolbar{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;padding:8px 12px;border:1px solid #b9deef;border-radius:5px;background:#eef8fe}.report-auto-entry-toolbar div{display:flex;flex-direction:column;gap:3px}.report-auto-entry-toolbar b{color:#17476d;font-size:13px}.report-auto-entry-toolbar span{color:#718096;font-size:11px}.instrument-data-mask{z-index:40}.instrument-data-dialog{width:min(880px,calc(100vw - 50px));max-height:min(760px,calc(100vh - 50px));display:flex;flex-direction:column;overflow:hidden;border-radius:6px;background:#fff;box-shadow:0 18px 46px #0f172a52}.instrument-data-body{min-height:0;display:flex;flex-direction:column;gap:12px;padding:14px;overflow:auto;background:#f8fbfd}.instrument-data-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.instrument-data-summary div{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid #d9eaf4;border-radius:5px;background:#fff;color:#526171;font-size:12px}.instrument-data-summary b{color:#1677b8;font-size:18px}.instrument-selection-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.instrument-selection-item{min-width:0;min-height:92px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid #d9eaf4;border-radius:6px;background:#fff;cursor:pointer}.instrument-selection-item>input{position:absolute;opacity:0;pointer-events:none}.instrument-selection-check{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #bfd5e1;border-radius:4px;color:transparent}.instrument-selection-item.selected{border-color:#3ba0cf;background:#f0f9ff}.instrument-selection-item.selected .instrument-selection-check{border-color:#2384b6;background:#2384b6;color:#fff}.instrument-selection-item.disabled{opacity:.55;cursor:not-allowed}.instrument-selection-main{min-width:0;display:flex;flex-direction:column;gap:4px}.instrument-selection-main b,.instrument-selection-main span,.instrument-selection-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instrument-selection-main b{color:#172033;font-size:13px}.instrument-selection-main span{color:#718096;font-size:11px}.instrument-selection-main small{color:#2384b6;font-size:11px}.result-detect-cell{display:flex;flex-direction:column;gap:3px}.result-detect-cell small{display:block;overflow:hidden;color:#2384b6;font-size:10px;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 760px){.inspection-scan-target,.instrument-data-summary,.instrument-selection-list{grid-template-columns:1fr}.report-auto-entry-toolbar{align-items:stretch;flex-direction:column}.instrument-data-dialog .dialog-actions{height:auto;min-height:58px;flex-wrap:wrap;padding:8px 12px}.instrument-data-dialog .dialog-actions>span{width:100%}}.report-form-body{flex:1;min-height:0;padding:14px;overflow:auto;background:#f8fbfd}.report-section{margin-bottom:12px;border:1px solid #d9eaf4;border-radius:4px;background:#fff;overflow:hidden}.report-section h3{height:36px;display:flex;align-items:center;margin:0;padding:0 12px;border-bottom:1px solid #edf1f5;background:linear-gradient(90deg,#edf8ff,#fff);color:#17476d;font-size:13px}.report-section h3:before{content:"";width:3px;height:14px;margin-right:8px;border-radius:999px;background:#2d9cdb}.report-base-grid,.health-extra-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px}.report-base-grid label,.health-extra-grid label{display:flex;flex-direction:column;gap:5px;color:#526171;font-size:12px}.final-indicator-grid{position:relative;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 12px 4px;padding:14px;border:2px solid #e2a12d;border-radius:7px;background:linear-gradient(180deg,#fffaf0,#fff);box-shadow:0 6px 14px #c27a081f}.final-indicator-grid:before{content:"最终判定指标";position:absolute;left:12px;top:-10px;padding:0 7px;background:#fffaf0;color:#a56508;font-size:12px;font-weight:800}.final-indicator-grid label{color:#7a4b05;font-weight:800}.final-indicator-grid select{height:38px;border:2px solid #e2a12d;background:#fff;color:#8a5205;font-size:14px;font-weight:800}.report-submit-hint{flex:1;color:#a56508;font-size:11px;text-align:left}.dialog-actions button:disabled{border-color:#cbd5e1;background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.report-base-grid label.full,.health-extra-grid label.full{grid-column:1 / -1}.report-base-grid input,.report-base-grid select,.report-base-grid textarea,.health-extra-grid input,.health-extra-grid select,.health-extra-grid textarea{min-height:30px;padding:0 8px;border:1px solid #dce3ea;border-radius:3px;background:#fff;color:#172033;font-size:12px}.report-base-grid input[readonly],.report-base-grid textarea[readonly],.health-extra-grid input[readonly],.health-extra-grid textarea[readonly]{border-color:#cbd5e1;background:#eef2f7;color:#64748b;cursor:not-allowed}.report-base-grid input[readonly]::-moz-selection,.report-base-grid textarea[readonly]::-moz-selection,.health-extra-grid input[readonly]::-moz-selection,.health-extra-grid textarea[readonly]::-moz-selection{background:#cbd5e1}.report-base-grid input[readonly]::selection,.report-base-grid textarea[readonly]::selection,.health-extra-grid input[readonly]::selection,.health-extra-grid textarea[readonly]::selection{background:#cbd5e1}.report-base-grid textarea,.health-extra-grid textarea{height:70px;padding-top:8px;resize:none}.inspection-result-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.inspection-result-table thead tr{height:38px;background:#f1f3f5}.inspection-result-table tbody tr{height:44px;border-bottom:1px solid #edf1f5}.inspection-result-table tbody tr:nth-child(3n){background:#d9f5fb}.inspection-result-table th,.inspection-result-table td{padding:6px 8px;text-align:center}.inspection-result-table input,.inspection-result-table select{width:100%;height:28px;padding:0 8px;border:1px solid #dce3ea;border-radius:3px;background:#fff;color:#526171;font-size:12px}.inspection-result-table input[required]:-moz-placeholder{border-color:#e2a12d;background:#fffaf0}.inspection-result-table input[required]:placeholder-shown{border-color:#e2a12d;background:#fffaf0}.inspection-result-table input[required]:not(:-moz-placeholder){border-color:#8ac6a8;background:#f5fcf8}.inspection-result-table input[required]:not(:placeholder-shown){border-color:#8ac6a8;background:#f5fcf8}.inspection-result-table input[readonly]{border-color:#cbd5e1;background:#eef2f7;color:#64748b;cursor:not-allowed}.coming-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;color:#526171}.coming-panel h2{margin:0 0 8px;color:#142033;font-size:18px}.system-user-page{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}.user-flow-card{padding:14px 16px;border:1px solid #d9eaf4;border-radius:4px;background:#fff;color:#526171;font-size:12px;line-height:1.8}.user-flow-card h3{margin:0 0 6px;color:#17476d;font-size:14px}.user-flow-card p{margin:0}@media (max-width: 1180px){.dashboard-grid{grid-template-columns:230px minmax(460px,1fr) 250px}.dashboard-page{min-width:1040px}}
