.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(145deg,#0e4fb5 0%,#1677ff 40%,#4ab7ff 100%);position:relative;overflow:hidden}.login-bg{position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.08) 0%,transparent 50%)}.login-card{background:#fff;border-radius:20px;padding:40px 28px 32px;width:100%;max-width:380px;box-shadow:0 20px 60px #0003;position:relative;z-index:1}.login-logo{text-align:center;margin-bottom:32px}.logo-icon{display:inline-block;border-radius:16px;margin-bottom:12px;box-shadow:0 8px 24px #1677ff4d}.login-title{font-size:22px;font-weight:700;color:#1a1a1a;margin-bottom:4px}.login-subtitle{font-size:13px;color:#999}.login-form{display:flex;flex-direction:column;gap:16px}.form-item label{display:block;font-size:13px;color:#555;margin-bottom:6px;font-weight:500}.input-wrap{position:relative}.input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none}.login-error{color:#ff4d4f;font-size:13px;text-align:center;background:#fff1f0;padding:8px 12px;border-radius:6px}.login-page .login-btn{width:100%;height:64px;font-size:18px;font-weight:700;border-radius:12px;margin-top:8px;letter-spacing:3px;background:linear-gradient(135deg,#1677ff 0%,#0958d9 100%);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 16px #1677ff59;transition:transform .15s,box-shadow .2s,opacity .2s;padding:0;display:flex;align-items:center;justify-content:center;flex:none}.login-page .login-btn:active{transform:scale(.97);box-shadow:0 2px 8px #1677ff40}.login-page .login-btn.loading{opacity:.7;cursor:not-allowed;transform:none}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}.login-hint{text-align:center;font-size:12px;color:#bbb}@media (min-width: 768px){.login-card{max-width:420px;padding:48px 36px 40px}.login-page .login-btn{height:68px;font-size:19px}}.idle-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;animation:idleFadeIn .2s ease;padding:24px}@keyframes idleFadeIn{0%{opacity:0}to{opacity:1}}.idle-modal{background:#fff;border-radius:16px;padding:32px 24px 24px;width:100%;max-width:340px;text-align:center;animation:idleScaleIn .25s ease;box-shadow:0 8px 30px #00000026}@keyframes idleScaleIn{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.idle-modal-icon{margin-bottom:16px;animation:idlePulse 1.5s ease-in-out infinite}@keyframes idlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.idle-modal-title{font-size:18px;font-weight:700;color:#1a1a1a;margin:0 0 8px}.idle-modal-desc{font-size:14px;color:#666;line-height:1.6;margin:0 0 16px}.idle-modal-desc strong{color:#faad14;font-size:20px}.idle-progress-bar{width:100%;height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden;margin-bottom:20px}.idle-progress-fill{height:100%;background:linear-gradient(90deg,#faad14,#ff4d4f);border-radius:3px;transition:width 1s linear}.idle-modal-actions{display:flex;gap:10px}.idle-btn{flex:1;height:44px;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.idle-btn-primary{background:#1677ff;color:#fff}.idle-btn-primary:active{background:#0958d9}.idle-btn-outline{background:#fff;color:#666;border:1.5px solid #d9d9d9}.idle-btn-outline:active{background:#f5f5f5}.main-layout{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;max-width:var(--app-max-width);margin:0 auto;background:var(--bg-page);position:relative;box-shadow:0 0 30px #0000001f}.main-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.tabbar{display:flex;height:calc(var(--tabbar-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-card);border-top:1px solid var(--border);flex-shrink:0;color:var(--text-tertiary)}.tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:transparent;cursor:pointer;padding:6px 0;color:inherit;transition:color var(--dur-fast),background var(--dur-fast);-webkit-tap-highlight-color:transparent}.tabbar-item span{font-size:var(--fs-xs);font-weight:var(--fw-regular)}.tabbar-item.active{color:var(--brand-500)}.tabbar-item.active span{font-weight:var(--fw-semibold)}.tabbar-item:active{background:rgba(0,0,0,.04)}.ai-float-btn{position:fixed;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 16px);right:16px;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));border:none;cursor:pointer;box-shadow:var(--sh-fab);display:flex;align-items:center;justify-content:center;z-index:var(--z-fab);transition:transform var(--dur-fast) var(--ease-out)}.ai-float-btn:active{transform:scale(.92)}.qr-scan-overlay{background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:stretch;justify-content:center}.qr-scan-container{width:100%;max-width:560px;background:#1a1a1a;color:#fff;display:flex;flex-direction:column;position:relative;animation:qrScanIn .2s ease-out}@keyframes qrScanIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.qr-scan-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:rgba(0,0,0,.4);border-bottom:1px solid rgba(255,255,255,.1)}.qr-scan-header h3{margin:0;font-size:17px;font-weight:600}.qr-scan-close{background:transparent;border:0;color:#fff;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s}.qr-scan-close:hover{opacity:1}.qr-scan-body{flex:1;position:relative;background:#000;min-height:320px;display:flex;align-items:center;justify-content:center;overflow:hidden}.qr-scan-reader{width:100%!important;height:100%!important;position:relative}.qr-scan-reader video{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:0!important}.qr-scan-reader>div{border:0!important}.qr-scan-frame{position:absolute;top:50%;left:50%;width:70vw;max-width:280px;aspect-ratio:1 / 1;transform:translate(-50%,-50%);pointer-events:none;z-index:2}.frame-corner{position:absolute;width:24px;height:24px;border-color:#00e676;border-style:solid;border-width:0}.frame-corner.tl{top:0;left:0;border-top-width:3px;border-left-width:3px;border-top-left-radius:6px}.frame-corner.tr{top:0;right:0;border-top-width:3px;border-right-width:3px;border-top-right-radius:6px}.frame-corner.bl{bottom:0;left:0;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:6px}.frame-corner.br{bottom:0;right:0;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:6px}.scan-line{position:absolute;left:8%;right:8%;top:0;height:2px;background:linear-gradient(90deg,transparent,#00e676,transparent);box-shadow:0 0 12px #00e676;animation:scanLineMove 2s linear infinite}@keyframes scanLineMove{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.qr-scan-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#ffffffb3;z-index:3}.qr-scan-loading p{margin:0;font-size:14px}.qr-scan-error{text-align:center;padding:40px 24px;display:flex;flex-direction:column;align-items:center;gap:18px;z-index:3}.qr-scan-error .error-icon{color:#ff5252;display:flex;align-items:center;justify-content:center}.qr-scan-error .error-text{color:#ffffffd9;font-size:15px;line-height:1.6;margin:0;max-width:360px}.qr-scan-footer{padding:14px 20px 20px;background:rgba(0,0,0,.4);border-top:1px solid rgba(255,255,255,.1);text-align:center}.qr-scan-tip{margin:0 0 12px;font-size:13px;color:#fff9}.qr-scan-actions{display:flex;gap:10px;justify-content:center}.qr-scan-container .btn-outline{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff}.qr-scan-container .btn-outline:hover{background:rgba(255,255,255,.1)}.qr-scan-container .btn-primary{background:#2563eb;border-color:#2563eb}.qr-scan-container .btn-primary:hover{background:#1d4ed8}.ui-toast-stack{position:fixed;top:calc(var(--safe-top) + 12px);left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:calc(100% - 32px);max-width:420px;pointer-events:none}.ui-toast{display:flex;align-items:flex-start;gap:var(--sp-2);max-width:100%;padding:10px 14px;border-radius:var(--r-md);background:rgba(26,26,26,.92);color:var(--text-inverse);font-size:var(--fs-md);line-height:1.45;box-shadow:var(--sh-3);pointer-events:auto;cursor:pointer;animation:ui-toast-in var(--dur-base) var(--ease-out)}.ui-toast__text{min-width:0;word-break:break-word}.ui-toast--success{background:rgba(38,116,12,.95)}.ui-toast--error{background:rgba(180,37,27,.95)}.ui-toast--warning{background:rgba(150,96,6,.95)}.ui-toast--info{background:rgba(22,119,255,.95)}@keyframes ui-toast-in{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.home{min-height:100%;background:var(--bg-page)}.home .ui-hero{padding-bottom:var(--sp-8)}.home-hero__me{min-width:0;flex:1}.home-hero__actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.home-hero__btn{display:flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);padding:0;border:none;border-radius:var(--r-md);background:rgba(255,255,255,.16);color:var(--text-inverse);cursor:pointer}.home-hero__btn:active{background:rgba(255,255,255,.28)}.home-hero__btn.is-spinning svg{animation:spin .8s linear infinite}.home-hero__avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--brand-600);font-size:var(--fs-md);font-weight:var(--fw-bold)}.home-scan{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:52px;margin-top:var(--sp-4);padding:0 var(--sp-4);border:none;border-radius:var(--r-md);background:var(--bg-card);color:var(--brand-600);font-size:var(--fs-md);font-weight:var(--fw-semibold);box-shadow:var(--sh-2);cursor:pointer;position:relative;z-index:1}.home-scan:active{transform:scale(.99)}.home-scan>:last-child{margin-left:auto;color:var(--text-disabled)}.home-body{padding:0 var(--page-pad) var(--content-gap)}.home-tiles{margin-top:-20px;position:relative;z-index:2}.home-banner{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm);background:var(--neutral-100);color:var(--text-secondary)}.home-banner span{flex:1;min-width:0}.home-banner button{flex-shrink:0;min-height:32px;padding:0 var(--sp-3);border:1px solid currentColor;border-radius:var(--r-sm);background:transparent;color:inherit;font-size:var(--fs-sm);cursor:pointer}.home-banner--error{background:var(--danger-100);color:var(--danger-text)}.home-section{margin-top:var(--sp-5)}.home-section__head{margin-bottom:var(--sp-3)}.home-section>.ui-section__title,.home-section>.home-section__head .ui-section__title{margin-bottom:var(--sp-3)}.home-tasklist{padding:0 var(--sp-4)}.home-tasklist .ui-li{align-items:flex-start;padding:var(--sp-3) 0}.home-tasklist .ui-li .ui-tag{margin-top:2px}.home-tasklist .ui-bar-row{margin-top:var(--sp-2)}.home-notice-counts{display:flex;gap:var(--sp-2);padding-bottom:var(--sp-3);margin-bottom:var(--sp-1);border-bottom:1px solid var(--border-hairline)}.home-notice-counts button{flex:1;display:flex;align-items:baseline;gap:var(--sp-2);min-height:var(--touch-min);padding:0 var(--sp-3);border:none;border-radius:var(--r-sm);background:var(--bg-muted);cursor:pointer;font:inherit;text-align:left}.home-notice-counts__num{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.home-notice-counts__label{font-size:var(--fs-sm);color:var(--text-secondary)}.home-notice-dot{width:7px;height:7px;border-radius:50%;background:var(--brand-500);flex-shrink:0}.home-notice-dot.is-announce{background:var(--warning-500)}.home-ai__body{max-height:200px;overflow-y:auto;font-size:var(--fs-sm);line-height:1.7;color:var(--text-secondary)}.home-ai__body p{margin:0 0 4px}.home-ai__heading{font-weight:var(--fw-semibold);color:var(--text-primary);margin-top:var(--sp-2)!important}.home-ai__bullet{padding-left:var(--sp-3)}.home-ai__body strong{color:var(--brand-600)}.home-ai__meta{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-hairline);font-size:var(--fs-xs);color:var(--text-tertiary)}@media (min-width: 768px){.home-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.home-scan{max-width:420px}}.prod-home{min-height:100%;background:var(--bg-page)}.prod-home__body{padding:var(--sp-4) var(--page-pad) var(--content-gap);display:flex;flex-direction:column;gap:var(--sp-4)}.prod-scope{display:flex;align-items:flex-start;gap:var(--sp-2);background:var(--brand-50);border:1px solid var(--brand-200);box-shadow:none}.prod-scope__icon{flex-shrink:0;margin-top:2px;color:var(--brand-600)}.prod-scope__main{min-width:0;flex:1}.prod-scope__dept{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--brand-700)}.prod-scope__ws{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2)}.prod-scope__warn{display:block;margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--warning-text)}.prod-entries{padding:var(--sp-4) var(--sp-3)}.prod-section{display:block}.prod-list{padding:0 var(--sp-4)}.prod-list .ui-li{align-items:flex-start;padding:var(--sp-3) 0}.prod-list .ui-li .tag,.prod-list .ui-li .ui-tag{margin-top:2px}.prod-list .ui-bar-row{margin-top:var(--sp-2)}.prod-list__qty{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.prod-banner{display:flex;align-items:center;gap:var(--sp-2);background:var(--danger-100);color:var(--danger-text);font-size:var(--fs-sm)}.prod-banner span{flex:1;min-width:0}.prod-banner button{flex-shrink:0;min-height:32px;padding:0 var(--sp-3);border:1px solid currentColor;border-radius:var(--r-sm);background:transparent;color:inherit;font-size:var(--fs-sm);cursor:pointer}@media (min-width: 768px){.prod-home__body{gap:var(--sp-5)}}.prod-ws-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.prod-ws-chip{padding:3px 10px;border-radius:12px;font-size:12px;border:1px solid #e4e7ed;background:#f7f8fa;color:#606266}.prod-ws-chip.active{border-color:#1677ff;background:#ecf5ff;color:#1677ff;font-weight:600}.ui-tile--active{outline:2px solid #1677ff;outline-offset:-2px}.mytask-li{display:flex;justify-content:space-between;gap:8px;cursor:pointer}.mytask-li+.mytask-li{border-top:1px solid #f5f5f5}.mytask-li__wo{margin-left:8px;font-size:11px;color:#999;font-family:monospace;font-weight:400}.mytask-li__side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}.mytask-li__report{margin:0}.mytask-li__device{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:2px 8px;border-radius:10px;font-size:11px;line-height:18px;background:#f2f3f5;color:#606266;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mytask-li__device em{font-style:normal;color:#1677ff;font-weight:600;margin-left:2px}.mytask-li__device.is-running{background:#ecf5ff;color:#1677ff}.mytask-cap-tip{padding:10px;text-align:center;font-size:12px;color:#bbb}.prod-viewswitch{display:inline-flex;gap:2px;margin-top:10px;padding:2px;border-radius:8px;background:rgba(255,255,255,.18)}.prod-viewswitch__btn{padding:4px 14px;border:none;border-radius:6px;background:transparent;color:#ffffffd9;font-size:13px;line-height:20px;cursor:pointer}.prod-viewswitch__btn.active{background:#fff;color:#1677ff;font-weight:600}.schedule-page{max-width:var(--app-max-width);margin:0 auto;background:var(--bg-page);min-height:100vh;padding-bottom:16px}.schedule-page.page-enter{animation:slideUp .3s ease-out}.schedule-page .my-scope-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 16px;background:var(--brand-100);border-bottom:1px solid var(--brand-200);font-size:12px}.schedule-page .my-scope-dept{font-weight:600;color:var(--brand-600)}.schedule-page .my-scope-ws{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.schedule-page .date-scroll{background:var(--bg-card);padding:14px 0 10px;margin:0 0 1px}.schedule-page .date-scroll-inner{display:flex;gap:6px;padding:0 12px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.schedule-page .date-scroll-inner::-webkit-scrollbar{display:none}.schedule-page .date-item{min-width:54px;padding:10px 6px 8px;text-align:center;border-radius:14px;cursor:pointer;transition:all .25s;background:var(--bg-page);border:1.5px solid transparent;user-select:none}.schedule-page .date-item:active{transform:scale(.95)}.schedule-page .date-item.active{background:var(--brand-50);border-color:var(--brand-500);box-shadow:0 2px 8px #1677ff26}.schedule-page .date-item.today{background:var(--st-pause-bg);border-color:var(--st-pause)}.schedule-page .date-item.active.today{background:var(--brand-500);border-color:var(--brand-500);box-shadow:0 2px 8px #1677ff40}.schedule-page .date-week{font-size:11px;color:var(--text-hint);margin-bottom:2px;font-weight:500}.schedule-page .date-item.active .date-week{color:var(--brand-500);font-weight:600}.schedule-page .date-item.active.today .date-week{color:#ffffffe6}.schedule-page .date-day{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1.2}.schedule-page .date-item.active .date-day{color:var(--brand-500)}.schedule-page .date-item.active.today .date-day{color:var(--text-inverse)}.schedule-page .date-month{font-size:10px;color:var(--text-hint);margin-top:2px}.schedule-page .date-item.active .date-month{color:var(--brand-500)}.schedule-page .date-item.active.today .date-month{color:#ffffffe6}.schedule-page .tab-bar{display:flex;background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 12px}.schedule-page .tab-item{flex:1;background:none;border:none;padding:12px 0 10px;cursor:pointer;font-size:14px;color:var(--text-secondary);position:relative;display:flex;align-items:center;justify-content:center;gap:6px;transition:color .2s}.schedule-page .tab-item.active{color:var(--brand-500);font-weight:600}.schedule-page .tab-item.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:24px;height:3px;background:var(--brand-500);border-radius:2px}.schedule-page .tab-count{background:var(--bg-muted);color:var(--text-secondary);font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.schedule-page .tab-item.active .tab-count{background:var(--brand-50);color:var(--brand-500)}.schedule-page .schedule-list{padding:12px}.schedule-page .workshop-group{margin-bottom:16px}.schedule-page .workstation-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:10px;display:flex;align-items:center;gap:6px;padding:0 4px}.schedule-page .workstation-title:before{content:"";display:inline-block;width:3px;height:12px;background:linear-gradient(180deg,var(--brand-500),var(--brand-400));border-radius:2px}.schedule-page .workshop-orders{display:flex;flex-direction:column;gap:10px}.schedule-page .task-card{background:var(--bg-card);border-radius:14px;padding:14px;box-shadow:0 1px 4px #0000000a;cursor:pointer;transition:transform .15s,box-shadow .2s;border:1px solid var(--border);position:relative}.schedule-page .task-card:hover{box-shadow:0 4px 16px #00000014;border-color:var(--border)}.schedule-page .task-card:active{transform:scale(.98);box-shadow:0 1px 4px #0000000f}.schedule-page .task-card.finished{border-left:3px solid var(--st-done)}.schedule-page .task-card:not(.finished){border-left:3px solid var(--brand-500)}.schedule-page .task-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.schedule-page .task-header-left{display:flex;align-items:center;gap:8px;min-width:0}.schedule-page .task-header-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.schedule-page .task-badge{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;letter-spacing:-.5px}.schedule-page .task-code{font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-page .tag{display:inline-flex;align-items:center;padding:3px 12px;border-radius:20px;font-size:12px;font-weight:600;flex-shrink:0;letter-spacing:.3px}.schedule-page .tag-gray{background:var(--bg-muted);color:var(--text-secondary)}.schedule-page .tag-orange{background:var(--st-pause-bg);color:var(--warning-text)}.schedule-page .tag-blue{background:var(--brand-50);color:var(--brand-500)}.schedule-page .tag-green{background:var(--st-done-bg);color:var(--success-text)}.schedule-page .tag-red{background:var(--st-abnormal-bg);color:var(--danger-text)}.schedule-page .task-card-body{margin-bottom:10px;padding:10px 12px;background:var(--bg-page);border-radius:10px;border:1px solid var(--border)}.schedule-page .task-info-row{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px}.schedule-page .task-info-row:last-child{margin-bottom:0}.schedule-page .task-info-label{color:var(--text-hint);flex-shrink:0;font-size:13px}.schedule-page .task-info-value{color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-page .task-progress{display:flex;align-items:center;gap:10px;margin-bottom:8px}.schedule-page .progress-bar{flex:1;height:6px;background:var(--bg-muted);border-radius:3px;overflow:hidden}.schedule-page .progress-fill{height:100%;border-radius:3px;transition:width .4s ease}.schedule-page .progress-pct{font-size:13px;font-weight:700;min-width:38px;text-align:right}.schedule-page .task-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid var(--bg-muted)}.schedule-page .task-stats{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);flex-wrap:wrap}.schedule-page .task-stats strong{font-size:13px;font-weight:600;color:var(--text-primary)}.schedule-page .stat-divider{color:var(--text-disabled);font-size:10px}.schedule-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--text-hint);font-size:14px}.schedule-page .empty-state p{margin-top:12px}.schedule-page .notice-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--brand-500);border-radius:50%;animation:spin .8s linear infinite}.schedule-page .date-day--all{font-size:var(--fs-md)}.schedule-page .ws-title-icon{margin-right:var(--sp-1);color:var(--text-hint)}.schedule-page .task-badge--done{background:var(--st-done-bg);color:var(--success-text);border:1.5px solid var(--st-done-border)}.schedule-page .pct-idle{color:var(--st-idle)}.schedule-page .pct-approval{color:var(--st-approval)}.schedule-page .pct-running{color:var(--st-run)}.schedule-page .pct-paused{color:var(--warning-text)}.schedule-page .pct-done{color:var(--success-text)}.schedule-page .pct-void{color:var(--st-void)}.schedule-page .ts-done{color:var(--brand-500)}.schedule-page .ts-qual{color:var(--text-hint)}.schedule-page .ts-defect{color:var(--st-abnormal)}.schedule-page .page-bottom-spacer{height:var(--content-gap)}.production-page{display:flex;flex-direction:column;height:100%;background:#f5f7fa}.production-page .page-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fff;border-bottom:1px solid #f0f0f0;flex-shrink:0}.production-page .page-header h1{font-size:17px;font-weight:600;color:#1a1a1a}.production-page .scan-btn{width:40px;height:40px;border-radius:10px;background:#1677ff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.production-page .scan-btn:active{opacity:.8}.production-page .search-bar{padding:10px var(--sp-3);background:var(--bg-card);border-bottom:1px solid var(--border-hairline);flex-shrink:0}.production-page .search-input-wrap{position:relative;background:var(--bg-muted);border-radius:var(--r-sm);overflow:hidden}.production-page .search-icon{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);color:var(--text-disabled)}.production-page .search-input{width:100%;height:var(--touch-min);border:none;background:transparent;--input-pad-l: 38px;--input-pad-r: 36px;outline:none;color:var(--text-primary)}.production-page .search-input::placeholder{color:var(--text-disabled)}.production-page .search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-disabled);font-size:18px;cursor:pointer;line-height:1}.production-page .tab-bar{display:flex;background:#fff;padding:0 12px;border-bottom:1px solid #f0f0f0;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.production-page .tab-bar::-webkit-scrollbar{display:none}.production-page .tab-item{display:flex;align-items:center;gap:4px;padding:12px 14px;border:none;background:transparent;font-size:14px;color:#666;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;flex-shrink:0;white-space:nowrap}.production-page .tab-item.active{color:#1677ff;font-weight:600;border-bottom-color:#1677ff}.production-page .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;background:#f0f0f0;border-radius:9px;font-size:11px;padding:0 4px;color:#999}.production-page .tab-item.active .tab-count{background:#e8f4ff;color:#1677ff}.production-page .task-list-container{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.production-page .task-item{position:relative;cursor:pointer;transition:all .15s;padding:14px 14px 12px 18px;border-radius:14px;background:#fff;box-shadow:0 2px 8px #0000000f;overflow:hidden;flex-shrink:0}.production-page .task-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px}.production-page .task-item.ti-pending:before{background:#94a3b8}.production-page .task-item.ti-ongoing:before{background:#1677ff}.production-page .task-item.ti-done:before{background:#52c41a}.production-page .task-item.ti-overdue:before{background:#ff4d4f;width:5px}.production-page .task-item.ti-overdue{box-shadow:0 2px 8px #ff4d4f1f;border:1px solid rgba(255,77,79,.25)}.production-page .task-item:active{transform:scale(.98)}.production-page .ti-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}.production-page .ti-no{font-size:12px;color:#999;font-family:SF Mono,Cascadia Code,monospace;letter-spacing:.3px;flex-shrink:0}.production-page .ti-tags{display:flex;gap:4px;flex-shrink:0}.production-page .ti-product{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;flex-wrap:wrap}.production-page .ti-product-name{font-size:15px;font-weight:700;color:#1a1a1a;line-height:1.3}.production-page .ti-product-spc{font-size:12px;color:#8c95a6;background:#f0f2f5;padding:2px 8px;border-radius:4px;font-weight:500}.production-page .ti-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:10px;padding:8px 10px;background:#f8fafc;border-radius:8px;font-size:12px}.production-page .ti-meta-item{display:flex;align-items:center;gap:4px;min-width:0}.production-page .ti-meta-label{color:#8c95a6;font-weight:500;flex-shrink:0}.production-page .ti-meta-value{color:#1e293b;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.production-page .ti-mono{font-family:SF Mono,Cascadia Code,monospace;font-size:11.5px}.production-page .ti-source{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}.production-page .ti-source-tag{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:500;background:#eff6ff;color:#2563eb}.production-page .ti-source-tag.tag-store{background:#f0fdf4;color:#16a34a}.production-page .ti-source-tag.tag-mrp{background:#fff7e6;color:#d97706}.production-page .ti-source-tag.tag-sample{background:#faf5ff;color:#9333ea}.production-page .ti-source-tag.ti-batch{background:#f1f5f9;color:#475569}.production-page .ti-source-tag.ti-client{background:#fff1f0;color:#cf1322}.production-page .ti-progress{margin-bottom:8px}.production-page .ti-qty-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;font-size:12px;color:#64748b}.production-page .ti-qty-row strong{font-size:14px;color:#1a1a1a;font-weight:800;margin:0 2px}.production-page .ti-qty-row strong.done{color:#16a34a}.production-page .ti-qty-row strong.zero{color:#cbd5e1}.production-page .ti-unit{font-size:11px;color:#94a3b8;margin:0 4px}.production-page .ti-qty-sep{margin:0 6px;color:#cbd5e1}.production-page .ti-pct{font-size:13px;font-weight:800;color:#1677ff}.production-page .ti-pct.ti-done{color:#16a34a}.production-page .ti-overdue .ti-pct{color:#ff4d4f}.production-page .progress-bar{height:6px;background:#e8ecf1;border-radius:3px;overflow:hidden}.production-page .progress-fill{height:100%;border-radius:3px;transition:width .4s}.production-page .ti-footer{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#8c95a6;padding-top:8px;border-top:1px dashed #e2e8f0;flex-wrap:wrap;gap:4px 8px}.production-page .ti-date{display:inline-flex;align-items:center;gap:3px}.production-page .ti-date.overdue{color:#ff4d4f;font-weight:600}.production-page .ti-date.overdue:before{content:"\26a0";font-size:12px}.production-page .ti-create{color:#94a3b8}.production-page .stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px;background:#fff;margin-bottom:8px}.production-page .stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 6px;border-radius:12px}.production-page .stat-card.stat-all{background:#d6eaff}.production-page .stat-card.stat-pending{background:#f0f2f5}.production-page .stat-card.stat-ongoing{background:#d6eaff}.production-page .stat-card.stat-done{background:#d4f7d4}.production-page .stat-value{font-size:22px;font-weight:700;color:#1a1a1a;line-height:1.3}.production-page .stat-card.stat-all .stat-value{color:#1677ff}.production-page .stat-card.stat-pending .stat-value{color:#64748b}.production-page .stat-card.stat-ongoing .stat-value{color:#1677ff}.production-page .stat-card.stat-done .stat-value{color:#16a34a}.production-page .stat-label{font-size:12px;color:#555;margin-top:4px;font-weight:500}.production-page .ti-gate{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--border-hairline)}.production-page .ti-gate-label{font-size:var(--fs-xs);color:var(--text-hint);margin-right:auto}.production-page .ti-gate-btn{min-height:32px;padding:0 var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-card);font-size:var(--fs-sm);color:var(--text-primary);cursor:pointer}.production-page .ti-gate-btn:active{background:var(--bg-muted)}.production-page .ti-gate-suspend,.production-page .ti-gate-finish{border-color:var(--st-pause);color:var(--st-pause)}.production-page .ti-gate-resume{border-color:var(--brand-500);color:var(--brand-500)}.production-page .ti-gate-reason{width:100%;box-sizing:border-box}.production-page .wo-task-chain{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px dashed var(--border-hairline)}.production-page .wtc-item{display:inline-flex;align-items:center}.production-page .wtc-arrow{color:var(--text-disabled);margin:0 3px;font-size:var(--fs-xs);line-height:1}.production-page .wtc-chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:1px var(--sp-2);border-radius:var(--r-full);font-size:var(--fs-xs);line-height:18px;border:1px solid var(--st-idle-border);background:var(--st-idle-bg);color:var(--st-idle);max-width:148px;min-width:0}.production-page .wtc-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.production-page .wtc-chip em{font-style:normal;font-weight:var(--fw-medium);flex:none;opacity:.8}.production-page .wtc-dot{width:7px;height:7px;border-radius:50%;flex:none}.production-page .wtc-idle .wtc-dot{background:var(--text-disabled)}.production-page .wtc-approval{background:var(--st-approval-bg);border-color:var(--st-approval-border);color:var(--st-approval)}.production-page .wtc-approval .wtc-dot{background:var(--st-approval)}.production-page .wtc-running{background:var(--st-run-bg);border-color:var(--st-run-border);color:var(--st-run)}.production-page .wtc-running .wtc-dot{background:var(--st-run)}.production-page .wtc-paused{background:var(--st-pause-bg);border-color:var(--st-pause-border);color:var(--warning-text)}.production-page .wtc-paused .wtc-dot{background:var(--st-pause)}.production-page .wtc-done{background:var(--st-done-bg);border-color:var(--st-done-border);color:var(--success-text)}.production-page .wtc-done .wtc-dot{background:var(--st-done)}.production-page .wtc-void{background:var(--st-void-bg);color:var(--st-void);text-decoration:line-through}.production-page .wtc-void .wtc-dot{background:var(--border-strong)}.production-page .wtc-defect{font-size:var(--fs-xs);color:var(--st-abnormal);margin-left:var(--sp-1)}.circular-progress{position:relative;display:inline-flex;align-items:center;justify-content:center}.circular-progress svg{transform:rotate(-90deg)}.circular-progress .progress-text{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center}.circular-progress .progress-value{font-size:24px;font-weight:700;color:#1a1a1a;line-height:1}.circular-progress .progress-label{font-size:10px;color:#999;margin-top:2px}.metric-card{background:#fff;border-radius:12px;padding:16px;flex:1;min-width:0;box-shadow:0 1px 3px #0000000d;transition:transform .2s,box-shadow .2s}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.metric-card .metric-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#999;font-size:12px}.metric-card .metric-header .metric-icon{font-size:16px}.metric-card .metric-value{display:flex;align-items:baseline;gap:4px}.metric-card .metric-value .value{font-size:24px;font-weight:700;color:#1a1a1a;line-height:1}.metric-card .metric-value .unit{font-size:12px;color:#999}.metric-card .metric-trend{margin-top:8px;font-size:12px;display:flex;align-items:center;gap:4px}.metric-card .metric-trend.up{color:#52c41a}.metric-card .metric-trend.down{color:#ff4d4f}.task-detail-page{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;max-width:var(--app-max-width);margin:0 auto;background:var(--bg-page)}.task-detail-page .detail-hero{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-3) var(--page-pad) 0;padding:var(--sp-3) var(--sp-2) var(--sp-3) var(--sp-3)}.task-detail-page .hero-ring{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);flex-shrink:0}.task-detail-page .hero-ring .progress-value{font-size:var(--fs-lg)}.task-detail-page .hero-ring-label{font-size:var(--fs-xs);color:var(--text-hint)}.task-detail-page .detail-stats{flex:1;min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.task-detail-page .detail-stats .metric-card{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-muted);box-shadow:none;transition:none}.task-detail-page .detail-stats .metric-card:hover{transform:none;box-shadow:none}.task-detail-page .detail-stats .metric-header{margin-bottom:2px;font-size:var(--fs-xs)}.task-detail-page .detail-stats .metric-value .value{font-size:var(--fs-lg)}.task-detail-page .hero-foot{margin:var(--sp-2) var(--page-pad) 0;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--brand-50);color:var(--text-secondary);font-size:var(--fs-sm)}.task-detail-page .hero-foot strong{color:var(--brand-600);font-weight:var(--fw-semibold)}.task-detail-page .detail-tabs{display:flex;margin-top:var(--sp-3);background:var(--bg-card);border-bottom:1px solid var(--border-hairline);position:sticky;top:var(--header-height);z-index:calc(var(--z-header) - 1)}.task-detail-page .detail-tab{flex:1;padding:var(--sp-3) var(--sp-1);border:none;background:transparent;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:color var(--dur-fast) var(--ease-out)}.task-detail-page .detail-tab.active{color:var(--primary);font-weight:var(--fw-semibold);border-bottom-color:var(--primary)}.task-detail-page .detail-tab-content{flex:1}.task-detail-page .tab-pane{padding:var(--sp-3) var(--page-pad) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3)}.task-detail-page .tab-note{font-size:var(--fs-xs);color:var(--text-hint);line-height:1.5}.task-detail-page .card-title{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);padding-bottom:var(--sp-2);margin-bottom:var(--sp-1);border-bottom:1px solid var(--border-hairline)}.task-detail-page .card-hint{margin-left:auto;font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--text-hint)}.task-detail-page .qr-card{background:var(--bg-card);border-radius:14px;padding:var(--sp-3);box-shadow:0 2px 8px #0000000f}.task-detail-page .qr-card .qr-display{border:none;border-radius:0;padding:var(--sp-2) 0 0;background:transparent;width:fit-content;margin:0 auto}.task-detail-page .qr-card .qr-display-img{padding:var(--sp-1);background:var(--bg-card);border:1px solid var(--border-hairline);border-radius:var(--r-sm)}.task-detail-page .qr-card .qr-display-caption{font-family:monospace;font-size:var(--fs-sm)}.task-detail-page .qr-card .qr-display-content{display:none}.task-detail-page .info-card{background:var(--bg-card);border-radius:14px;padding:var(--sp-3);box-shadow:0 2px 8px #0000000f}.task-detail-page .info-card .card-title{margin-bottom:0}.task-detail-page .info-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border-hairline)}.task-detail-page .info-row:last-child{border-bottom:none}.task-detail-page .info-label{flex-shrink:0;font-size:var(--fs-sm);color:var(--text-hint)}.task-detail-page .info-value{min-width:0;text-align:right;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);word-break:break-all}.task-detail-page .sop-line{display:flex;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px dashed var(--border-hairline)}.task-detail-page .sop-line:last-child{border-bottom:none}.task-detail-page .sop-num{flex-shrink:0;width:20px;height:20px;border-radius:var(--r-full);background:var(--brand-100);color:var(--brand-600);font-size:var(--fs-xs);font-weight:var(--fw-semibold);display:flex;align-items:center;justify-content:center}.task-detail-page .sop-text{flex:1;font-size:var(--fs-sm);line-height:1.6;color:var(--text-secondary)}.task-detail-page .mat-card{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3)}.task-detail-page .mat-info{display:flex;flex-direction:column;gap:2px;min-width:0}.task-detail-page .mat-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.task-detail-page .mat-code{font-size:var(--fs-xs);color:var(--text-hint);font-family:monospace;word-break:break-all}.task-detail-page .mat-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.task-detail-page .mat-spec{font-size:var(--fs-xs);color:var(--text-hint)}.task-detail-page .mat-qty{font-size:var(--fs-xs);color:var(--text-secondary);white-space:nowrap}.task-detail-page .mat-qty em{font-style:normal;margin-left:var(--sp-1);padding-left:var(--sp-1);border-left:1px solid var(--border);color:var(--brand-600);font-weight:var(--fw-semibold)}.task-detail-page .record-item{padding:var(--sp-3)}.task-detail-page .rec-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-2)}.task-detail-page .rec-time{font-size:var(--fs-xs);color:var(--text-hint);font-variant-numeric:tabular-nums}.task-detail-page .rec-worker{display:flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-secondary);margin-left:auto}.task-detail-page .rec-body{display:flex;align-items:flex-end;gap:var(--sp-5)}.task-detail-page .rec-num{display:flex;flex-direction:column;align-items:flex-start;gap:1px}.task-detail-page .rn-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:1.1;font-variant-numeric:tabular-nums}.task-detail-page .rn-value.green{color:var(--st-done)}.task-detail-page .rn-value.red{color:var(--st-abnormal)}.task-detail-page .rn-value.muted{color:var(--text-hint)}.task-detail-page .rn-label{font-size:var(--fs-xs);color:var(--text-hint)}.task-detail-page .rec-defect{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--border-hairline);font-size:var(--fs-xs);color:var(--danger)}.task-detail-page .rec-remark{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--text-secondary);line-height:1.5}.task-detail-page .empty-state .es-sub{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--text-disabled)}.task-detail-page .detail-actions{position:sticky;bottom:0;margin:0 auto;width:100%;max-width:var(--app-max-width);display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--page-pad) calc(var(--sp-3) + var(--safe-bottom));background:var(--bg-card);box-shadow:var(--sh-bar);z-index:var(--z-footer)}.task-detail-page .da-secondary{display:flex;gap:var(--sp-2)}.task-detail-page .da-secondary .btn{flex:1;height:var(--touch-min);min-height:var(--touch-min);font-size:var(--fs-sm);font-weight:var(--fw-regular);border-radius:var(--r-md)}.task-detail-page .da-primary{display:flex;gap:var(--sp-2)}.task-detail-page .da-primary .btn{flex:1;min-width:0;padding:0 10px;font-size:var(--fs-sm);white-space:nowrap}.task-detail-page .da-hint{margin:0;font-size:var(--fs-xs);color:var(--text-hint);text-align:center}.task-detail-page .device-card__body{padding:4px 0 0}.task-detail-page .device-card__name{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);font-weight:600;color:var(--text-primary);margin-bottom:10px}.task-detail-page .device-card__metrics{display:flex;gap:8px}.task-detail-page .device-metric{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:8px;background:#f7f8fa}.task-detail-page .device-metric__value{font-size:var(--fs-lg);font-weight:700;color:var(--st-run);font-family:monospace}.task-detail-page .device-metric__label{font-size:var(--fs-xs);color:var(--text-hint)}.task-detail-page .device-card__tip{margin:10px 0 0;font-size:var(--fs-xs);line-height:1.6;color:var(--text-hint)}.task-detail-page .device-card__run{margin-top:6px;font-size:var(--fs-xs);color:var(--text-secondary)}.ai-fab{position:fixed;bottom:24px;right:24px;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 16px #667eea66;display:flex;align-items:center;justify-content:center;z-index:9999;transition:all .3s}.ai-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #667eea80}.ai-fab.active{background:#666}.ai-panel{position:fixed;bottom:88px;right:24px;width:380px;max-height:520px;background:#fff;border-radius:16px;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;z-index:9999;overflow:hidden}.ai-panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:15px;font-weight:600}.ai-close{background:none;border:none;color:#fff;font-size:22px;cursor:pointer;line-height:1;padding:0 4px}.ai-messages{flex:1;overflow-y:auto;padding:12px;max-height:320px;min-height:160px}.ai-msg{margin-bottom:10px;display:flex}.ai-msg-user{justify-content:flex-end}.ai-msg-user .ai-msg-content{background:#667eea;color:#fff;border-radius:12px 12px 4px;padding:8px 12px;max-width:80%;font-size:13px;line-height:1.5}.ai-msg-assistant .ai-msg-content{background:#f0f2f5;color:#333;border-radius:12px 12px 12px 4px;padding:8px 12px;max-width:80%;font-size:13px;line-height:1.5}.ai-examples{padding:4px 12px 8px;display:flex;flex-wrap:wrap;gap:6px}.ai-example-btn{background:#f0f2f5;border:1px solid #e4e7ed;border-radius:16px;padding:4px 10px;font-size:12px;color:#666;cursor:pointer;transition:all .2s}.ai-example-btn:hover{background:#ecf5ff;color:#667eea;border-color:#667eea}.ai-input-area{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #eee}.ai-input{flex:1;border:1px solid #ddd;border-radius:8px;padding:8px 12px;font-size:13px;outline:none;transition:border-color .2s}.ai-input:focus{border-color:#667eea}.ai-send{background:#667eea;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer;transition:background .2s}.ai-send:hover{background:#5a6fd6}.ai-send:disabled{background:#c0c4cc;cursor:not-allowed}.reporting-page{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:var(--app-max-width);margin:0 auto;background:var(--bg-page);overflow:hidden}.reporting-page .report-summary{display:grid;grid-template-columns:repeat(4,1fr);flex-shrink:0;background:var(--bg-card);border-bottom:1px solid var(--border-hairline);padding:var(--sp-3) var(--sp-2)}.reporting-page .rs-cell{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.reporting-page .rs-label{font-size:var(--fs-xs);color:var(--text-hint)}.reporting-page .rs-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:1.15;color:var(--text-primary);font-variant-numeric:tabular-nums}.reporting-page .rs-value.muted{color:var(--text-hint)}.reporting-page .rs-value.accent{color:var(--text-disabled)}.reporting-page .rs-value.accent.filled{color:var(--brand-500)}.reporting-page .rs-value.warn{color:var(--danger-text)}.reporting-page .rs-foot{flex-shrink:0;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-xs);color:var(--text-secondary);background:var(--brand-50);min-height:26px}.reporting-page .rs-foot.over{color:var(--danger-text);background:var(--danger-100);font-weight:var(--fw-medium)}.reporting-page .reporting-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--sp-3) var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.reporting-page .sop-section{background:var(--bg-card);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--sh-1)}.reporting-page .section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.reporting-page .section-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);margin:0}.reporting-page .sop-status{border:none;background:transparent;padding:0;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-hint);cursor:pointer}.reporting-page .sop-status.completed{color:var(--success-text)}.reporting-page .sop-list{display:flex;flex-direction:column}.reporting-page .sop-item{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) 0;cursor:pointer;border-bottom:1px solid var(--border-hairline)}.reporting-page .sop-item:last-child{border-bottom:none}.reporting-page .sop-check{flex-shrink:0;display:flex;padding-top:1px}.reporting-page .sop-check-empty{width:20px;height:20px;border:2px solid var(--border);border-radius:var(--r-sm);box-sizing:border-box}.reporting-page .sop-item.checked .sop-check-empty{border-color:var(--st-done);background:var(--st-done)}.reporting-page .sop-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.reporting-page .sop-text{font-size:var(--fs-md);line-height:1.5;color:var(--text-secondary)}.reporting-page .sop-item.checked .sop-text{color:var(--text-primary)}.reporting-page .sop-meta{font-size:var(--fs-xs);color:var(--text-hint)}.reporting-page .bom-list{display:flex;flex-direction:column;gap:var(--sp-2)}.reporting-page .bom-item{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--fs-sm);background:var(--bg-muted);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.reporting-page .bom-name{flex:1;min-width:0;color:var(--text-primary);font-weight:var(--fw-medium)}.reporting-page .bom-spec{color:var(--text-hint);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%}.reporting-page .bom-qty{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.reporting-page .qty-inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.reporting-page .qty-input-btn,.reporting-page .hours-input-btn{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-3);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}.reporting-page .qty-input-btn:active{transform:scale(.985)}.reporting-page .qty-input-btn.active.qualified{border-color:var(--st-run);background:var(--st-run-bg)}.reporting-page .qty-input-btn.active.defect{border-color:var(--st-abnormal);background:var(--st-abnormal-bg)}.reporting-page .hours-input-btn{flex-direction:row;justify-content:space-between;align-items:center;padding:var(--sp-3) var(--sp-4)}.reporting-page .hours-input-btn.active{border-color:var(--st-run);background:var(--st-run-bg)}.reporting-page .qi-label{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-secondary)}.reporting-page .qi-value{font-size:var(--fs-3xl);font-weight:var(--fw-bold);line-height:1;color:var(--text-primary);display:flex;align-items:center;font-variant-numeric:tabular-nums}.reporting-page .hours-val{font-size:var(--fs-2xl);color:var(--text-hint)}.reporting-page .active.qualified .qi-value{color:var(--brand-600)}.reporting-page .active.defect .qi-value{color:var(--danger-text)}.reporting-page .hours-input-btn.active .hours-val{color:var(--brand-600)}.reporting-page .qi-unit{font-size:var(--fs-xs);color:var(--text-hint)}.reporting-page .cursor{display:inline-block;width:2px;height:.9em;background:currentColor;margin-left:2px;animation:rp-blink 1s step-end infinite}@keyframes rp-blink{0%,to{opacity:1}50%{opacity:0}}.reporting-page .defect-types{background:var(--bg-card);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--sh-1)}.reporting-page .dt-title{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-3)}.reporting-page .dt-grid{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.reporting-page .dt-btn{min-height:var(--touch-min);padding:0 var(--sp-4);border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-muted);font-size:var(--fs-md);color:var(--text-secondary);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.reporting-page .dt-btn.selected{border-color:var(--st-abnormal);background:var(--st-abnormal-bg);color:var(--danger-text);font-weight:var(--fw-medium)}.reporting-page .remark-section{background:var(--bg-card);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1)}.reporting-page .remark-input{width:100%;border:none;padding:var(--sp-4);font-size:var(--fs-md);line-height:1.5;resize:none;outline:none;color:var(--text-primary);font-family:inherit;background:transparent;box-sizing:border-box}.reporting-page .remark-input::placeholder{color:var(--text-disabled)}.reporting-page .numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;flex-shrink:0;background:var(--border);border-top:1px solid var(--border)}.reporting-page .numpad-key{height:54px;background:var(--bg-card);border:none;font-size:var(--fs-2xl);font-weight:var(--fw-medium);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}.reporting-page .numpad-key:active{background:var(--bg-muted)}.reporting-page .numpad-key.del{background:var(--bg-muted);color:var(--text-secondary);font-size:var(--fs-md)}.reporting-page .numpad-key.dot{font-size:var(--fs-2xl);color:var(--text-secondary)}.reporting-page .reporting-footer{flex-shrink:0;padding:var(--sp-3) var(--sp-4) calc(var(--sp-3) + var(--safe-bottom));background:var(--bg-card);box-shadow:var(--sh-bar)}.reporting-page .submit-btn{height:48px;font-size:var(--fs-lg);border-radius:var(--r-md)}.reporting-page .empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);color:var(--text-hint);font-size:var(--fs-sm)}.scan-input{width:100%}.scan-input.is-disabled{opacity:.6}.scan-input__row{display:flex;align-items:stretch;gap:var(--sp-2)}.scan-input__field{flex:1;min-width:0;min-height:var(--touch-min);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-muted);color:var(--text-primary);font-size:var(--fs-md);box-sizing:border-box}.scan-input__field:focus{outline:none;border-color:var(--brand-500);background:var(--bg-card)}.scan-input__field::placeholder{color:var(--text-tertiary);font-size:var(--fs-sm)}.scan-input__btn{flex-shrink:0;min-height:var(--touch-min);min-width:var(--touch-min);padding:0 var(--sp-3);display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out)}.scan-input__btn:active{transform:scale(.97)}.scan-input__btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.scan-input__btn--ok{background:var(--brand-500);border-color:var(--brand-500);color:var(--text-inverse)}.scan-input__btn--cam{background:var(--brand-100);border-color:var(--brand-200);color:var(--brand-600)}.scan-input__hint{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary)}.material-issue-page{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;max-width:var(--app-max-width);margin:0 auto;background:var(--bg-page)}.material-issue-page .mi-body{flex:1;padding:var(--sp-3) var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.material-issue-page .mi-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);min-height:240px;color:var(--text-hint);font-size:var(--fs-sm)}.material-issue-page .mi-state--error{color:var(--danger-text)}.material-issue-page .mi-empty-card{background:var(--bg-card);border-radius:var(--r-lg);padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-disabled);font-size:var(--fs-sm);box-shadow:var(--sh-1)}.material-issue-page .mi-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);padding:var(--sp-4) var(--sp-3)}.material-issue-page .ms-cell{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.material-issue-page .ms-label{font-size:var(--fs-xs);color:var(--text-hint)}.material-issue-page .ms-value{font-size:var(--fs-xl);font-weight:var(--fw-bold);line-height:1.15;color:var(--text-primary);font-variant-numeric:tabular-nums}.material-issue-page .ms-value.done{color:var(--success-text)}.material-issue-page .ms-value.warn{color:var(--warning-text)}.material-issue-page .mi-notice{border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);line-height:1.5}.material-issue-page .mi-notice--warn{background:var(--st-pause-bg);color:var(--warning-text);border:1px solid var(--st-pause-border)}.material-issue-page .mi-kitting{border-radius:var(--r-md);padding:var(--sp-3);font-size:var(--fs-sm);border:1px solid transparent}.material-issue-page .mi-kitting--short{background:var(--danger-100);border-color:var(--st-abnormal-border)}.material-issue-page .mi-kitting--part{background:var(--st-pause-bg);border-color:var(--st-pause-border)}.material-issue-page .mi-kitting-head{display:flex;align-items:center;gap:var(--sp-1);font-weight:var(--fw-medium);color:var(--text-primary)}.material-issue-page .mi-kitting--short .mi-kitting-head{color:var(--danger-text)}.material-issue-page .mi-kitting--part .mi-kitting-head{color:var(--warning-text)}.material-issue-page .mi-kitting-list{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:2px}.material-issue-page .mi-kitting-row{display:flex;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-secondary)}.material-issue-page .kr-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-issue-page .kr-nums{white-space:nowrap;font-variant-numeric:tabular-nums}.material-issue-page .mi-kitting-more{margin-top:2px;font-size:var(--fs-xs);color:var(--text-hint)}.material-issue-page .mi-section-title{display:flex;align-items:baseline;gap:var(--sp-2);margin-top:var(--sp-3);font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.material-issue-page .mi-count{font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--text-hint)}.material-issue-page .mi-mat{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.material-issue-page .mm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.material-issue-page .mm-title{display:flex;flex-direction:column;gap:2px;min-width:0}.material-issue-page .mm-name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-issue-page .mm-code{font-size:var(--fs-xs);color:var(--text-hint);font-family:monospace}.material-issue-page .mm-spec{font-size:var(--fs-xs);color:var(--text-hint)}.material-issue-page .mm-bar{height:6px;border-radius:var(--r-full);background:var(--bg-muted);overflow:hidden}.material-issue-page .mm-fill{height:100%;border-radius:var(--r-full);background:var(--st-pause);transition:width var(--dur-fast) var(--ease-out)}.material-issue-page .mm-fill.full{background:var(--st-done)}.material-issue-page .mm-nums{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.material-issue-page .mm-nums strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.material-issue-page .mm-nums .neg{color:var(--danger-text)}.material-issue-page .mm-warn{font-size:var(--fs-xs);color:var(--danger-text)}.material-issue-page .mi-del{display:inline-flex;align-items:center;gap:2px;min-height:32px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card);color:var(--danger-text);font-size:var(--fs-xs);cursor:pointer}.material-issue-page .mi-del:active{background:var(--danger-100)}.material-issue-page .mi-footer{position:sticky;bottom:0;display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) calc(var(--sp-3) + var(--safe-bottom));background:var(--bg-card);box-shadow:var(--sh-bar);z-index:var(--z-footer)}.material-issue-page .mi-footer .btn{flex:1;min-width:0;height:var(--touch-min);gap:var(--sp-1);font-size:var(--fs-md)}.material-issue-page .mi-modal{display:flex;flex-direction:column;max-height:86vh}.material-issue-page .mi-steps{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-hairline)}.material-issue-page .mi-step{font-size:var(--fs-xs);color:var(--text-hint);padding:2px var(--sp-2);border-radius:var(--r-full);background:var(--bg-muted);white-space:nowrap}.material-issue-page .mi-step.on{background:var(--brand-500);color:var(--text-inverse);font-weight:var(--fw-medium)}.material-issue-page .mi-step.done{background:var(--st-done-bg);color:var(--success-text)}.material-issue-page .mi-step-line{flex:1;height:1px;background:var(--border)}.material-issue-page .mi-modal-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--sp-3) var(--sp-4);text-align:left}.material-issue-page .mi-hint{font-size:var(--fs-xs);line-height:1.6;color:var(--text-secondary);background:var(--brand-50);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3)}.material-issue-page .mi-form-row{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-2)}.material-issue-page .mi-form-row.is-short{border-color:var(--st-abnormal-border);background:var(--danger-100)}.material-issue-page .mfr-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:2px}.material-issue-page .mfr-name{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-issue-page .mfr-code{font-size:var(--fs-xs);color:var(--text-hint);font-family:monospace;flex-shrink:0}.material-issue-page .mfr-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-hint);margin-bottom:var(--sp-2)}.material-issue-page .mfr-meta em{font-style:normal;color:var(--danger-text)}.material-issue-page .mfr-unit{color:var(--text-hint)}.material-issue-page .mfr-input{display:flex;align-items:center;gap:var(--sp-2)}.material-issue-page .mfr-input .form-input{flex:1;min-width:0;height:var(--touch-min);font-size:var(--fs-lg);font-variant-numeric:tabular-nums}.material-issue-page .mi-mini{min-height:var(--touch-min);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-sm);white-space:nowrap;cursor:pointer}.material-issue-page .mi-mini:active{background:var(--bg-muted)}.material-issue-page .mi-noalloc{font-size:var(--fs-xs);color:var(--danger-text);padding-top:var(--sp-1)}.material-issue-page .mi-alloc{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px dashed var(--border-hairline);font-size:var(--fs-xs)}.material-issue-page .mi-alloc-left{display:flex;flex-direction:column;gap:1px;min-width:0}.material-issue-page .ma-batch{color:var(--text-primary);font-family:monospace}.material-issue-page .ma-loc{color:var(--text-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-issue-page .ma-qty{color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.material-issue-page .ma-qty em{font-style:normal;color:var(--text-hint);margin-left:var(--sp-1)}.material-issue-page .mi-modal-foot{flex-shrink:0}.material-issue-page .mi-modal-foot .btn{flex:1;min-width:0;padding:0 var(--sp-2);font-size:var(--fs-sm);white-space:nowrap}.issue-order-page{height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.issue-order-page .io-note{font-size:var(--fs-sm);line-height:1.6;color:var(--text-secondary);background:var(--bg-muted);border-radius:var(--r-md);padding:var(--sp-3);margin:var(--sp-2) 0 var(--sp-3)}.issue-order-page .io-summary{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-4)}.issue-order-page .io-chip{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-3) var(--sp-1);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md)}.issue-order-page .io-chip-num{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);font-variant-numeric:tabular-nums}.issue-order-page .io-chip-label{font-size:var(--fs-xs);color:var(--text-hint)}.issue-order-page .io-chip--done .io-chip-num{color:var(--success-text)}.issue-order-page .io-chip--wait .io-chip-num{color:var(--warning-text)}.issue-order-page .io-card{padding:0;overflow:hidden}.issue-order-page .io-card-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3);min-height:var(--touch-min);background:none;border:none;text-align:left;color:inherit;cursor:pointer}.issue-order-page .io-head-main{display:flex;flex-direction:column;gap:2px;min-width:0}.issue-order-page .io-code{font-family:monospace;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-order-page .io-meta{font-size:var(--fs-xs);color:var(--text-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-order-page .io-head-side{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0;color:var(--text-hint)}.issue-order-page .io-warn{font-size:var(--fs-xs);line-height:1.5;color:var(--warning-text);background:var(--warning-100);border-top:1px solid var(--border);padding:var(--sp-2) var(--sp-3)}.issue-order-page .io-lines{border-top:1px solid var(--border);padding:var(--sp-1) var(--sp-3) var(--sp-3)}.issue-order-page .io-line{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-1) var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px dashed var(--border-hairline)}.issue-order-page .io-line:last-of-type{border-bottom:none}.issue-order-page .io-line-main{display:flex;flex-direction:column;gap:2px;min-width:0}.issue-order-page .io-line-name{font-size:var(--fs-sm);color:var(--text-primary)}.issue-order-page .io-line-batch{font-family:monospace;font-size:var(--fs-xs);color:var(--text-hint)}.issue-order-page .io-line-side{display:flex;align-items:center;gap:var(--sp-2)}.issue-order-page .io-line-qty{font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.issue-order-page .io-line-loc{width:100%;font-size:var(--fs-xs);color:var(--text-hint)}.issue-order-page .io-dot{width:6px;height:6px;border-radius:var(--r-full)}.issue-order-page .io-dot--warn{background:var(--warning-500)}.issue-order-page .io-lines-foot{text-align:right;font-size:var(--fs-xs);color:var(--text-hint);padding-top:var(--sp-2)}.issue-order-page .io-empty{text-align:center;padding:var(--sp-8) 0;color:var(--text-disabled);font-size:var(--fs-sm)}.issue-order-page .io-error{text-align:center;padding:var(--sp-8) 0;color:var(--danger-500);font-size:var(--fs-sm)}.issue-order-page .io-back-btn{width:100%;margin-top:var(--sp-3)}.dg-picker{display:flex;flex-direction:column}.dg-picker__loading{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4) 0}.dg-picker__loading .ui-skeleton:nth-child(1){width:100%;height:34px}.dg-picker__loading .ui-skeleton:nth-child(2){width:100%;height:56px}.dg-picker__loading .ui-skeleton:nth-child(3){width:100%;height:56px}.dg-picker__hint{margin:0 0 var(--sp-2);font-size:var(--fs-xs);color:var(--text-tertiary)}.dg-group{display:flex;flex-direction:column;gap:var(--sp-2)}.dg-group__head{margin:var(--sp-4) 0 0}.dg-group:first-child .dg-group__head{margin-top:0}.dg-group__head .ui-section__title{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dg-group__count{font-size:var(--fs-xs);color:var(--text-tertiary);flex-shrink:0}.dg-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:60px;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-card);box-shadow:var(--sh-1);text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.dg-row:active{transform:scale(.99);border-color:var(--brand-200)}.dg-row__icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border-radius:var(--r-md);background:var(--brand-50);color:var(--brand-500)}.dg-row__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dg-row__name{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dg-row__code{font-size:var(--fs-xs);color:var(--text-tertiary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dg-row__chev{color:var(--text-disabled)}.dt-toast{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:1000;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 4px 12px #00000026;animation:dtToastIn .3s ease-out;white-space:nowrap}.dt-toast-success{background:#f0fff4;color:#22543d;border:1px solid #9ae6b4}.dt-toast-error{background:#fff5f5;color:#742a2a;border:1px solid #feb2b2}@keyframes dtToastIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.dt-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;min-height:32px}.dt-title{font-size:17px;font-weight:700;color:#1a202c;margin:0}.dt-header-actions{display:flex;gap:8px;align-items:center}.dt-refresh-btn{width:var(--touch-min);height:var(--touch-min);border-radius:8px;border:1px solid #e2e8f0;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#718096;transition:all .2s}.dt-refresh-btn:active{background:#f7fafc;transform:rotate(180deg)}.dt-back-btn{display:flex;align-items:center;gap:2px;min-height:var(--touch-min);background:none;border:none;font-size:15px;color:#3182ce;cursor:pointer;padding:0;font-weight:500}.dt-steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:20px;padding:12px 0}.dt-step{display:flex;align-items:center;gap:4px;font-size:12px;color:#a0aec0;font-weight:500}.dt-step.active{color:#3182ce;font-weight:600}.dt-step.done{color:#38a169}.dt-step-num{width:20px;height:20px;border-radius:50%;background:#edf2f7;color:#a0aec0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs)}.dt-step.active .dt-step-num{background:#3182ce;color:#fff}.dt-step.done .dt-step-num{background:#38a169;color:#fff}.dt-step-line{width:24px;height:2px;background:#e2e8f0;margin:0 6px;border-radius:1px}.dt-step-line.done{background:#38a169}.dt-progress-bar{margin-bottom:16px;padding:12px 16px;background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000000f}.dt-progress-info{display:flex;justify-content:space-between;font-size:13px;color:#4a5568;margin-bottom:8px;font-weight:500}.dt-progress-track{height:6px;background:#edf2f7;border-radius:3px;overflow:hidden}.dt-progress-fill{height:100%;background:linear-gradient(90deg,#3182ce,#63b3ed);border-radius:3px;transition:width .4s ease}.dt-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 0;color:#718096;font-size:14px}.dt-spinner{width:28px;height:28px;border:3px solid #e2e8f0;border-top-color:#3182ce;border-radius:50%;animation:dtSpin .8s linear infinite}@keyframes dtSpin{to{transform:rotate(360deg)}}.dt-empty{text-align:center;padding:48px 20px;color:#a0aec0}.dt-empty-icon{font-size:40px;display:block;margin-bottom:12px}.dt-empty>svg{display:block;margin:0 auto 12px;color:#cbd5e0}.dt-empty p{margin:4px 0;font-size:15px}.dt-empty-hint{font-size:13px!important;color:#cbd5e0!important}.dt-error{text-align:center;padding:16px;background:#fff5f5;border:1px solid #fed7d7;border-radius:10px;color:#c53030;font-size:14px;margin-bottom:12px}.dt-card{background:#fff;border-radius:12px;padding:14px 16px;margin-bottom:10px;box-shadow:0 1px 3px #0000000f;position:relative;transition:box-shadow .2s}.dt-card-clickable{cursor:pointer}.dt-card-clickable:active{box-shadow:0 2px 8px #0000001f}.dt-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.dt-card-title{font-size:15px;font-weight:600;color:#1a202c;margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-card-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:#718096}.dt-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid #f7fafc;font-size:12px;color:#a0aec0}.dt-card-actions{display:flex;gap:6px}.dt-card-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:20px;color:#cbd5e0;font-weight:300}.dt-card-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-right:12px;border-radius:10px;background:#edf2f7;color:#4a5568;flex-shrink:0}.dt-card-body{flex:1;min-width:0}.dt-card-sub{font-size:13px;color:#a0aec0;margin:2px 0 0}.dt-tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.dt-tag-green{background:#f0fff4;color:#276749}.dt-tag-orange{background:#fffaf0;color:#c05621}.dt-tag-red{background:#fff5f5;color:#c53030}.dt-tag-blue{background:#ebf8ff;color:#2b6cb0}.dt-tag-gray{background:#f7fafc;color:#718096}.dt-add-maintain-btn,.dt-add-repair-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border-radius:12px;border:2px dashed #bee3f8;background:linear-gradient(135deg,#ebf8ff 0%,#f0fff4 100%);color:#2b6cb0;font-size:15px;font-weight:600;cursor:pointer;margin-bottom:16px;transition:all .2s}.dt-add-maintain-btn:active,.dt-add-repair-btn:active{background:linear-gradient(135deg,#bee3f8 0%,#c6f6d5 100%);transform:scale(.98)}.dt-add-icon{width:24px;height:24px;border-radius:50%;background:#3182ce;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}.dt-status-filter{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;margin-bottom:16px;scrollbar-width:none}.dt-status-filter::-webkit-scrollbar{display:none}.dt-filter-chip{flex-shrink:0;padding:6px 12px;border-radius:20px;border:1px solid #e2e8f0;background:#fff;font-size:13px;color:#4a5568;cursor:pointer;transition:all .2s;white-space:nowrap}.dt-filter-chip.active{background:#3182ce;color:#fff;border-color:#3182ce}.dt-subject-card{border-left:3px solid #e2e8f0}.dt-subject-idx{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:#edf2f7;color:#718096;font-size:11px;font-weight:700;margin-right:8px;flex-shrink:0}.dt-subject-content{font-size:13px;color:#4a5568;margin:6px 0;line-height:1.5}.dt-subject-standard{font-size:12px;color:#718096;margin:0 0 10px;padding:6px 10px;background:#f7fafc;border-radius:6px}.dt-result-btns{display:flex;gap:8px}.dt-result-btn{flex:1;min-height:var(--touch-min);display:flex;align-items:center;justify-content:center;gap:6px;padding:0;border:2px solid #e2e8f0;border-radius:10px;background:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;color:#718096}.dt-result-btn:active{transform:scale(.97)}.dt-result-good.selected{background:#f0fff4;border-color:#38a169;color:#276749}.dt-result-ng.selected{background:#fff5f5;border-color:#e53e3e;color:#9b2c2c}.dt-submit-area{padding:20px 0}.dt-submit-btn{width:100%;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,#3182ce 0%,#2b6cb0 100%);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #3182ce4d}.dt-submit-btn:active:not(:disabled){transform:scale(.98);box-shadow:0 2px 6px #3182ce4d}.dt-submit-btn:disabled{background:#cbd5e0;cursor:not-allowed;box-shadow:none}.dt-form{padding-bottom:20px}.dt-form-group{margin-bottom:18px}.dt-label{display:block;font-size:14px;font-weight:600;color:#2d3748;margin-bottom:8px}.dt-required{color:#e53e3e}.dt-input{width:100%;padding:12px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;background:#fff;box-sizing:border-box;transition:border-color .2s;outline:none}.dt-input:focus{border-color:#3182ce}.dt-textarea{width:100%;padding:12px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;background:#fff;box-sizing:border-box;resize:vertical;min-height:72px;transition:border-color .2s;outline:none;font-family:inherit}.dt-textarea:focus{border-color:#3182ce}.dt-form-error{text-align:center;color:#e53e3e;font-size:14px;padding:10px;background:#fff5f5;border-radius:8px;margin-bottom:12px}.dt-selected-device{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#ebf8ff;border:2px solid #bee3f8;border-radius:10px}.dt-selected-name{font-size:15px;font-weight:600;color:#2d3748;margin:0}.dt-selected-sub{font-size:13px;color:#718096;margin:2px 0 0}.dt-action-btn{padding:4px 10px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;font-size:12px;color:#3182ce;cursor:pointer;transition:all .2s}.dt-action-btn:active{background:#f7fafc}.dt-action-danger{color:#e53e3e;border-color:#fed7d7}.dt-action-danger:active{background:#fff5f5}.dt-action-primary{color:#1677ff;border-color:#d6e8ff}.dt-action-primary:active{background:#f0f5ff}.dt-detail{padding:12px;display:flex;flex-direction:column;gap:10px}.dt-detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f7fafc;border-radius:8px}.dt-detail-label{color:#888;font-size:13px;flex-shrink:0}.dt-detail-value{color:#1a1a1a;font-size:14px;font-weight:500;text-align:right;word-break:break-all}.dt-card-subjects{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;padding:8px 10px;background:#f7fafc;border-radius:8px}.dt-subject-dot{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-subject-dot.dot-ok{background:#f0fff4;color:#276749}.dt-subject-dot.dot-ng{background:#fff5f5;color:#9b2c2c}.photo-upload-row{display:flex;gap:10px;flex-wrap:wrap;padding:4px 0}.photo-thumb-wrap{position:relative;width:80px;height:80px;border-radius:10px;overflow:hidden;border:1.5px solid #e2e8f0;flex-shrink:0}.photo-thumb{width:100%;height:100%;object-fit:cover}.photo-remove-btn{position:absolute;top:-5px;right:-5px;width:22px;height:22px;border-radius:50%;border:none;background:#ff4d4f;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003}.photo-add-btn{width:80px;height:80px;border-radius:10px;border:1.5px dashed #d9d9d9;background:#fafafa;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;flex-shrink:0;transition:all .15s;-webkit-tap-highlight-color:transparent}.photo-add-btn:active{background:#f0f0f0;border-color:#bbb}.photo-add-btn:disabled{opacity:.5;cursor:not-allowed}.photo-add-label{font-size:11px;color:#bbb}.photo-uploading-spinner{width:24px;height:24px;border:2.5px solid #e2e8f0;border-top-color:#1677ff;border-radius:50%;animation:dtSpin .7s linear infinite}.dt-detail-images{display:flex;gap:10px;margin-top:4px}.dt-detail-image{width:100px;height:100px;border-radius:10px;object-fit:cover;border:1.5px solid #e2e8f0;cursor:pointer;transition:transform .15s}.dt-detail-image:active{transform:scale(.95)}.dt-process-user{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f0f5ff;border-radius:10px;font-size:15px;color:#1a1a1a;font-weight:500}.dt-process-user-id{font-size:12px;color:#999;font-weight:400}.dt-repair-line-card{background:#f9fafb;border:1px solid #e8e8e8;border-radius:12px;padding:14px;margin-bottom:12px}.dt-repair-line-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dt-repair-line-num{font-size:14px;font-weight:600;color:#1677ff}.dt-label-sm{display:block;font-size:12px;color:#888;margin-bottom:4px;font-weight:500}.dt-add-line-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:42px;border:1.5px dashed #d9d9d9;border-radius:10px;background:#fafafa;color:#666;font-size:14px;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.dt-add-line-btn:active{background:#f0f0f0;border-color:#bbb}.dt-detail-section{padding:8px 12px;display:flex;flex-direction:column;gap:6px}.dt-repair-line-detail{background:#f9fafb;border:1px solid #e8e8e8;border-radius:10px;padding:12px}.dt-repair-line-detail-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.dt-repair-line-num-dot{width:22px;height:22px;border-radius:50%;background:#e8f4ff;color:#1677ff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dt-line-subject{font-size:14px;font-weight:600;color:#1a1a1a}.dt-line-field{margin-top:6px}.dt-line-field-label{display:block;font-size:12px;color:#999;margin-bottom:2px}.dt-line-field-value{font-size:13px;color:#333;line-height:1.5;word-break:break-all}.dt-readonly-value{padding:10px 12px;background:#f5f5f5;border-radius:8px;font-size:14px;color:#333;line-height:1.5;min-height:40px;word-break:break-all}.dt-section-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#4a5568;margin:14px 2px 8px}.dt-check-footer__label{flex:none;font-size:13px;color:#718096}.dt-plan__progress{margin-top:10px;padding-right:26px}.dt-plan__progress .ui-tag{flex:none}.device-list-tab{display:flex;flex-direction:column;gap:4px}.dt-card-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#a0aec0}.dt-device-load{margin-top:8px}.dt-device-load__label{flex:none;font-size:var(--fs-xs);color:#718096}.device-page{display:flex;flex-direction:column;height:100%;background:#f7fafc}.device-topbar{background:linear-gradient(135deg,#2b6cb0 0%,#3182ce 100%);padding:16px 20px 12px;flex-shrink:0}.device-topbar-title{font-size:20px;font-weight:700;color:#fff;margin:0;letter-spacing:.5px}.device-tab-bar{display:flex;background:#fff;border-top:1px solid #edf2f7;padding:6px 0 env(safe-area-inset-bottom,8px);flex-shrink:0;position:relative}.device-tab-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:8px 0 4px;background:none;border:none;cursor:pointer;transition:all .2s;position:relative}.device-tab-icon{font-size:20px;margin-bottom:2px;transition:transform .2s}.device-tab-item.active .device-tab-icon{transform:scale(1.15)}.device-tab-label{font-size:11px;color:#a0aec0;font-weight:500;transition:color .2s}.device-tab-item.active .device-tab-label{color:#3182ce;font-weight:700}.device-tab-indicator{position:absolute;top:0;left:50%;transform:translate(-50%);width:24px;height:3px;background:#3182ce;border-radius:0 0 3px 3px}.device-tab-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px 0}.pwd-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:20px}.pwd-modal-card{background:#fff;border-radius:16px;width:100%;max-width:360px;box-shadow:0 8px 30px #0000001f;animation:slideUp .25s ease;overflow:hidden}.pwd-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 0}.pwd-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#1a1a1a}.pwd-modal-close{width:32px;height:32px;border:none;background:#f5f5f5;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#999;cursor:pointer;-webkit-tap-highlight-color:transparent}.pwd-modal-close:active{background:#ebebeb;color:#666}.pwd-modal-error{margin:12px 20px 0;padding:10px 14px;background:#fff1f0;border:1px solid #ffccc7;border-radius:10px;color:#cf1322;font-size:13px}.pwd-modal-body{padding:20px}.pwd-form-item{margin-bottom:16px}.pwd-form-item:last-child{margin-bottom:0}.pwd-form-label{display:block;font-size:13px;font-weight:500;color:#555;margin-bottom:6px}.pwd-form-input{width:100%;height:44px;border:1.5px solid #e5e5e5;border-radius:10px;padding:0 14px;font-size:15px;color:#1a1a1a;background:#fafafa;outline:none;transition:border-color .2s,background .2s;box-sizing:border-box}.pwd-form-input:focus{border-color:#1677ff;background:#fff}.pwd-modal-footer{display:flex;gap:12px;padding:0 20px 20px}.pwd-btn-cancel{flex:1;height:44px;border:1.5px solid #e5e5e5;background:#fff;color:#666;font-size:15px;font-weight:500;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.pwd-btn-cancel:active{background:#f5f5f5}.pwd-btn-submit{flex:1;height:44px;border:none;background:#1677ff;color:#fff;font-size:15px;font-weight:500;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .15s}.pwd-btn-submit:active{background:#0958d9}.pwd-btn-submit:disabled{background:#a0c4ff;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.mine-profile-wrap{background:linear-gradient(135deg,#1677ff 0%,#0958d9 100%);margin:0;padding:40px 20px 28px;position:relative;overflow:hidden}.mine-profile-wrap:before{content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.06)}.mine-profile-wrap:after{content:"";position:absolute;bottom:-30px;left:-20px;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,.04)}.mine-avatar-row{display:flex;align-items:center;gap:16px;position:relative;z-index:1}.mine-avatar{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;border:2px solid rgba(255,255,255,.5);flex-shrink:0;backdrop-filter:blur(4px)}.mine-name{font-size:20px;font-weight:700;color:#fff;margin:0 0 4px}.mine-dept{font-size:13px;color:#ffffffbf;margin:0;display:flex;align-items:center;gap:6px}.mine-dept svg{opacity:.7}.mine-body{padding:0 12px 20px;margin-top:-16px;position:relative;z-index:2}.mine-stats-card{background:#fff;border-radius:14px;box-shadow:0 2px 12px #00000014;padding:8px 0;display:flex}.mine-stat-item{flex:1;text-align:center;padding:14px 4px;position:relative}.mine-stat-item+.mine-stat-item:before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:#f0f0f0}.mine-stat-value{font-size:24px;font-weight:800;color:#1677ff;line-height:1.2;margin:0 0 4px}.mine-stat-label{font-size:12px;color:#888;margin:0}.mine-menu-card{background:#fff;border-radius:14px;box-shadow:0 2px 12px #00000014;margin-top:12px;overflow:hidden}.mine-menu-item{display:flex;align-items:center;gap:14px;padding:16px;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.mine-menu-item:active{background:#f5f7fa}.mine-menu-item+.mine-menu-item{border-top:1px solid #f5f5f5}.mine-menu-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mine-menu-icon.icon-record{background:#e8f4ff;color:#1677ff}.mine-menu-icon.icon-notify{background:#fff7e6;color:#d46b08}.mine-menu-icon.icon-pwd{background:#f6ffed;color:#52c41a}.mine-menu-icon.icon-approval{background:#e6fffa;color:#13c2c2}.mine-menu-icon.icon-help{background:#f0f5ff;color:#7b61ff}.mine-menu-content{flex:1;min-width:0}.mine-menu-label{font-size:15px;font-weight:500;color:#1a1a1a;margin:0}.mine-menu-desc{font-size:12px;color:#bbb;margin:2px 0 0}.mine-menu-arrow{flex-shrink:0;color:#ccc}.mine-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:48px;border:1.5px solid #ff4d4f;background:#fff;color:#ff4d4f;font-size:15px;font-weight:500;border-radius:12px;cursor:pointer;margin-top:16px;transition:all .15s;-webkit-tap-highlight-color:transparent}.mine-logout-btn:active{background:#fff1f0;border-color:#d9363e}.mine-version{text-align:center;font-size:12px;color:#ccc;margin-top:20px;padding-bottom:20px}.notice-detail-page{display:flex;flex-direction:column;height:100%;background:#f5f7fa;overflow:hidden}.nd-nav{display:flex;align-items:center;gap:12px;padding:0 12px;height:56px;background:#fff;border-bottom:1px solid #f0f0f0;flex-shrink:0}.nd-nav .back-btn{background:none;border:none;cursor:pointer;padding:8px 4px;color:var(--text-primary);display:flex;align-items:center}.nd-nav h1{font-size:17px;font-weight:600;color:var(--text-primary)}.nd-body{flex:1;overflow-y:auto;padding:12px}.nd-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 0;color:#999;font-size:13px;gap:12px}.nd-spinner{width:28px;height:28px;border:3px solid #e6f0ff;border-top-color:#1677ff;border-radius:50%;animation:spin .8s linear infinite}.nd-error{text-align:center;padding:60px 20px;color:#ff4d4f}.nd-error p{margin-bottom:16px;font-size:14px}.nd-header{margin-bottom:12px}.nd-title{font-size:18px;font-weight:700;color:#1a1a1a;line-height:1.4;margin-bottom:10px}.nd-meta{display:flex;align-items:center;gap:10px;margin-bottom:6px}.nd-time{font-size:12px;color:#bbb}.nd-author{font-size:12px;color:#999;margin-top:4px}.nd-content{margin-bottom:20px}.nd-content-html{font-size:15px;line-height:1.8;color:#333;word-break:break-word}.nd-content-html img{max-width:100%;border-radius:6px;margin:8px 0}.nd-content-html p{margin-bottom:12px}.nd-content-html h1,.nd-content-html h2,.nd-content-html h3{margin:16px 0 8px;font-weight:600}.nd-content-html ul,.nd-content-html ol{padding-left:20px;margin-bottom:12px}.nd-content-html table{width:100%;border-collapse:collapse;margin-bottom:12px}.nd-content-html th,.nd-content-html td{border:1px solid #e8e8e8;padding:8px 12px;font-size:14px}.nd-content-html th{background:#f5f7fa;font-weight:600}.notice-list-page{background:#f5f7fa;min-height:100vh}.notice-tabs{display:flex;background:#fff;border-bottom:1px solid #f0f0f0;padding:0 16px;gap:0}.notice-tab{flex:1;height:44px;border:none;background:none;font-size:15px;color:#888;cursor:pointer;position:relative;transition:color .2s;-webkit-tap-highlight-color:transparent}.notice-tab.active{color:#1677ff;font-weight:600}.notice-tab.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:32px;height:3px;background:#1677ff;border-radius:2px}.notice-list{background:#fff}.notice-item{display:flex;align-items:center;padding:16px;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.notice-item:active{background:#f5f7fa}.notice-item+.notice-item{border-top:1px solid #f7f7f7}.notice-item-left{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.notice-dot{width:8px;height:8px;border-radius:50%;background:#1677ff;flex-shrink:0;margin-top:6px}.notice-dot-announce{background:#faad14}.notice-item-info{flex:1;min-width:0}.notice-item-title{font-size:15px;font-weight:500;color:#1a1a1a;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-item-meta{display:flex;align-items:center;gap:10px;margin:0}.notice-tag{font-size:11px;padding:1px 8px;border-radius:4px}.notice-tag-notify{background:#e6f7ff;color:#1677ff}.notice-tag-announce{background:#fffbe6;color:#d48806}.notice-item-time{font-size:12px;color:#bbb}.load-more-wrap{padding:20px 16px;text-align:center}.load-more-btn{width:100%;height:40px;border:none;background:#f0f5ff;color:#1677ff;font-size:14px;border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.load-more-btn:active{background:#d6e4ff}.load-more-btn:disabled{color:#bbb;background:#f7f7f7}.approval-list-page{height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:#f5f7fa;display:flex;flex-direction:column}.approval-list-page .page-header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:16px;display:flex;align-items:center;justify-content:space-between;color:#fff;box-shadow:0 2px 8px #0000001a}.approval-list-page .back-btn,.refresh-btn{background:rgba(255,255,255,.2);border:none;color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;cursor:pointer}.page-title{font-size:18px;font-weight:600;margin:0}.page-body{flex:1;padding:16px;overflow-y:auto}.loading-state,.approval-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;color:#8c8c8c}.loading-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.empty-icon{font-size:48px;margin-bottom:16px}.task-list{display:flex;flex-direction:column;gap:12px}.task-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:transform .2s,box-shadow .2s}.task-card:active{transform:scale(.98);box-shadow:0 1px 4px #0000001a}.task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.task-type{background:#e6f7ff;color:#1890ff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.task-time{font-size:12px;color:#8c8c8c}.task-title{font-size:16px;font-weight:600;color:#262626;margin:0 0 12px;line-height:1.4}.task-node{font-size:14px;color:#595959;margin-bottom:8px}.node-name{font-weight:500;color:#1890ff}.task-footer{display:flex;justify-content:flex-end;gap:8px;align-items:center}.task-arrow{font-size:14px;color:#8c8c8c}.task-meta{font-size:12px;color:#8c8c8c;margin-bottom:8px}.wf-pill{font-size:12px;font-weight:500;color:#fff;padding:2px 8px;border-radius:4px;white-space:nowrap}.wf-waiting{font-size:13px;color:#595959;margin-bottom:10px}.wf-waiting b{font-weight:600;color:#d48806}.wf-waiting-time{color:#8c8c8c}.cancel-btn-inline{font-size:12px;padding:4px 12px;border:1px solid #ff4d4f;background:#fff;color:#ff4d4f;border-radius:6px;cursor:pointer}.cancel-btn-inline:disabled{opacity:.5;cursor:not-allowed}.wf-outcome{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:12px}.wf-outcome:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.wf-outcome-label{color:#8c8c8c}.approval-detail-page{height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:#f5f7fa;display:flex;flex-direction:column}.approval-detail-page .page-header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:16px;display:flex;align-items:center;gap:16px;color:#fff;box-shadow:0 2px 8px #0000001a}.approval-detail-page .back-btn{background:rgba(255,255,255,.2);border:none;color:#fff;padding:8px 16px;border-radius:20px;font-size:14px;cursor:pointer}.page-title{font-size:18px;font-weight:600;margin:0}.page-body{flex:1;padding:16px 16px 100px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.loading-state,.approval-detail-page .empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8c8c8c}.loading-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.detail-section{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000000f}.section-header{padding-bottom:12px;border-bottom:1px solid #f0f0f0;margin-bottom:16px}.section-title{font-size:16px;font-weight:600;color:#262626}.info-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #fafafa}.info-row:last-of-type{border-bottom:none}.info-label{font-size:14px;color:#8c8c8c}.info-value{font-size:14px;color:#262626;text-align:right;flex:1;margin-left:16px}.timeline{display:flex;flex-direction:column;position:relative;padding-left:20px}.timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:#e8e8e8}.timeline-item{display:flex;gap:16px;margin-bottom:20px;position:relative}.timeline-dot{width:16px;height:16px;border-radius:50%;background:#667eea;border:3px solid #fff;box-shadow:0 0 0 2px #667eea;flex-shrink:0;margin-left:-8px;z-index:1}.timeline-content{flex:1}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.timeline-operator{font-size:14px;font-weight:600;color:#262626}.timeline-time{font-size:12px;color:#8c8c8c}.timeline-action{font-size:14px;color:#595959;margin-bottom:4px}.timeline-comment{font-size:14px;color:#8c8c8c;background:#f5f7fa;padding:8px 12px;border-radius:6px}.comment-input{width:100%;border:1px solid #d9d9d9;border-radius:8px;padding:12px;font-size:14px;resize:none;outline:none;box-sizing:border-box}.comment-input:focus{border-color:#667eea}.action-section{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:16px;display:flex;gap:16px;box-shadow:0 -2px 8px #0000000f}.approval-detail-page .btn{flex:1;padding:14px 24px;border:none;border-radius:24px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}.approval-detail-page .btn:disabled{opacity:.6;cursor:not-allowed}.reject-btn{background:#fff1f0;color:#ff4d4f;border:1px solid #ffa39e}.approve-btn{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.wf-alert{background:#fdf6ec;border:1px solid #f5e0c0;color:#b88230;border-radius:8px;padding:8px 12px;font-size:12px;margin-bottom:12px}.wf-code{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:#909399;margin-left:8px}.wf-total{margin-left:auto;font-size:13px;font-weight:500;color:#303133}.wf-grid{display:flex;flex-wrap:wrap;border:1px solid #ebeef5;border-radius:8px;overflow:hidden}.wf-cell{flex:0 0 50%;padding:8px 12px;border-bottom:1px solid #f5f6f8;box-sizing:border-box}.wf-k{font-size:11px;color:#909399;line-height:1.6}.wf-v{font-size:13px;color:#303133;line-height:1.6;word-break:break-all}.wf-v.money{font-size:16px;font-weight:500;letter-spacing:-.3px}.wf-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.wf-table{width:100%;border-collapse:collapse;font-size:12px;min-width:520px}.wf-table th{background:#fafafa;font-weight:500;color:#606266;padding:7px 9px;border-bottom:1px solid #ebeef5;text-align:left;white-space:nowrap}.wf-table td{padding:7px 9px;border-bottom:1px solid #f5f6f8;color:#303133;white-space:nowrap}.wf-table .num{text-align:right;font-variant-numeric:tabular-nums}.wf-chain{display:flex;flex-direction:column;gap:8px}.wf-chain-grp{border:1px solid #ebeef5;border-radius:8px;padding:9px 11px}.wf-chain-lb{font-size:11px;color:#909399;margin-bottom:5px}.wf-chain-none{font-size:12px;color:#c0c4cc}.wf-chain-ln{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px}.wf-chain-code{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:#909399;margin-left:auto}.wf-done{width:100%;text-align:center;font-size:13px;color:#909399;padding:10px 0}.wf-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:#fff;border-radius:10px;font-size:13px;color:#595959}.wf-state.run{border-left:3px solid #1677ff}.wf-state.end{border-left:3px solid #bfbfbf}.wf-state-badge{font-size:12px;font-weight:500;color:#fff;padding:2px 8px;border-radius:4px;white-space:nowrap}.wf-state-txt b{color:#262626;font-weight:600}.wf-state b.wf-state-who{color:#d48806}.wf-state-sub{font-size:12px;color:#8c8c8c}.wf-state-right{margin-left:auto;font-size:11px;color:#bfbfbf}.start-approval-page{height:100vh;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:#f5f7fa}.start-approval-page .page-header{display:flex;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid #eee;position:sticky;top:0;z-index:10}.start-approval-page .back-btn{background:none;border:none;font-size:15px;color:#666;padding:4px 8px;cursor:pointer}.page-title{flex:1;text-align:center;font-size:17px;font-weight:600;color:#333;margin:0;padding-right:40px}.page-body{padding:12px}.section{background:#fff;border-radius:10px;padding:14px;margin-bottom:12px}.section-header{margin-bottom:12px}.section-title{font-size:15px;font-weight:600;color:#333}.def-list{display:flex;flex-direction:column;gap:8px}.def-card{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1.5px solid #e8e8e8;border-radius:10px;cursor:pointer;transition:all .2s}.def-card.active{border-color:#1677ff;background:#f0f5ff}.def-name{font-size:15px;font-weight:500;color:#333}.def-code{font-size:12px;color:#999}.form-fields{display:flex;flex-direction:column;gap:14px}.form-field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:14px;color:#555}.field-input,.field-textarea,.field-select{padding:10px 12px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;background:#fff;outline:none}.field-input:focus,.field-textarea:focus,.field-select:focus{border-color:#1677ff}.field-textarea{resize:vertical}.field-radio-group,.field-checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.radio-label,.checkbox-label{display:flex;align-items:center;gap:4px;font-size:14px;color:#555}.loading-state,.start-approval-page .empty-state{text-align:center;padding:30px;color:#999;font-size:14px}.action-section{padding:8px 0 20px}.start-approval-page .btn{width:100%;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.submit-btn{background:linear-gradient(135deg,#1677ff,#0958d9);color:#fff}.submit-btn:disabled{opacity:.6}.help-page{background:#f5f7fa;min-height:100vh}.help-section{background:#fff;border-radius:14px;padding:20px;margin-bottom:12px}.help-section-title{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600;color:#1a1a1a;margin:0 0 16px}.help-list{display:flex;flex-direction:column;gap:16px}.help-item{padding-bottom:12px;border-bottom:1px solid #f5f5f5}.help-item:last-child{padding-bottom:0;border-bottom:none}.help-item-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.help-item-icon{font-size:18px}.help-item-title{font-size:14px;font-weight:600;color:#333}.help-item-desc{font-size:13px;color:#888;line-height:1.6;margin:0;padding-left:26px}.help-contact{display:flex;flex-direction:column;gap:12px}.contact-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.contact-label{font-size:14px;color:#888}.contact-value{font-size:14px;color:#1677ff;font-weight:500}.help-version{text-align:center;padding:24px 0;color:#999;font-size:13px}.help-version p{margin:4px 0}.version-num{font-size:12px;color:#ccc}.version-copy{font-size:11px;color:#ddd;margin-top:8px!important}.report-list-page{min-height:100vh;background:#f5f5f5;padding-bottom:16px}.report-list-page .page-header{display:flex;align-items:center;padding:12px 16px;background:#1677ff;color:#fff;position:sticky;top:0;z-index:10}.report-list-page .page-header h1{flex:1;font-size:18px;font-weight:600;margin:0}.icon-btn{background:rgba(255,255,255,.2);border:none;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;margin-left:8px}.icon-btn:active{background:rgba(255,255,255,.3)}.stats-summary{display:flex;padding:12px 16px;background:white;margin:12px 16px;border-radius:12px;box-shadow:0 2px 8px #00000014}.stat-item{flex:1;text-align:center}.stat-value{display:block;font-size:20px;font-weight:700;color:#333}.stat-value.green{color:#52c41a}.stat-value.red{color:#ff4d4f}.stat-value.blue{color:#1677ff}.stat-label{display:block;font-size:12px;color:#999;margin-top:2px}.report-list-container{padding:0 16px}.report-item{margin-bottom:12px;cursor:pointer}.report-item:active{transform:scale(.98)}.report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.report-workorder{font-weight:600;font-size:15px;color:#1a1a1a;font-family:monospace}.report-time{font-size:12px;color:#999}.report-body{display:flex;align-items:center;gap:12px}.report-qty{display:flex;gap:8px}.qty-qualified{color:#52c41a;font-weight:600;font-size:15px}.qty-unqualified{color:#ff4d4f;font-weight:600;font-size:15px}.report-hours{color:#666;font-size:13px}.report-worker{color:#999;font-size:13px;margin-left:auto}.report-remark{margin-top:8px;font-size:13px;color:#666;background:#f9f9f9;padding:6px 8px;border-radius:6px}.report-source-tag{margin-left:8px;margin-right:auto;padding:1px 6px;border-radius:4px;font-size:11px;line-height:16px;background:#e8f4ff;color:#1677ff;font-weight:500;white-space:nowrap}.report-detail-page{min-height:100vh;background:#f5f5f5;padding-bottom:80px}.report-detail-page .report-stats-card{margin:12px 16px;padding:16px;background:white;border-radius:12px;box-shadow:0 2px 8px #00000014}.report-detail-page .stat-row{display:flex;align-items:center;justify-content:space-around}.report-detail-page .stat-item{flex:1;text-align:center}.report-detail-page .stat-value{display:block;font-size:24px;font-weight:700}.report-detail-page .stat-value.green{color:#52c41a}.report-detail-page .stat-value.red{color:#ff4d4f}.report-detail-page .stat-label{display:block;font-size:12px;color:#999;margin-top:4px}.report-detail-page .stat-divider{width:1px;height:40px;background:#e8e8e8}.report-detail-page .detail-section{margin:12px 16px;padding:16px;background:white;border-radius:12px;box-shadow:0 2px 8px #00000014}.report-detail-page .section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.report-detail-page .info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f9f9f9}.report-detail-page .info-row:last-child{border-bottom:none}.report-detail-page .info-label{font-size:14px;color:#999}.report-detail-page .info-value{font-size:14px;color:#333;font-weight:500}.report-detail-page .defect-types{padding:12px 0}.report-detail-page .defect-tag{display:inline-block;padding:4px 12px;margin:4px 4px 4px 0;background:#fff2f0;color:#ff4d4f;border-radius:4px;font-size:13px}.report-detail-page .remark-content{padding:12px;background:#f9f9f9;border-radius:8px;font-size:14px;color:#666;line-height:1.6}.report-detail-page .detail-actions{position:fixed;bottom:0;left:0;right:0;padding:12px 16px;background:white;box-shadow:0 -2px 8px #00000014;z-index:100}.report-detail-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);color:var(--text-hint);font-size:var(--fs-sm)}.report-detail-page .rd-empty{margin-top:80px}.report-detail-page .rd-error{color:var(--st-abnormal)}.report-detail-page .rd-retry{margin-top:var(--sp-3)}.report-source-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;line-height:18px;background:#e8f4ff;color:#1677ff;font-weight:500}.report-stats-page{min-height:100vh;background:#f5f5f5;padding-bottom:16px}.stats-overview{margin:12px 16px;padding:16px}.overview-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0 0 12px}.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.overview-item{text-align:center;padding:12px;background:#f9f9f9;border-radius:8px}.ov-value{display:block;font-size:22px;font-weight:700;color:#333}.ov-value.green{color:#52c41a}.ov-value.red{color:#ff4d4f}.ov-value.blue{color:#1677ff}.ov-label{display:block;font-size:12px;color:#999;margin-top:4px}.period-tabs{display:flex;padding:0 16px;gap:8px;margin-bottom:12px}.period-tab{flex:1;padding:8px 0;border:none;border-radius:8px;background:white;color:#666;font-size:14px;font-weight:500;cursor:pointer;box-shadow:0 1px 4px #0000000f}.period-tab.active{background:#1677ff;color:#fff}.stats-list{padding:0 16px}.stats-card{margin-bottom:12px}.stats-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.stats-period{font-weight:600;font-size:14px;color:#1a1a1a}.stats-total{font-size:12px;color:#999}.stats-bar-container{margin-bottom:8px}.stats-bar{height:12px;background:#ff4d4f;border-radius:6px;overflow:hidden}.bar-qualified{height:100%;background:#52c41a;border-radius:6px;transition:width .3s ease}.stats-card-body{display:flex;gap:12px;flex-wrap:wrap}.stats-item{display:flex;align-items:center;gap:4px;font-size:13px;color:#666}.stats-dot{width:8px;height:8px;border-radius:50%}.stats-dot.green{background:#52c41a}.stats-dot.red{background:#ff4d4f}.stats-dot.blue{background:#1677ff}.inventory-page{min-height:100vh;background:#f5f5f5;padding-bottom:16px}.shortcut-section{padding:16px}.section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0 0 12px}.shortcut-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.shortcut-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;background:white;border:none;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:transform .2s}.shortcut-card:active{transform:scale(.95)}.shortcut-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.shortcut-icon.blue{background:#e6f7ff;color:#1677ff}.shortcut-icon.green{background:#f6ffed;color:#52c41a}.shortcut-icon.teal{background:#e6fffb;color:#13c2c2}.shortcut-icon.orange{background:#fff7e6;color:#fa8c16}.shortcut-icon.red{background:#fff1f0;color:#f5222d}.shortcut-icon.purple{background:#f9f0ff;color:#722ed1}.shortcut-icon.yellow{background:#fffbe6;color:#d4b106}.shortcut-label{font-size:13px;color:#666}.overview-section{padding:0 16px}.overview-card{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;background:white;border-radius:12px;box-shadow:0 2px 8px #00000014}.overview-item{text-align:center}.ov-label{display:block;font-size:12px;color:#999;margin-bottom:4px}.ov-value{display:block;font-size:20px;font-weight:700;color:#333}.ov-value.warning{color:#fa8c16}.inventory-query-page{min-height:100vh;background:#f5f7fa;padding-bottom:20px}.inv-stats-bar{display:flex;gap:10px;padding:12px 16px;background:#fff;margin-bottom:8px}.inv-stat-item{flex:1;text-align:center;padding:10px 4px;background:#f5f7fa;border-radius:10px}.inv-stat-value{display:block;font-size:20px;font-weight:700;color:#1677ff;line-height:1.2}.inv-stat-label{font-size:12px;color:#999;margin-top:2px}.inv-filter-bar{display:flex;gap:10px;padding:10px 16px;background:#fff;margin-bottom:8px;align-items:center}.inv-filter-select{height:42px;border:1.5px solid #e8e8e8;border-radius:10px;padding:0 12px;font-size:15px;color:#1a1a1a;background:#fff;min-width:120px;outline:none}.stock-list{padding:0 16px}.stock-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 2px 8px #0000000f}.stock-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.stock-info{flex:1;min-width:0}.stock-name{font-weight:600;font-size:15px;color:#1a1a1a;margin:0 0 2px}.stock-code{font-size:12px;color:#999;font-family:monospace;margin:0}.stock-qty{text-align:right;flex-shrink:0}.qty-value{display:block;font-size:20px;font-weight:700;color:#1677ff}.qty-unit{font-size:12px;color:#999}.stock-spec{font-size:13px;color:#666;margin:0 0 8px}.stock-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.stock-tag{font-size:12px;padding:3px 8px;border-radius:6px;background:#f5f7fa;color:#666}.stock-tag.batch{background:#e8f4ff;color:#1677ff}.stock-tag.location{background:#f6ffed;color:#52c41a}.stock-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;border-top:1px solid #f0f0f0;padding-top:8px}.stock-date{color:#bbb}.stock-status{padding:2px 8px;border-radius:4px;font-weight:500;font-size:12px}.stock-status.available{background:#f6ffed;color:#52c41a}.stock-status.unavailable{background:#fff2f0;color:#ff4d4f}.inv-detail-page{min-height:100vh;background:#f5f7fa;padding-bottom:20px}.inv-detail-header{background:#fff;padding:16px;margin-bottom:8px}.inv-detail-title{font-size:18px;font-weight:700;color:#1a1a1a;margin-bottom:4px}.inv-detail-sub{font-size:13px;color:#999;margin-bottom:2px}.inv-detail-stats{display:flex;gap:10px;margin-top:12px}.inv-detail-stat{flex:1;text-align:center;padding:10px 4px;background:#f5f7fa;border-radius:10px}.inv-detail-stat-val{display:block;font-size:20px;font-weight:700;color:#1677ff;line-height:1.2}.inv-detail-stat-label{font-size:12px;color:#999;margin-top:2px}.inv-detail-tabs{display:flex;background:#fff;border-bottom:1px solid #f0f0f0;margin-bottom:8px}.inv-detail-tab{flex:1;padding:12px 4px;border:none;background:none;font-size:14px;color:#666;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}.inv-detail-tab.active{color:#1677ff;font-weight:600}.inv-detail-tab.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:#1677ff;border-radius:3px 3px 0 0}.inv-detail-body{padding:0 16px}.inv-detail-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 2px 8px #0000000f}.inv-detail-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #f5f5f5}.inv-detail-row:last-child{border-bottom:none}.inv-detail-label{font-size:13px;color:#999;flex-shrink:0}.inv-detail-value{font-size:14px;color:#1a1a1a;font-weight:500;text-align:right;word-break:break-all;max-width:65%}.inv-detail-value.highlight{color:#1677ff;font-weight:700}.inv-detail-value.highlight.in{color:#52c41a}.inv-detail-value.highlight.out{color:#ff4d4f}.picker-modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:999;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.picker-modal{width:100%;max-width:var(--app-max-width);max-height:80vh;background:#fff;border-radius:12px 12px 0 0;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.picker-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.picker-cancel-btn{background:none;border:none;color:#666;font-size:14px;padding:4px 0;cursor:pointer}.picker-title{font-size:16px;font-weight:600;color:#1a1a1a;margin:0}.picker-search{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.picker-search-input{flex:1;height:36px;padding:0 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s}.picker-search-input:focus{border-color:#1677ff}.picker-search-btn{height:36px;padding:0 16px;background:#1677ff;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.picker-search-btn:active{background:#0958d9}.picker-list{flex:1;overflow-y:auto;padding:0 16px 16px}.picker-loading,.picker-empty{text-align:center;padding:32px 16px;color:#999;font-size:14px}.picker-item{padding:14px 12px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .2s}.picker-item:last-child{border-bottom:none}.picker-item:active{background:#f5f5f5}.picker-item-main{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.picker-item-label{font-size:15px;font-weight:500;color:#1a1a1a;flex:1}.picker-item-value{font-size:13px;color:#999;flex-shrink:0;margin-left:8px}.picker-item-extra{display:flex;gap:12px}.picker-item-extra-text{font-size:12px;color:#999}.autocomplete-wrap{position:relative;width:100%}.autocomplete-input{width:100%;height:44px;border:1.5px solid #e8e8e8;border-radius:10px;padding:0 12px;font-size:15px;color:#1a1a1a;background:#fff;outline:none;transition:border-color .2s}.autocomplete-input:focus{border-color:#1677ff}.autocomplete-input:disabled{background:#f5f5f5;color:#999}.autocomplete-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;background:#fff;border-radius:10px;box-shadow:0 4px 16px #0000001f;z-index:200;-webkit-overflow-scrolling:touch}.autocomplete-loading,.autocomplete-empty{padding:14px;text-align:center;font-size:13px;color:#999}.autocomplete-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;border-bottom:1px solid #f5f5f5;transition:background .15s;-webkit-tap-highlight-color:transparent}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:active{background:#f0f5ff}.autocomplete-item-name{font-size:14px;color:#1a1a1a;font-weight:500}.autocomplete-item-code{font-size:12px;color:#999;font-family:monospace;background:#f5f5f5;padding:2px 6px;border-radius:4px}.inbound-page{min-height:100vh;background:#f5f5f5;padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 88px)}.form-section{margin:12px 16px;padding:16px;background:white;border-radius:12px;box-shadow:0 2px 8px #00000014}.form-item{margin-bottom:12px}.form-item:last-child{margin-bottom:0}.form-label{display:block;font-size:13px;color:#999;margin-bottom:4px}.form-input{width:100%;padding:8px 12px;border:1px solid #e8e8e8;border-radius:8px;font-size:14px;color:#333;background:#f9f9f9;box-sizing:border-box}.form-input:focus{outline:none;border-color:#1677ff;background:white}.lines-section{padding:0 16px}.section-header{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0}.inbound-page .add-btn{padding:6px 12px;background:#1677ff;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.inbound-page .add-btn:active{background:#0958d8}.line-card{margin-bottom:12px}.line-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.line-index{font-size:14px;font-weight:500;color:#333}.remove-btn{background:none;border:none;cursor:pointer;padding:4px}.form-actions{position:fixed;bottom:calc(var(--tabbar-height) + var(--safe-bottom));left:0;right:0;padding:12px 16px;background:white;box-shadow:0 -2px 8px #00000014;z-index:100}.arrival-scan{padding-top:0}.as-muted{margin:0;font-size:var(--fs-sm);color:var(--text-tertiary);line-height:1.6}.as-steps{display:flex;align-items:center;gap:var(--sp-1);margin:var(--sp-3) 0}.as-step{display:flex;align-items:center;gap:var(--sp-1);flex-shrink:0;font-size:var(--fs-xs);color:var(--text-disabled)}.as-step__dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--r-full);background:var(--border);color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.as-step.is-active{color:var(--brand-600)}.as-step.is-active .as-step__dot{background:var(--brand-500);color:var(--text-inverse)}.as-step.is-done{color:var(--success-text)}.as-step.is-done .as-step__dot{background:var(--success-500);color:var(--text-inverse)}.as-step__line{flex:1;min-width:8px;height:1px;background:var(--border)}.as-step__line.is-done{background:var(--success-500)}.as-card{padding:var(--sp-4);margin-bottom:var(--sp-3)}.as-card__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--sp-2)}.as-loading{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--brand-500)}.as-mt{margin-top:var(--sp-3)}.as-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.as-head__code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);word-break:break-all}.as-kv{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary)}.as-alert{margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--danger-100);color:var(--danger-text);font-size:var(--fs-sm);line-height:1.6}.as-stepqty{display:flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-3);flex-wrap:wrap}.as-qtybtn{min-width:32px;min-height:32px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-card);color:var(--text-primary);font-size:var(--fs-md);line-height:1;cursor:pointer}.as-qtybtn:active{background:var(--bg-muted)}.as-stepqty .as-qtyinput,.as-line__op .as-qtyinput{width:52px;min-height:32px;padding:0 var(--sp-1);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-card);color:var(--text-primary);font-size:var(--fs-sm);text-align:center;box-sizing:border-box}.as-line__op .as-qtyinput--wide{width:72px;min-height:36px;font-size:var(--fs-md);font-weight:var(--fw-semibold)}.as-linkbtn{margin-left:auto;border:none;background:transparent;color:var(--brand-500);font-size:var(--fs-sm);cursor:pointer}.as-lines{margin-bottom:var(--sp-3)}.as-lines__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary)}.as-lines__head b{color:var(--text-primary);font-size:var(--fs-md)}.as-lines__head b.is-over{color:var(--danger-500)}.as-line{padding:var(--sp-3);margin-bottom:var(--sp-2);border-left:3px solid transparent}.as-line.is-hit{border-left-color:var(--brand-500)}.as-line.is-over{border-left-color:var(--danger-500);background:var(--danger-100)}.as-line__top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.as-line__name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);word-break:break-all}.as-line__sub{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary);display:flex;flex-wrap:wrap;gap:var(--sp-1)}.as-line__nums{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary)}.as-line__nums b{color:var(--text-primary)}.as-line__op{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3)}.as-unit{font-size:var(--fs-xs);color:var(--text-tertiary)}.as-line__batch{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2)}.as-line__batch .as-batchinput{flex:1;min-width:0;min-height:36px;padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-card);color:var(--text-primary);font-size:var(--fs-sm);box-sizing:border-box}.as-line__batchwarn{font-size:var(--fs-xs);color:var(--danger-text);white-space:nowrap}.as-line__warn{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--danger-text)}.as-target{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-muted);border-left:3px solid var(--brand-500)}.as-target__name{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--brand-600);word-break:break-all}.as-target__ok{font-size:var(--fs-sm);color:var(--success-text)}.as-line--pick{cursor:pointer}.as-line--pick.is-active{border-left-color:var(--brand-500);box-shadow:0 0 0 1px var(--brand-500)}.as-line--pick.is-waitpos{border-left-color:var(--danger-500)}.as-line__hint{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-tertiary)}.as-done{margin-top:var(--sp-6);text-align:center;padding:var(--sp-6) var(--sp-4)}.as-done__icon{color:var(--success-500)}.as-done__title{margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.as-done__ops{display:flex;gap:var(--sp-2);margin-top:var(--sp-5)}.as-done__ops>*{flex:1}.outbound-page{min-height:100vh;background:#f5f5f5;padding-bottom:calc(var(--tabbar-height) + var(--safe-bottom) + 88px)}.form-section{margin:12px 16px;padding:16px;background:white;border-radius:12px;box-shadow:0 2px 8px #00000014}.form-item{margin-bottom:12px}.form-item:last-child{margin-bottom:0}.form-label{display:block;font-size:13px;color:#999;margin-bottom:4px}.form-input{width:100%;padding:8px 12px;border:1px solid #e8e8e8;border-radius:8px;font-size:14px;color:#333;background:#f9f9f9;box-sizing:border-box}.form-input:focus{outline:none;border-color:#1677ff;background:white}.lines-section{padding:0 16px}.section-header{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0}.outbound-page .add-btn{padding:6px 12px;background:#1677ff;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.outbound-page .add-btn:active{background:#0958d8}.line-card{margin-bottom:12px}.line-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.line-index{font-size:14px;font-weight:500;color:#333}.remove-btn{background:none;border:none;cursor:pointer;padding:4px}.form-actions{position:fixed;bottom:calc(var(--tabbar-height) + var(--safe-bottom));left:0;right:0;padding:12px 16px;background:white;box-shadow:0 -2px 8px #00000014;z-index:100}.issue-scan{padding-top:0}.is-card{padding:var(--sp-4);margin-bottom:var(--sp-3)}.is-card__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--sp-2)}.is-muted{margin:0;font-size:var(--fs-sm);color:var(--text-tertiary);line-height:1.6}.is-mt{margin-top:var(--sp-3)}.is-loading{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--text-tertiary);text-align:center}.is-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.is-head__code{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.is-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap}.is-lines{margin-top:var(--sp-1)}.is-lines__head{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm);color:var(--text-secondary);margin:0 var(--sp-1) var(--sp-2)}.is-task{display:block;width:100%;text-align:left;padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2);border:1px solid var(--border);cursor:pointer}.is-task__top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.is-task__name{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-primary)}.is-task__sub{display:flex;gap:var(--sp-1);font-size:var(--fs-xs);color:var(--text-tertiary);margin:var(--sp-1) 0 var(--sp-2)}.is-task__qty{font-size:var(--fs-xs);color:var(--text-tertiary);white-space:nowrap}.box-trace-page{min-height:100vh;background:#f4f6f9;padding-bottom:24px}.bt-search{display:flex;align-items:center;gap:8px;padding:12px 16px 6px}.bt-search .form-input{flex:1;min-width:0}.bt-btn{display:flex;align-items:center;gap:4px;height:36px;padding:0 12px;border-radius:6px;border:1px solid #dfe6f0;background:#fff;color:#3c4a5a;font-size:13px;cursor:pointer;white-space:nowrap}.bt-btn-primary{background:#1a73e8;border-color:#1a73e8;color:#fff}.bt-btn:disabled{opacity:.6;cursor:default}.bt-tip{padding:0 16px 10px;font-size:12px;color:#7a8699;line-height:1.6}.bt-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:40px 0;color:#7a8699;font-size:13px}.bt-empty{display:flex;flex-direction:column;align-items:center;padding:56px 0;color:#8a94a6;font-size:13px}.bt-empty p{margin:12px 0 0}.bt-body{padding:0 16px}.bt-card{background:#fff;border:1px solid #e6ebf2;border-radius:10px;padding:12px 14px;margin-bottom:12px;box-shadow:0 1px 3px #18274b0a}.bt-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bt-card-title{font-size:14px;font-weight:600;color:#2b3546}.bt-card-title:before{content:"";display:inline-block;width:3px;height:13px;background:#1a73e8;border-radius:2px;margin-right:7px;vertical-align:-2px}.bt-tag{font-size:12px;padding:2px 9px;border-radius:10px;background:#eef2f7;color:#5f6b7a}.bt-tag.ok{background:#e8f5e9;color:#3b6d11}.bt-tag.done{background:#eaf1fd;color:#1a56c4}.bt-tag.bad{background:#fdecec;color:#a32d2d}.bt-box-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bt-box-info{flex:1;min-width:0}.bt-box-code{font-size:15px;font-weight:600;color:#1f2937;word-break:break-all;margin-bottom:8px}.bt-box-qr{flex:0 0 auto;max-width:110px}.bt-box-qr .qr-display-caption,.bt-box-qr .qr-display-content{max-width:110px;word-break:break-all;font-size:10px;line-height:1.4}.bt-box-qr .qr-display-content{display:none}.bt-box-qr img.qr-display-img{width:92px;height:92px}.bt-kv{display:flex;align-items:baseline;font-size:13px;padding:4px 0}.bt-kv>span{flex:0 0 96px;color:#7a8699}.bt-kv>b{flex:1;font-weight:500;color:#2b3546;word-break:break-all}.bt-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #f0f3f7}.bt-line:first-of-type{border-top:none}.bt-line-main{flex:1;min-width:0}.bt-line-name{font-size:13px;color:#2b3546;font-weight:500;word-break:break-all}.bt-line-sub{font-size:11px;color:#9aa4b2;margin-top:2px}.bt-line-meta{font-size:11px;color:#7a8699;margin-top:2px}.bt-line-qty{flex:0 0 auto;text-align:right}.bt-line-qty b{display:block;font-size:15px;color:#1f2937}.bt-line-qty span{font-size:11px;color:#9aa4b2}.bt-warn{color:#d4380d}.bt-none{font-size:12px;color:#8a94a6;padding:4px 0 2px;line-height:1.6}.bt-note{font-size:12px;color:#8a6d3b;background:#fdf8ec;border:1px solid #f3e6c9;border-radius:6px;padding:6px 9px;margin-bottom:8px;line-height:1.6}.bt-sub{border-top:1px dashed #e8edf4;margin-top:8px;padding-top:8px}.bt-sub-title{font-size:12px;color:#5f6b7a;font-weight:600;margin-bottom:2px}.bt-progress-wrap{margin:10px 0 4px}.bt-progress-bar{height:7px;background:#eef1f6;border-radius:4px;overflow:hidden}.bt-progress-inner{height:100%;background:#1a73e8;border-radius:4px;transition:width .3s}.bt-progress-text{font-size:12px;color:#5f6b7a;margin-top:5px}.bt-metrics{display:flex;gap:20px;padding:6px 0 2px}.bt-metric span{display:block;font-size:16px;font-weight:600;color:#1f2937}.bt-metric i{display:block;font-style:normal;font-size:11px;color:#8a94a6;margin-top:2px}.sales-dashboard{padding:16px 16px 0;max-width:var(--app-max-width);margin:0 auto}.sales-dashboard.page-enter{animation:slideUp .3s ease-out}.sales-dashboard .page-header{margin-bottom:20px}.sales-dashboard .page-header h1{font-size:22px;font-weight:700;color:#1a1a1a;margin:0}.stats-section{margin-bottom:24px}.section-title{font-size:16px;font-weight:600;color:#1a1a1a;margin:0 0 16px}.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.sales-dashboard .stat-card{border-radius:12px;padding:14px 8px;text-align:center}.sales-dashboard .stat-card .stat-value{font-size:20px;font-weight:700;color:#fff;margin-bottom:4px}.sales-dashboard .stat-card .stat-label{font-size:11px;color:#ffffffe6}.sales-dashboard .stat-card.stat-orders{background:linear-gradient(135deg,#1677ff 0%,#69b1ff 100%)}.sales-dashboard .stat-card.stat-pending{background:linear-gradient(135deg,#faad14 0%,#ffd591 100%)}.sales-dashboard .stat-card.stat-done{background:linear-gradient(135deg,#52c41a 0%,#95de64 100%)}.sales-dashboard .stat-card.stat-amount{background:linear-gradient(135deg,#722ed1 0%,#b37feb 100%)}.quick-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.quick-card{background:#fff;border-radius:14px;padding:14px 10px;box-shadow:0 2px 8px #0000000f;cursor:pointer;text-align:center;transition:transform .15s,box-shadow .2s}.quick-card:active{transform:scale(.97);box-shadow:0 1px 4px #00000014}.quick-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto 10px}.quick-content h3{font-size:14px;font-weight:600;color:#1a1a1a;margin:0 0 4px}.quick-content p{font-size:11px;color:#999;margin:0}.sales-dashboard .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#999}.sales-dashboard .notice-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#1677ff;border-radius:50%;animation:spin .8s linear infinite}.sales-orders-page{display:flex;flex-direction:column;height:100%;background:#f5f7fa}.sales-orders-page .page-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#fff;border-bottom:1px solid #f0f0f0;flex-shrink:0}.sales-orders-page .page-header h1{font-size:17px;font-weight:600;color:#1a1a1a;margin:0}.search-bar{padding:10px 12px;background:#fff;border-bottom:1px solid #f0f0f0;flex-shrink:0}.search-input-wrap{position:relative;background:#f5f7fa;border-radius:10px;overflow:hidden}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%)}.search-input{width:100%;height:42px;border:none;background:transparent;padding:0 36px 0 38px;font-size:15px;outline:none;color:#1a1a1a;box-sizing:border-box}.search-input::placeholder{color:#bbb}.search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:#bbb;font-size:18px;cursor:pointer;line-height:1}.tab-bar{display:flex;background:#fff;padding:0 12px;border-bottom:1px solid #f0f0f0;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab-item{display:flex;align-items:center;gap:4px;padding:12px 14px;border:none;background:transparent;font-size:14px;color:#666;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;flex-shrink:0;white-space:nowrap}.tab-item.active{color:#1677ff;font-weight:600;border-bottom-color:#1677ff}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;background:#f0f0f0;border-radius:9px;font-size:11px;padding:0 4px;color:#999}.tab-item.active .tab-count{background:#e8f4ff;color:#1677ff}.order-list-container{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.order-item{cursor:pointer;transition:all .15s;padding:14px;border-radius:14px;background:#fff;box-shadow:0 2px 8px #0000000f}.order-item:active{transform:scale(.98)}.oi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.oi-no{font-size:14px;font-weight:600;color:#1a1a1a}.sales-orders-page .tag{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.sales-orders-page .tag-gray{background:#f0f0f0;color:#999}.sales-orders-page .tag-blue{background:#e6f7ff;color:#1677ff}.sales-orders-page .tag-green{background:#f6ffed;color:#52c41a}.sales-orders-page .tag-orange{background:#fff7e6;color:#faad14}.sales-orders-page .tag-red{background:#fff1f0;color:#ff4d4f}.oi-customer{font-size:15px;font-weight:500;color:#1a1a1a;margin:0 0 10px}.oi-info{display:flex;gap:16px;margin-bottom:10px}.oi-info span{font-size:13px;color:#888}.oi-footer{display:flex;align-items:center;justify-content:space-between}.oi-amount{font-size:16px;font-weight:700;color:#faad14}.oi-date{font-size:12px;color:#bbb}.sales-orders-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#999}.sales-orders-page .empty-state p{margin-top:12px;font-size:14px}.sales-orders-page .notice-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#1677ff;border-radius:50%;animation:spin .8s linear infinite}.page-header{display:flex;align-items:center;height:48px;padding:0 12px 0 8px;background:#fff;border-bottom:1px solid #f0f0f0;gap:8px;padding-top:env(safe-area-inset-top,0);height:calc(48px + env(safe-area-inset-top,0))}.page-header-fixed{position:sticky;top:0;z-index:100;flex-shrink:0}.page-header-transparent{background:transparent;border-bottom-color:transparent;color:#fff}.page-header-transparent .page-header-title,.page-header-transparent .page-header-back{color:#fff}.page-header-transparent .page-header-back:active{background:rgba(255,255,255,.15)}.page-header-back{width:44px;height:44px;min-width:44px;border:none;background:transparent;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1a1a1a;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s}.page-header-back:active{background:rgba(0,0,0,.05)}.page-header-title{flex:1;font-size:17px;font-weight:600;color:#1a1a1a;text-align:center;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}.page-header-right{display:flex;align-items:center;gap:4px;flex-shrink:0;min-height:44px}.page-header:not(:has(.page-header-right)) .page-header-title{margin-right:44px}.sales-order-detail{padding:16px 16px 80px;max-width:var(--app-max-width);margin:0 auto;background:#f5f7fa;min-height:100vh}.sales-order-detail.page-enter{animation:slideUp .3s ease-out}.detail-header{background:#fff;border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:0 2px 8px #0000000f}.dh-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dh-no{font-size:16px;font-weight:700;color:#1a1a1a}.dh-customer{font-size:14px;color:#666;margin-bottom:8px}.dh-meta{display:flex;gap:16px;font-size:13px;color:#999}.sales-order-detail .tag{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.sales-order-detail .tag-gray{background:#f0f0f0;color:#999}.sales-order-detail .tag-blue{background:#e6f7ff;color:#1677ff}.sales-order-detail .tag-green{background:#f6ffed;color:#52c41a}.sales-order-detail .tag-orange{background:#fff7e6;color:#faad14}.sales-order-detail .tag-red{background:#fff1f0;color:#ff4d4f}.info-section{background:#fff;border-radius:14px;padding:16px;margin-bottom:12px;box-shadow:0 2px 8px #0000000f}.info-section .section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #f0f0f0}.info-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.info-row .label{color:#999}.info-row .value{color:#1a1a1a;font-weight:500;text-align:right}.info-row.amount .value{color:#faad14;font-weight:700;font-size:16px}.detail-section{margin-bottom:12px}.detail-section .section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:0 0 12px;padding-left:4px}.detail-item{background:#fff;border-radius:12px;padding:14px;margin-bottom:10px;box-shadow:0 2px 8px #0000000f}.di-product{font-size:15px;font-weight:600;color:#1a1a1a;margin-bottom:4px}.di-spec{font-size:13px;color:#999;margin-bottom:10px}.di-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}.di-info .item{display:flex;flex-direction:column}.di-info .item .label{color:#999;font-size:12px;margin-bottom:2px}.di-info .item .value{color:#1a1a1a;font-weight:500}.di-info .item.amount .value{color:#faad14;font-weight:700}.sales-order-detail .empty-state{text-align:center;padding:40px 20px;color:#999;font-size:14px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px}.sales-order-detail .notice-spinner{width:32px;height:32px;border:3px solid #f0f0f0;border-top-color:#1677ff;border-radius:50%;animation:spin .8s linear infinite}.loading-state p{margin-top:12px;font-size:14px;color:#999}.pa-hint{margin-left:8px;font-size:11px;font-weight:400;color:#1677ff}.pa-block{margin-top:10px;padding-top:8px;border-top:1px dashed #f0f0f0}.pa-block__title{font-size:11px;color:#999;margin-bottom:6px}.pa-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.pa-cell{background:#fafbfc;border-radius:6px;padding:5px 8px;font-size:11px;color:#999}.pa-cell b{display:block;color:#333;font-size:12px;margin-top:1px;word-break:break-all}.pa-edit-btn{margin-top:8px;width:100%;padding:7px 0;border-radius:8px;border:1px solid #bcdcff;background:#e8f4ff;color:#1677ff;font-size:12px;font-weight:600}.pa-form{display:flex;flex-direction:column;gap:8px}.pa-row{display:flex;align-items:center;gap:8px}.pa-row label{flex:none;width:88px;font-size:12px;color:#666}.pa-row input{flex:1;padding:7px 10px;border:1px solid #dcdfe6;border-radius:8px;font-size:13px}.pa-actions{display:flex;gap:10px;justify-content:flex-end}.pa-btn{padding:6px 16px;border-radius:8px;border:1px solid #dcdfe6;background:#fff;color:#666;font-size:13px}.pa-btn--primary{border-color:#1677ff;background:#1677ff;color:#fff;font-weight:600}.pa-btn:disabled{opacity:.6}.sales-clients-page{padding:16px 16px 0;max-width:var(--app-max-width);margin:0 auto;background:#f5f7fa;min-height:100vh}.sales-clients-page.page-enter{animation:slideUp .3s ease-out}.sales-clients-page .page-header h1{font-size:18px;font-weight:700;color:#1a1a1a;margin:0 0 12px}.client-tabs{display:flex;gap:8px;margin-bottom:12px}.client-tab-item{padding:6px 16px;border-radius:20px;font-size:13px;cursor:pointer;background:#fff;color:#64748b;border:none;transition:all .15s}.client-tab-item.active{background:#2563EB;color:#fff;font-weight:600}.client-search{width:100%;padding:10px 14px;border-radius:8px;border:1px solid #E2E8F0;font-size:14px;margin-bottom:12px;outline:none;box-sizing:border-box}.client-search:focus{border-color:#2563eb}.client-item{background:#fff;border-radius:10px;padding:14px;margin-bottom:10px;box-shadow:0 1px 3px #0000000f;cursor:pointer;transition:transform .15s}.client-item:active{transform:scale(.98)}.ci-header{display:flex;justify-content:space-between;align-items:center}.ci-name{font-weight:700;font-size:15px;color:#1a1a1a}.ci-code{color:#94a3b8;font-size:12px;margin-top:2px}.ci-tags{display:flex;gap:6px;align-items:center}.ci-tag{padding:1px 6px;border-radius:3px;font-size:11px}.ci-tag-pool{background:#FEF3C7;color:#b45309}.ci-tag-level{background:#EFF6FF;color:#2563eb;font-weight:600}.ci-contact{color:#64748b;font-size:13px;margin-top:8px}.ci-footer{margin-top:6px;display:flex;justify-content:space-between;align-items:center}.ci-stats{font-size:12px;color:#94a3b8}.ci-owner{font-size:12px;color:#64748b}.ci-detail{margin-top:12px;padding-top:12px;border-top:1px solid #F1F5F9}.ci-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;color:#475569}.sales-clients-page .empty-state{text-align:center;color:#94a3b8;padding:40px;font-size:14px}.sales-leads-page{padding:16px 16px 0;max-width:var(--app-max-width);margin:0 auto;background:#f5f7fa;min-height:100vh}.sales-leads-page.page-enter{animation:slideUp .3s ease-out}.sales-leads-page .page-header h1{font-size:18px;font-weight:700;color:#1a1a1a;margin:0 0 12px}.lead-item{background:#fff;border-radius:10px;padding:14px;margin-bottom:10px;box-shadow:0 1px 3px #0000000f}.lh-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.lh-name{font-weight:700;font-size:15px;color:#1a1a1a}.lh-status{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;background:#e6f7ff;color:#1677ff}.lh-client{color:#64748b;font-size:13px;margin-bottom:6px}.lh-meta{display:flex;justify-content:space-between;font-size:12px;color:#94a3b8}.sales-leads-page .empty-state{text-align:center;color:#94a3b8;padding:40px;font-size:14px}.sales-pool-page{padding:16px 16px 0;max-width:var(--app-max-width);margin:0 auto;background:#f5f7fa;min-height:100vh}.sales-pool-page.page-enter{animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.sales-pool-page .page-header h1{font-size:18px;font-weight:700;color:#1a1a1a;margin:0 0 12px}.pool-item{background:#fff;border-radius:10px;padding:14px;margin-bottom:10px;box-shadow:0 1px 3px #0000000f;display:flex;justify-content:space-between;align-items:center}.pool-info{flex:1}.pool-name{font-weight:700;font-size:15px;color:#1a1a1a}.pool-meta{color:#94a3b8;font-size:12px;margin-top:4px}.pool-sub{color:#94a3b8;font-size:11px;margin-top:2px}.pool-claim-btn{background:#2563EB;color:#fff;border:none;border-radius:6px;padding:8px 16px;font-size:13px;cursor:pointer;flex-shrink:0}.pool-claim-btn:active{opacity:.8}.sales-pool-page .empty-state{text-align:center;color:#94a3b8;padding:40px;font-size:14px}.quality-page{min-height:100%;background:var(--bg-page);padding-bottom:var(--content-gap);box-sizing:border-box}.quality-page__body{margin:-18px var(--page-pad) 0;position:relative}.quality-page .qc-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.quality-page .qc-entry{display:flex;align-items:center;gap:var(--sp-3);min-height:68px;padding:var(--sp-3);border:none;border-radius:var(--r-lg);background:var(--bg-card);box-shadow:var(--sh-1);font:inherit;text-align:left;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out)}.quality-page .qc-entry:active{transform:scale(.98);background:var(--brand-50)}.quality-page .qc-entry__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.quality-page .qc-entry__title{font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-page .qc-entry__sub{font-size:var(--fs-xs);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-page .quality-page__section{margin:var(--sp-5) 0 var(--sp-3)}.quality-page .quality-page__recent{padding:var(--sp-1) var(--sp-4)}.quality-page .qc-recent__row{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:var(--touch-min);padding:var(--sp-3) 0;border:none;border-bottom:1px solid var(--border-hairline);background:transparent;font:inherit;text-align:left;cursor:pointer}.quality-page .qc-recent__row:last-child{border-bottom:none}.quality-page .qc-recent__row:active{background:var(--brand-50)}.quality-page .qc-recent__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.quality-page .qc-recent__top{display:flex;align-items:center;gap:var(--sp-2)}.quality-page .qc-recent__code{flex:1;min-width:0;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-page .qc-recent__top .ui-tag{flex:none}.quality-page .qc-recent__bottom{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.quality-page .qc-recent__product{min-width:0;font-size:var(--fs-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-page .qc-recent__date{flex:none;font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.quality-page .qc-recent__go{flex:none;color:var(--text-disabled)}.quality-page .qc-chip{flex:none;width:34px;padding:3px 0;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-align:center}.quality-page .qc-chip--iqc{background:var(--brand-100);color:var(--brand-600)}.quality-page .qc-chip--ipqc{background:var(--success-100);color:var(--success-text)}.quality-page .qc-chip--oqc{background:var(--warning-100);color:var(--warning-text)}.quality-page .qc-recent-loading{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4) 0}.quality-page .qc-recent-loading .ui-skeleton:nth-child(2){width:72%}.quality-page .qc-recent-loading .ui-skeleton:nth-child(3){width:48%}.qc-list-page,.qc-form-page,.qc-detail-page{min-height:100%;box-sizing:border-box}.qc-form-page,.qc-detail-page{display:flex;flex-direction:column;padding-bottom:0}.qc-list-page{padding-bottom:var(--content-gap)}.qc-aql-field{margin-bottom:4px}.qc-aql-field .aql-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.qc-aql-field .aql-label{font-size:13px;color:#5b6573;min-width:70px}.qc-aql-field .aql-type-group{display:flex;gap:8px;flex:1}.qc-aql-field .aql-type-btn{flex:1;padding:10px 8px;border:1px solid #e3e6eb;border-radius:8px;background:#f7f9fc;color:#5b6573;font-size:14px;cursor:pointer;transition:all .15s;font-weight:500}.qc-aql-field .aql-type-btn.active{background:linear-gradient(135deg,#1677ff 0%,#4096ff 100%);color:#fff;border-color:#1677ff;box-shadow:0 2px 6px #1677ff40}.qc-aql-field .aql-type-btn:disabled{cursor:not-allowed;opacity:.6}.qc-aql-field .aql-select{padding:9px 10px;border:1px solid #e3e6eb;border-radius:8px;background:#fff;font-size:14px;min-width:90px}.qc-aql-field .aql-plan-box{background:linear-gradient(135deg,#f0f7ff 0%,#e6f0ff 100%);padding:14px;border-radius:10px;border:1px solid #d6e8ff;display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:4px}.qc-aql-field .aql-tag{display:inline-flex;align-items:center;padding:6px 12px;background:#fff;border:1px solid #1677ff;border-radius:14px;font-size:13px;color:#1677ff;font-weight:500}.qc-aql-field .aql-tag.ok{border-color:#52c41a;color:#52c41a}.qc-aql-field .aql-tag.ng{border-color:#ff4d4f;color:#ff4d4f}.qc-aql-field .aql-tag strong{margin-left:4px;font-weight:700}.qc-aql-field .aql-tip{width:100%;font-size:12px;color:#8b94a3;margin-top:6px;line-height:1.6}.qc-aql-field .aql-loading,.qc-aql-field .aql-err{font-size:13px}.qc-aql-field .aql-err{color:#ff4d4f}.qc-filter-bar{padding:14px 12px 12px;background:#fff;border-bottom:1px solid #f0f2f5;position:sticky;top:49px;z-index:9}.qc-filter-bar .filter-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;flex-wrap:wrap}.qc-filter-bar .filter-row:last-child{margin-bottom:0}.qc-filter-bar .filter-input{flex:1;min-width:110px;padding:9px 12px;border:1px solid #e3e6eb;border-radius:8px;font-size:14px;background:#f7f9fc;transition:all .15s}.qc-filter-bar .filter-input:focus{outline:none;border-color:#1677ff;background:#fff;box-shadow:0 0 0 3px #1677ff14}.qc-filter-bar .filter-sep{color:#8b94a3;font-size:12px;padding:0 2px}.qc-filter-bar .search-btn{padding:9px 22px;background:linear-gradient(135deg,#1677ff 0%,#4096ff 100%);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 2px 6px #1677ff40}.qc-filter-bar .reset-btn{padding:9px 14px;background:#f7f9fc;color:#5b6573;border:1px solid #e3e6eb;border-radius:8px;font-size:14px}.qc-line-table{padding:0 var(--sp-3) var(--sp-3)}.qc-line-card{margin-bottom:var(--sp-3);padding:var(--sp-3) var(--sp-4) var(--sp-4);background:var(--bg-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.qc-line-card__head{display:flex;align-items:center;gap:var(--sp-2)}.qc-line-card__no{flex:none;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);background:var(--brand-100);color:var(--brand-600);font-size:var(--fs-xs);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.qc-line-card__name{flex:1;min-width:0;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qc-line-card__head .ui-tag{flex:none}.qc-line-card__spec{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);line-height:1.5;color:var(--text-secondary);word-break:break-word}.qc-line-card__badge{display:inline-block;margin-right:var(--sp-1);padding:1px 6px;border-radius:var(--r-sm);background:var(--brand-100);color:var(--brand-600);font-size:var(--fs-xs);font-weight:var(--fw-regular);vertical-align:1px}.qc-line-card__label{display:flex;align-items:center;gap:var(--sp-1);margin:var(--sp-3) 0 var(--sp-1);font-size:var(--fs-sm);color:var(--text-secondary)}.qc-line-card__req{color:var(--danger-500);font-style:normal}.qc-line-card__input{flex:1;min-width:0;height:var(--touch-min);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-md);font-variant-numeric:tabular-nums;background:var(--bg-card);color:var(--text-primary)}.qc-line-card__input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50)}.qc-line-card__input:read-only{background:var(--bg-muted);color:var(--text-secondary)}.qc-line-card__value{display:flex;gap:var(--sp-2);align-items:stretch}.qc-line-card__scale{flex:none;min-width:88px;padding:0 var(--sp-3);border:1px solid var(--brand-200);border-radius:var(--r-md);background:var(--brand-50);color:var(--brand-600);font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap}.qc-line-card__scale:disabled{opacity:.6}.qc-line-card__textarea{width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-md);font-family:inherit;line-height:1.5;resize:vertical;box-sizing:border-box;background:var(--bg-card);color:var(--text-primary)}.qc-line-card__textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50)}.qc-line-card__textarea:read-only{background:var(--bg-muted);color:var(--text-secondary)}.qc-line-card__textarea--optional{margin-top:var(--sp-2);min-height:40px;font-size:var(--fs-sm)}.qc-line-card__judge{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.qc-judge{flex:1;min-height:var(--touch-min);border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--bg-muted);color:var(--text-secondary);font-size:var(--fs-md);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--dur-fast) var(--ease-out)}.qc-judge:active{transform:scale(.98)}.qc-judge:disabled{opacity:.6;cursor:default}.qc-judge--pass.is-active{border-color:var(--success-500);background:var(--success-100);color:var(--success-text)}.qc-judge--fail.is-active{border-color:var(--danger-500);background:var(--danger-100);color:var(--danger-text)}.qc-line-card__defects{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--danger-text)}.qc-line-card__save{width:100%;margin-top:var(--sp-3)}.qc-step-block{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--brand-200);border-radius:var(--r-md);background:var(--brand-50)}.qc-step-block__title{margin-bottom:var(--sp-2);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--brand-600)}.qc-step-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px dashed var(--border)}.qc-step-row:first-of-type{border-top:none}.qc-step-row__no{flex:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--brand-500);color:#fff;font-size:var(--fs-xs);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.qc-step-row__name{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qc-step-row__req{margin-left:2px;color:var(--danger-500);font-style:normal}.qc-step-row__input{flex:none;width:46%;display:flex;align-items:center;gap:var(--sp-1)}.qc-step-row__num{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-1)}.qc-step-row__input .qc-line-card__input{width:100%;height:38px;padding:0 var(--sp-2)}.qc-step-row__calc{flex:1;text-align:right;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--brand-500);font-variant-numeric:tabular-nums}.qc-step-row__calc em{margin-left:2px;font-size:var(--fs-xs);font-style:normal;color:var(--text-secondary)}.qc-step-row__unit{flex:none;font-size:var(--fs-xs);font-style:normal;color:var(--text-secondary)}.qc-step-row__scale{flex:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--brand-200);border-radius:var(--r-sm);background:var(--bg-card);color:var(--brand-600);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.qc-step-row__scale:disabled{opacity:.6}.qc-step-block__save{width:100%;margin-top:var(--sp-3)}.qc-list-page .list-card{margin:0 var(--sp-3) var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-3);background:var(--bg-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);box-shadow:var(--sh-1);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out)}.qc-list-page .list-card:active{transform:scale(.99)}.qc-list-page .list-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3);gap:var(--sp-2)}.qc-list-page .list-card-code{font-weight:var(--fw-semibold);font-size:var(--fs-md);color:var(--brand-600);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qc-list-page .list-card-top .ui-tag{flex:none}.qc-list-page .list-card-body{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3);font-size:var(--fs-sm);color:var(--text-secondary)}.qc-list-page .list-card-info-row{display:flex;gap:var(--sp-2)}.qc-list-page .list-card-info-label{color:var(--text-tertiary);min-width:48px;flex-shrink:0}.qc-list-page .list-card-info-value{color:var(--text-primary);flex:1;font-weight:var(--fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qc-list-page .list-card-stats{display:flex;gap:var(--sp-4);align-items:center;padding-top:var(--sp-3);border-top:1px solid var(--border-hairline);font-size:var(--fs-sm);color:var(--text-secondary);flex-wrap:wrap}.qc-list-page .list-card-stats strong{font-weight:var(--fw-semibold);color:var(--text-primary);font-variant-numeric:tabular-nums}.qc-list-page .list-card-stats .ok strong{color:var(--success-text)}.qc-list-page .list-card-stats .ng strong{color:var(--danger-text)}.qc-list-page .list-card-actions{margin-left:auto;display:flex;gap:var(--sp-2)}.qc-list-page .list-card-actions button{min-height:36px;padding:0 var(--sp-3);border:1px solid var(--border-strong);background:var(--bg-card);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer}.qc-list-page .list-card-actions button.danger{color:var(--danger-text);border-color:var(--danger-500)}.qc-list-page .aql-summary{font-size:var(--fs-xs);padding:3px var(--sp-3);background:var(--brand-50);color:var(--brand-600);border-radius:var(--r-full);font-weight:var(--fw-medium)}.qc-list-page .qc-list-loading,.qc-list-page .qc-list-empty{margin:0 var(--sp-3) var(--sp-3)}.qc-list-page .qc-list-loading{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4)}.qc-list-page .qc-list-loading .ui-skeleton:nth-child(2){width:62%}.qc-list-page .qc-list-loading .ui-skeleton:nth-child(3){width:38%}.qc-form-page .form-section,.qc-detail-page .form-section{background:#fff;margin:10px 12px;padding:16px;border-radius:12px;box-shadow:0 1px 3px #0000000a;border:1px solid #f0f2f5}.qc-form-page .form-section-title,.qc-detail-page .form-section-title{font-size:15px;font-weight:600;margin:0 0 14px;color:#303740;display:flex;align-items:center;gap:8px}.qc-form-page .form-section-title:before,.qc-detail-page .form-section-title:before{content:"";width:3px;height:14px;background:linear-gradient(180deg,var(--brand-500) 0%,var(--brand-400) 100%);border-radius:2px}.qc-form-page .form-item{margin-bottom:14px}.qc-form-page .form-item:last-child{margin-bottom:0}.qc-form-page .form-label{display:block;font-size:13px;color:#5b6573;margin-bottom:6px;font-weight:500}.qc-form-page .form-label .required{color:#ff4d4f}.qc-form-page .form-input{width:100%;padding:10px 12px;border:1px solid #e3e6eb;border-radius:8px;font-size:14px;box-sizing:border-box;background:#f7f9fc;transition:all .15s}.qc-form-page .form-input:focus{outline:none;border-color:#1677ff;background:#fff;box-shadow:0 0 0 3px #1677ff14}.qc-form-page .form-textarea{width:100%;padding:10px 12px;border:1px solid #e3e6eb;border-radius:8px;font-size:14px;box-sizing:border-box;resize:vertical;background:#f7f9fc;font-family:inherit}.qc-form-page .input-with-btn{display:flex;gap:8px}.qc-form-page .input-with-btn .form-input{flex:1}.qc-form-page .scan-btn{padding:0 14px;border:1px solid #e3e6eb;background:#fff;border-radius:8px;color:#1677ff;font-weight:500}.qc-detail-page .qc-sum{margin:var(--sp-3) var(--sp-3) 0;padding:var(--sp-4);background:var(--bg-card);border:1px solid var(--border-hairline);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.qc-detail-page .qc-sum__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qc-detail-page .qc-sum__sub{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qc-detail-page .qc-sum__code{margin-left:var(--sp-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--text-tertiary)}.qc-detail-page .qc-sum__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);margin-top:var(--sp-3)}.qc-detail-page .qc-sum__stats .ui-stat{align-items:center;padding:var(--sp-2);background:var(--bg-muted);box-shadow:none}.qc-detail-page .qc-num--ok{color:var(--success-text)}.qc-detail-page .qc-num--ng{color:var(--danger-text)}.qc-detail-page .qc-sum__tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3)}.qc-detail-page .qc-sum__aql{margin:var(--sp-3) 0 0;padding:var(--sp-2) var(--sp-3);background:var(--brand-50);border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--brand-600)}.qc-detail-page .qc-sum__toggle{display:flex;align-items:center;justify-content:center;gap:var(--sp-1);width:100%;min-height:var(--touch-min);margin-top:var(--sp-2);padding:0;background:none;border:none;border-top:1px solid var(--border-hairline);font:inherit;font-size:var(--fs-sm);color:var(--brand-500);cursor:pointer}.qc-detail-page .qc-sum__chev{display:flex;transition:transform var(--dur-base) var(--ease-out)}.qc-detail-page .qc-sum__chev.is-open{transform:rotate(180deg)}.qc-detail-page .qc-more{margin:0}.qc-detail-page .qc-more .ui-kv{padding:var(--sp-2) 0}.qc-detail-page .aql-warn{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-3) var(--sp-3) 0;padding:var(--sp-3);background:var(--st-abnormal-bg);border:1px solid var(--st-abnormal-border);border-radius:var(--r-md);color:var(--danger-text);font-size:var(--fs-sm)}.qc-detail-page .aql-warn svg{flex:none}.qc-detail-page .qc-actionbar__progress{padding-top:var(--sp-1)}.page-header{display:flex;align-items:center;padding:12px;background:#fff;border-bottom:1px solid #f0f2f5;position:sticky;top:0;z-index:10;height:49px;box-sizing:border-box}.page-header h1{flex:1;font-size:17px;font-weight:600;margin:0;text-align:center;color:#303740}.page-header .back-btn,.page-header .add-btn{background:transparent;border:none;color:#1677ff;font-size:14px;cursor:pointer;padding:4px 8px;font-weight:500}.page-header .add-btn{background:linear-gradient(135deg,#1677ff 0%,#4096ff 100%);color:#fff;padding:6px 14px;border-radius:8px;box-shadow:0 2px 6px #1677ff40}.form-tip{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);background:var(--warning-100);border:1px solid var(--st-pause-border);border-radius:var(--r-md);color:var(--warning-text);font-size:var(--fs-sm);line-height:1.5}.qc-line-hint{margin:0 0 var(--sp-2);font-size:var(--fs-xs);color:var(--text-tertiary)}.empty-state{padding:40px 20px;text-align:center;color:#8b94a3;font-size:14px}.empty-state p{margin:4px 0}.empty-state p:first-child{font-size:15px;color:#5b6573}.loading{text-align:center;padding:40px 20px;color:#8b94a3;font-size:14px}.scale-pick-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:2000;display:flex;align-items:flex-end;justify-content:center}.scale-pick-modal{width:100%;max-height:60vh;overflow-y:auto;background:#fff;border-radius:16px 16px 0 0;padding:16px}.scale-pick-title{font-size:15px;font-weight:650;margin-bottom:10px;color:#1f2329}.scale-pick-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border:1px solid #ebeef5;border-radius:10px;margin-bottom:8px;cursor:pointer}.scale-pick-item:active{background:#f0f7ff}.scale-pick-name{font-weight:600;font-size:14px;color:#1f2329}.scale-pick-sub{font-size:12px;color:#999}.qc-iqc-list-page{height:100%;overflow-y:auto;background:#f5f7fa;-webkit-overflow-scrolling:touch}.filter-section{display:flex;gap:8px;padding:12px;background:#fff;border-bottom:1px solid #f0f0f0;flex-wrap:wrap}.filter-input{flex:1;min-width:100px;height:42px;padding:0 12px;border:1.5px solid #d9d9d9;border-radius:8px;font-size:15px;outline:none;background:#fff;-webkit-appearance:none;appearance:none}.filter-input:focus{border-color:#1677ff}.search-btn{height:42px;padding:0 18px;background:#1677ff;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;min-width:64px}.search-btn:active{background:#0958d9}.list-section{padding:12px}.loading,.empty{text-align:center;padding:40px 0;color:#999;font-size:14px}.iqc-card{background:#fff;border-radius:14px;margin-bottom:12px;padding:16px;box-shadow:0 2px 8px #0000000f;cursor:pointer;transition:transform .15s;position:relative;overflow:hidden}.iqc-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.iqc-card:active{transform:scale(.98)}.iqc-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.iqc-card-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.iqc-code{font-size:16px;font-weight:700;color:#1a1a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iqc-status-tag{font-size:12px;font-weight:500;padding:3px 10px;border-radius:10px;flex-shrink:0}.iqc-result-badge{font-size:12px;font-weight:600;padding:3px 12px;border-radius:10px;flex-shrink:0}.iqc-card-body{margin-bottom:14px;padding:12px;background:#f8f9fc;border-radius:10px}.iqc-info-row{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:14px}.iqc-info-row:last-child{margin-bottom:0}.iqc-info-label{color:#999;flex-shrink:0;font-size:13px;margin-right:2px}.iqc-info-value{color:#333;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iqc-card-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid #f0f0f0}.iqc-stats{display:flex;align-items:center;gap:6px;font-size:13px;color:#666;flex-wrap:wrap}.iqc-stat-item{white-space:nowrap}.iqc-stat-item strong{font-size:15px;font-weight:700;color:#1a1a1a}.iqc-stat-divider{color:#e0e0e0;font-weight:300}.iqc-card-actions{display:flex;gap:6px;flex-shrink:0}.iqc-action-btn{height:32px;padding:0 14px;border:1px solid #d9d9d9;border-radius:8px;background:#f5f7fa;font-size:13px;font-weight:500;color:#555;cursor:pointer;transition:all .15s;white-space:nowrap}.iqc-action-btn:active{background:#e8e8e8}.iqc-action-btn.primary{background:#1677ff;border-color:#1677ff;color:#fff}.iqc-action-btn.primary:active{background:#0958d9}.iqc-action-btn.danger{color:#ff4d4f;border-color:#ff4d4f;background:#fff1f0}.iqc-action-btn.danger:active{background:#ffd6d6}.qc-iqc-detail-page{height:100%;overflow-y:auto;background:#f5f7fa;padding-bottom:calc(80px + var(--safe-bottom));-webkit-overflow-scrolling:touch}.loading{text-align:center;padding:40px 0;color:#999;font-size:14px}.detail-header{margin:12px;padding:16px}.header-row{display:flex;align-items:center;margin-bottom:12px;font-size:14px}.header-label{color:#999;margin-right:8px;flex-shrink:0;min-width:80px}.header-value{color:#333;font-weight:500}.header-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid #f0f0f0}.header-code{font-size:16px;font-weight:700;color:#1a1a1a}.header-type-badge{font-size:12px;padding:3px 10px;background:#e6f7ff;color:#1677ff;border-radius:10px;font-weight:500}.header-status-row{display:flex;align-items:center;margin-bottom:10px;font-size:14px}.header-status{font-size:14px;font-weight:500;color:#1677ff}.header-result{font-size:14px;font-weight:600}.lines-section{padding:0 12px}.section-title{font-size:15px;font-weight:600;color:#1a1a1a;margin:16px 0 12px}.qc-iqc-detail-page .empty-state{text-align:center;padding:32px 16px;color:#999;font-size:13px;background:#fff;border-radius:12px;box-shadow:0 1px 4px #0000000f}.qc-iqc-detail-page .empty-state p:first-child{font-size:15px;margin-bottom:8px}.line-card{margin-bottom:12px;padding:14px}.line-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #f0f0f0}.line-index{font-size:14px;font-weight:600;color:#1a1a1a}.line-type{font-size:11px;padding:2px 8px;background:#e6f7ff;color:#1890ff;border-radius:4px}.line-row{display:flex;gap:12px}.line-field{margin-bottom:10px}.line-field.half{flex:1}.line-label{display:block;font-size:12px;color:#999;margin-bottom:4px}.required{color:#ff4d4f;margin-left:2px}.line-input{width:100%;height:44px;padding:0 12px;border:1.5px solid #d9d9d9;border-radius:8px;font-size:16px;outline:none;box-sizing:border-box;transition:border-color .2s;-webkit-appearance:none;appearance:none}.line-input:focus{border-color:#1677ff}.line-input[readonly]{background:#f5f5f5;color:#999}.line-footer{display:flex;justify-content:flex-end;padding-top:10px;border-top:1px solid #f0f0f0;margin-top:10px}.save-btn{height:40px;padding:0 20px;background:#1677ff;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;min-width:80px}.save-btn:active{background:#0958d9}.save-btn:disabled{background:#d9d9d9;cursor:not-allowed}.qc-iqc-detail-page .detail-footer{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--app-max-width);padding:12px 16px calc(12px + var(--safe-bottom));background:#fff;box-shadow:0 -2px 10px #00000014;display:flex;gap:12px;z-index:100}.qc-iqc-detail-page .btn,.qc-ipqc-detail-page .btn{height:48px;border:none;border-radius:10px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;flex:1}.btn-secondary{background:#f5f5f5;color:#666;border:1.5px solid #d9d9d9}.btn-secondary:active{background:#e8e8e8}.detail-section{margin:0 12px 12px;padding:16px}.quantity-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quantity-item{display:flex;flex-direction:column}.qty-label{font-size:12px;color:#999;margin-bottom:6px}.qty-input{height:36px;padding:0 10px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;outline:none;box-sizing:border-box;transition:border-color .2s}.qty-input:focus{border-color:#1677ff}.defect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.defect-item{display:flex;flex-direction:column}.defect-label{font-size:11px;color:#999;margin-bottom:6px;text-align:center}.defect-input{height:36px;padding:0 8px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;text-align:center;outline:none;box-sizing:border-box;transition:border-color .2s}.defect-input:focus{border-color:#1677ff}.rate-grid{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid #f0f0f0}.rate-item{display:flex;flex-direction:column;align-items:center}.rate-label{font-size:11px;color:#999;margin-bottom:4px}.rate-value{font-size:15px;font-weight:600;color:#333}.result-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f5f5f5}.result-row:last-child{border-bottom:none}.result-item{display:flex;flex-direction:column;flex:1}.result-label{font-size:12px;color:#999;margin-bottom:6px}.result-select{height:36px;padding:0 10px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;background:#fff;box-sizing:border-box;transition:border-color .2s}.result-select:focus{border-color:#1677ff}.result-status{font-size:16px;font-weight:600;text-align:right}.date-row{display:flex;gap:12px}.date-item{flex:1;display:flex;flex-direction:column}.date-label{font-size:12px;color:#999;margin-bottom:6px}.date-input{height:36px;padding:0 10px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;box-sizing:border-box;background:#fff;transition:border-color .2s}.date-input:focus{border-color:#1677ff}.remark-textarea{width:100%;padding:10px;border:1px solid #d9d9d9;border-radius:6px;font-size:13px;outline:none;box-sizing:border-box;resize:none;transition:border-color .2s;font-family:inherit}.remark-textarea:focus{border-color:#1677ff}.remark-textarea::placeholder{color:#bfbfbf}.ai-page{position:fixed;top:0;right:0;bottom:0;left:0;background:#f5f5f5;z-index:1000}.ai-header{position:absolute;top:0;left:0;right:0;height:48px;display:flex;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid #eee;z-index:10;box-sizing:border-box}.ai-header h1{flex:1;font-size:17px;font-weight:600;margin:0;text-align:center}.ai-back{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center}.ai-new-chat{background:#1677ff;color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.ai-agents-grid{position:absolute;top:48px;left:0;right:0;bottom:0;overflow-y:auto;padding:16px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-content:start;box-sizing:border-box}.ai-agent-card{background:#fff;border:1px solid #eee;border-radius:12px;padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:all .2s}.ai-agent-card:active{transform:scale(.97);border-color:#1677ff}.ai-agent-icon{font-size:36px}.ai-agent-name{font-size:15px;font-weight:600;color:#333}.ai-agent-desc{font-size:12px;color:#999;text-align:center;line-height:1.4}.ai-conv-list{position:absolute;top:48px;left:0;right:0;bottom:0;overflow-y:auto;background:#fff}.ai-conv-item{display:flex;align-items:center;padding:14px 16px;background:#fff;border-bottom:1px solid #f0f0f0;cursor:pointer}.ai-conv-item:active{background:#f5f5f5}.ai-conv-info{flex:1;display:flex;flex-direction:column;gap:4px}.ai-conv-title{font-size:15px;color:#333;font-weight:500}.ai-conv-time{font-size:12px;color:#bbb}.ai-conv-delete{background:none;border:none;color:#ff4d4f;font-size:13px;cursor:pointer;padding:4px 8px}.ai-messages{position:absolute;top:48px;left:0;right:0;bottom:60px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}.ai-welcome{margin-top:auto;text-align:center;padding:40px 20px;color:#999}.ai-welcome-icon{font-size:48px;display:block;margin-bottom:12px}.ai-welcome p{margin:4px 0;font-size:14px;line-height:1.6}.ai-bubble{display:flex;flex-direction:column;max-width:82%}.ai-bubble-user{align-self:flex-end;align-items:flex-end}.ai-bubble-assistant{align-self:flex-start;align-items:flex-start}.ai-bubble-content{padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}.ai-bubble-user .ai-bubble-content{background:#1677ff;color:#fff;border-bottom-right-radius:4px}.ai-bubble-assistant .ai-bubble-content{background:#fff;color:#333;border-bottom-left-radius:4px;box-shadow:0 1px 3px #0000000f}.ai-bubble-time{font-size:11px;color:#ccc;margin-top:4px;padding:0 4px}.ai-typing{color:#999;font-style:italic}.ai-input-bar{position:absolute;bottom:0;left:0;right:0;display:flex;gap:8px;padding:10px 12px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #eee;z-index:5;box-sizing:border-box}.ai-input{flex:1;border:1px solid #ddd;border-radius:20px;padding:10px 16px;font-size:14px;outline:none;transition:border-color .2s}.ai-input:focus{border-color:#1677ff}.ai-send-btn{background:#1677ff;color:#fff;border:none;border-radius:20px;padding:10px 18px;font-size:14px;cursor:pointer;white-space:nowrap}.ai-send-btn:disabled{background:#c0c4cc;cursor:not-allowed}.ai-loading{text-align:center;padding:20px;color:#999;font-size:14px;grid-column:1 / -1}.ai-empty{text-align:center;padding:40px 20px;color:#bbb;font-size:14px;grid-column:1 / -1}:root{--brand-50: #f0f7ff;--brand-100: #e8f4ff;--brand-200: #d6e4ff;--brand-400: #4096ff;--brand-500: #1677ff;--brand-600: #0e5fd8;--brand-700: #0958d9;--success-500: #52c41a;--success-100: #f6ffed;--success-text: #389e0d;--warning-500: #faad14;--warning-100: #fff7e6;--warning-text: #d46b08;--danger-500: #ff4d4f;--danger-100: #fff1f0;--danger-text: #cf1322;--neutral-100: #f5f5f5;--neutral-text: #666666;--st-idle: #8c8c8c;--st-idle-bg: #f5f5f5;--st-run: #1677ff;--st-run-bg: #e8f4ff;--st-pause: #faad14;--st-pause-bg: #fff7e6;--st-pause-border: #ffe7ba;--st-done: #52c41a;--st-done-bg: #f6ffed;--st-abnormal: #ff4d4f;--st-abnormal-bg: #fff1f0;--st-abnormal-border: #ffccc7;--st-idle-border: #e4e7ed;--st-run-border: #d9ecff;--st-done-border: #e1f3d8;--st-approval: #d48806;--st-approval-bg: #fdf6ec;--st-approval-border: #faecd8;--st-void: #909399;--st-void-bg: #f4f4f5;--text-tertiary: #999999;--text-disabled: #bbbbbb;--text-inverse: #ffffff;--bg-muted: #f5f5f5;--bg-mask: rgba(0, 0, 0, .5);--border-strong: #d9d9d9;--border-hairline: #f0f0f0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-full: 999px;--sh-1: 0 1px 3px rgba(16, 24, 40, .06);--sh-2: 0 2px 8px rgba(16, 24, 40, .08);--sh-3: 0 8px 24px rgba(16, 24, 40, .12);--sh-fab: 0 4px 16px rgba(22, 119, 255, .35);--sh-bar: 0 -2px 10px rgba(0, 0, 0, .08);--fs-xs: 12px;--fs-sm: 13px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fs-2xl: 26px;--fs-3xl: 32px;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--touch-min: 44px;--page-pad: 16px;--content-gap: calc(var(--tabbar-height) + var(--safe-bottom) + 24px);--content-gap-footer: calc(var(--tabbar-height) + var(--safe-bottom) + 88px);--z-header: 50;--z-tabbar: 90;--z-footer: 100;--z-fab: 200;--z-modal: 1000;--z-toast: 1100;--dur-fast: .12s;--dur-base: .2s;--ease-out: cubic-bezier(.22, 1, .36, 1)}:root{--primary: #1677ff;--primary-light: #e8f4ff;--success: #52c41a;--warning: #faad14;--danger: #ff4d4f;--text-primary: #1a1a1a;--text-secondary: #666;--text-hint: #999;--border: #e8e8e8;--bg-page: #f5f7fa;--bg-white: #ffffff;--bg-card: #ffffff;--tabbar-height: 56px;--header-height: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--app-max-width: 480px}@media (min-width: 768px){:root{--app-max-width: 720px}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{background:var(--bg-page);color:var(--text-primary);font-size:15px;line-height:1.5;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:0;height:0}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-1{flex:1}.gap-8{gap:8px}.gap-12{gap:12px}.text-center{text-align:center}.w-full{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:10px;font-size:16px;font-weight:500;cursor:pointer;padding:0 20px;height:48px;transition:all .15s;-webkit-user-select:none;user-select:none;min-width:64px}.btn:active{transform:scale(.97);opacity:.9}.btn-primary{background:var(--primary);color:#fff}.btn-primary:active{background:#0e5fd8}.btn-default{background:#f5f5f5;color:var(--text-primary)}.btn-success{background:var(--success);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-outline{background:transparent;border:1.5px solid var(--primary);color:var(--primary)}.btn-block{width:100%}.btn-sm{height:44px;font-size:14px;padding:0 16px;border-radius:8px;min-height:44px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:disabled:active,.btn[disabled]:active{transform:none;opacity:.5}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.tag-blue{background:#e8f4ff;color:var(--primary)}.tag-green{background:#f0fae6;color:var(--success)}.tag-orange{background:#fff7e6;color:#d46b08}.tag-red{background:#fff1f0;color:var(--danger)}.tag-gray{background:#f5f5f5;color:var(--text-secondary)}.card{background:var(--bg-card);border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000f}.divider{height:1px;background:var(--border);margin:12px 0}.input,input[type=text],input[type=number],input[type=date],input[type=search],select,textarea{width:100%;min-height:48px;border:1.5px solid var(--border);border-radius:10px;padding:0 var(--input-pad-r, 14px) 0 var(--input-pad-l, 14px);font-size:16px;outline:none;transition:border-color .2s;background:#fff;-webkit-appearance:none;appearance:none}.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--primary)}select{padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%23999'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}textarea{padding:12px 14px;resize:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:fadeInUp .2s ease}.page-header{display:flex;align-items:center;gap:8px;padding:0 12px 0 8px;height:48px;background:#fff;border-bottom:1px solid #f0f0f0;position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top,0);height:calc(48px + env(safe-area-inset-top,0))}.page-header h1{flex:1;font-size:17px;font-weight:600;color:#1a1a1a;margin:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-btn{width:44px;height:44px;min-width:44px;border-radius:10px;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1a1a1a;flex-shrink:0;-webkit-tap-highlight-color:transparent;transition:background .15s}.back-btn:active{background:rgba(0,0,0,.05)}.add-btn{height:36px;padding:0 14px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;flex-shrink:0}.detail-footer{position:fixed;bottom:0;left:0;right:0;margin:0 auto;max-width:var(--app-max-width);padding:12px 16px calc(12px + var(--safe-bottom));background:#fff;box-shadow:0 -2px 10px #00000014;display:flex;gap:12px;z-index:100;box-sizing:border-box}.page-footer-fixed{position:fixed;bottom:0;left:0;right:0;margin:0 auto;max-width:var(--app-max-width);padding:10px 16px calc(10px + var(--safe-bottom));background:#fff;box-shadow:0 -2px 10px #00000014;display:flex;gap:12px;z-index:100;box-sizing:border-box}.has-page-footer{padding-bottom:calc(72px + var(--safe-bottom))!important}@keyframes spin{to{transform:rotate(360deg)}}.notice-spinner{width:20px;height:20px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;opacity:.5;animation:spin .7s linear infinite;flex-shrink:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-hint)}.empty-state svg{margin-bottom:12px;opacity:.3}.empty-state p{font-size:14px}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{width:calc(100vw - 80px);max-width:320px;background:#fff;border-radius:14px;overflow:hidden;animation:modalSlideUp .25s cubic-bezier(.4,0,.2,1);box-shadow:0 12px 32px #0003}@keyframes modalSlideUp{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{padding:20px 24px 8px;text-align:center}.modal-header h3{margin:0;font-size:17px;font-weight:600;color:#1a1a1a}.modal-body{padding:8px 24px 20px;text-align:center}.modal-body p{margin:0;font-size:15px;color:#4a5160;line-height:1.6;word-break:break-word}.modal-footer{display:flex;border-top:1px solid #f0f0f0}.modal-footer .btn{flex:1;height:48px;border-radius:0;font-size:16px;font-weight:500;background:#fff;color:#1a1a1a;border:none}.modal-footer .btn+.btn{border-left:1px solid #f0f0f0}.modal-footer .btn-primary{color:var(--primary);font-weight:600}.modal-footer--three .btn{font-size:14px;padding:0 4px}.modal-footer--three .btn-warning{color:#fa8c16;font-weight:600}.modal-footer .btn-danger{color:var(--danger);font-weight:600}.modal-footer .btn:active{background:#f5f5f5;transform:none;opacity:1}@media (min-width: 768px){:root{--header-height: 60px;--tabbar-height: 60px}.card-grid,.grid-2{grid-template-columns:repeat(2,1fr)!important}.btn{height:50px;font-size:16px}.btn-block{height:52px;font-size:17px}.btn-sm{height:46px;font-size:15px}.tabbar{height:var(--tabbar-height)}.tabbar-item span{font-size:12px}.page-content,.list-page{padding:16px 20px}}@media (min-width: 1024px){:root{--app-max-width: 960px}.card-grid,.grid-2,.grid-3{grid-template-columns:repeat(3,1fr)!important}.main-layout{border-radius:0;box-shadow:none}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}}@media (min-width: 1440px){:root{--app-max-width: 1100px}}.ui-page{min-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--sp-4) var(--page-pad) var(--content-gap);background:var(--bg-page)}.ui-page--flush{padding-top:0}.ui-page__inner{max-width:var(--app-max-width);margin:0 auto}.ui-header{position:sticky;top:0;z-index:var(--z-header);display:flex;align-items:center;gap:var(--sp-2);height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) var(--sp-3) 0 var(--sp-1);background:var(--bg-card);border-bottom:1px solid var(--border-hairline)}.ui-header__title{flex:1;min-width:0;margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-primary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-header__title--left{text-align:left;padding-left:var(--sp-2)}.ui-header__main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px}.ui-header__sub{padding-left:var(--sp-2);font-size:var(--fs-xs);color:var(--text-hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-header__actions{display:flex;align-items:center;gap:var(--sp-1)}.ui-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);margin:0;padding:0;border:none;border-radius:var(--r-md);background:transparent;color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent}.ui-iconbtn:active{background:rgba(0,0,0,.05)}.ui-iconbtn:disabled{color:var(--text-disabled);cursor:not-allowed}.ui-card{background:var(--bg-card);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--sh-1)}.ui-card--tap{cursor:pointer;transition:transform var(--dur-fast) var(--ease-out)}.ui-card--tap:active{transform:scale(.985);background:var(--brand-50)}.ui-card--flat{box-shadow:none;border:1px solid var(--border)}.ui-card--tight{padding:var(--sp-3)}.ui-section{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin:var(--sp-5) 0 var(--sp-3)}.ui-section:first-child{margin-top:0}.ui-section__title{display:flex;align-items:center;gap:var(--sp-2);margin:0;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary)}.ui-section__title:before{content:"";width:3px;height:14px;border-radius:var(--r-full);background:var(--brand-500)}.ui-section__more{display:inline-flex;align-items:center;gap:2px;min-height:32px;padding:0 var(--sp-1);border:none;background:transparent;color:var(--brand-500);font-size:var(--fs-sm);cursor:pointer}.ui-tag{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:18px;white-space:nowrap}.ui-tag--idle{background:var(--st-idle-bg);color:var(--st-idle)}.ui-tag--run{background:var(--st-run-bg);color:var(--st-run)}.ui-tag--pause{background:var(--st-pause-bg);color:var(--warning-text)}.ui-tag--done{background:var(--st-done-bg);color:var(--success-text)}.ui-tag--abnormal{background:var(--st-abnormal-bg);color:var(--danger-text)}.ui-tag--neutral{background:var(--neutral-100);color:var(--neutral-text)}.ui-tag--dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.ui-chips{display:flex;gap:var(--sp-2);margin:0 calc(-1 * var(--page-pad));padding:2px var(--page-pad) var(--sp-2);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.ui-chips::-webkit-scrollbar{display:none}.ui-chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;min-height:var(--touch-min);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-full);background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-sm);font-family:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.ui-chip:active{transform:scale(.98)}.ui-chip.is-active{background:var(--brand-500);border-color:var(--brand-500);color:var(--text-inverse);font-weight:var(--fw-medium)}.ui-chip__name{max-width:8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-chip__count{min-width:20px;padding:1px 6px;border-radius:var(--r-full);background:var(--neutral-100);color:var(--neutral-text);font-size:var(--fs-xs);text-align:center}.ui-chip.is-active .ui-chip__count{background:rgba(255,255,255,.24);color:var(--text-inverse)}.ui-stat{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3);background:var(--bg-card);border-radius:var(--r-md);box-shadow:var(--sh-1)}.ui-stat__label{font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-stat__value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:1.15;font-variant-numeric:tabular-nums}.ui-stat__unit{margin-left:3px;font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--text-tertiary)}.ui-stat__hint{font-size:var(--fs-xs);color:var(--text-tertiary)}.ui-stat--onbrand{background:rgba(255,255,255,.16);box-shadow:none}.ui-stat--onbrand .ui-stat__label,.ui-stat--onbrand .ui-stat__unit,.ui-stat--onbrand .ui-stat__hint{color:#ffffffd1}.ui-stat--onbrand .ui-stat__value{color:var(--text-inverse)}.ui-grid{display:grid;gap:var(--sp-3)}.ui-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}.ui-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}.ui-tile{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-3) var(--sp-1);border:none;border-radius:var(--r-md);background:var(--bg-card);font:inherit;cursor:pointer;box-shadow:var(--sh-1);transition:transform var(--dur-fast) var(--ease-out)}.ui-tile:active{transform:scale(.97)}.ui-tile .ui-stat__value{font-size:var(--fs-xl);color:var(--text-primary)}.ui-tile .ui-stat__label{font-size:var(--fs-xs)}.ui-tile--brand{box-shadow:inset 0 -3px 0 var(--brand-500),var(--sh-1)}.ui-tile--run{box-shadow:inset 0 -3px 0 var(--st-run),var(--sh-1)}.ui-tile--done{box-shadow:inset 0 -3px 0 var(--st-done),var(--sh-1)}.ui-tile--warn{box-shadow:inset 0 -3px 0 var(--warning-500),var(--sh-1)}.ui-tile--idle{box-shadow:inset 0 -3px 0 var(--border),var(--sh-1)}.ui-kv{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-hairline)}.ui-kv:last-child{border-bottom:none}.ui-kv__k{flex-shrink:0;font-size:var(--fs-sm);color:var(--text-secondary)}.ui-kv__v{min-width:0;font-size:var(--fs-md);color:var(--text-primary);text-align:right;word-break:break-all}.ui-kv__v--strong{font-weight:var(--fw-semibold)}.ui-kv__v--mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-sm)}.ui-li{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--touch-min);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-hairline);background:transparent;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.ui-li:last-child{border-bottom:none}.ui-li__main{flex:1;min-width:0}.ui-li__title{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-li__sub{margin-top:2px;font-size:var(--fs-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-li__chev{flex-shrink:0;color:var(--text-disabled)}.ui-bar{position:relative;height:6px;border-radius:var(--r-full);background:var(--border);overflow:hidden}.ui-bar__fill{height:100%;border-radius:var(--r-full);background:var(--brand-500);transition:width var(--dur-base) var(--ease-out)}.ui-bar__fill--done{background:var(--st-done)}.ui-bar__fill--pause{background:var(--st-pause)}.ui-bar__fill--over{background:var(--st-abnormal)}.ui-bar-row{display:flex;align-items:center;gap:var(--sp-2)}.ui-bar-row .ui-bar{flex:1}.ui-bar-row__pct{flex-shrink:0;min-width:42px;text-align:right;font-size:var(--fs-sm);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;color:var(--text-primary)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--touch-min);padding:0 var(--sp-4);border:1.5px solid transparent;border-radius:var(--r-md);font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform var(--dur-fast),background var(--dur-fast)}.ui-btn:active{transform:scale(.98)}.ui-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.ui-btn--primary{background:var(--brand-500);color:var(--text-inverse)}.ui-btn--primary:active{background:var(--brand-600)}.ui-btn--success{background:var(--success-500);color:var(--text-inverse)}.ui-btn--warning{background:var(--warning-500);color:var(--text-inverse)}.ui-btn--danger{background:var(--danger-500);color:var(--text-inverse)}.ui-btn--ghost{background:var(--bg-card);color:var(--text-primary);border-color:var(--border)}.ui-btn--outline{background:transparent;color:var(--brand-500);border-color:var(--brand-500)}.ui-btn--block{width:100%}.ui-btn--sm{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-sm);border-radius:var(--r-sm)}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:56px var(--sp-4);text-align:center;color:var(--text-tertiary)}.ui-empty__icon{color:var(--border-strong)}.ui-empty__title{font-size:var(--fs-md);color:var(--text-secondary)}.ui-empty__desc{font-size:var(--fs-sm);max-width:260px}.ui-empty--error{color:var(--danger-text)}.ui-empty--error .ui-empty__icon{color:var(--danger-500)}.ui-empty--inline{padding:var(--sp-5) var(--sp-4)}@keyframes ui-shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.ui-skeleton{height:16px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--neutral-100) 25%,var(--border-hairline) 37%,var(--neutral-100) 63%);background-size:400px 100%;animation:ui-shimmer 1.2s ease-in-out infinite}.ui-footer{position:sticky;bottom:0;z-index:var(--z-footer);display:flex;gap:var(--sp-2);margin-top:auto;padding:var(--sp-3) var(--page-pad);background:var(--bg-card);box-shadow:var(--sh-bar)}.ui-footer--stack{flex-direction:column}.ui-footer__row{display:flex;gap:var(--sp-2)}.ui-footer__row>*{flex:1;min-width:0}.ui-hero{position:relative;padding:calc(var(--sp-5) + var(--safe-top)) var(--page-pad) var(--sp-6);background:linear-gradient(160deg,var(--brand-500) 0%,var(--brand-700) 100%);color:var(--text-inverse)}.ui-hero__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.ui-hero__title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-semibold)}.ui-hero__sub{margin-top:var(--sp-1);font-size:var(--fs-sm);color:#ffffffc7}.ui-hero__sheet{position:relative;z-index:1;margin:-28px var(--page-pad) 0}.ui-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3) var(--sp-2)}.ui-quick__item{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;min-height:76px;border:none;background:transparent;font:inherit;color:var(--text-primary);cursor:pointer}.ui-quick__item:active{opacity:.7}.ui-quick__icon{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-md);background:var(--brand-100);color:var(--brand-500)}.ui-quick__label{font-size:var(--fs-sm);color:var(--text-secondary);text-align:center}.ui-quick__icon--brand{background:var(--brand-100);color:var(--brand-500)}.ui-quick__icon--success{background:var(--success-100);color:var(--success-text)}.ui-quick__icon--warning{background:var(--warning-100);color:var(--warning-text)}.ui-quick__icon--danger{background:var(--danger-100);color:var(--danger-text)}.ui-quick__badge{position:absolute;top:-4px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-full);background:var(--danger-500);color:var(--text-inverse);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:18px;text-align:center}.modal-header.modal-header--split{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-4) var(--sp-2) var(--sp-2) var(--sp-4);text-align:left;flex-shrink:0}.modal-header.modal-header--split h3{font-size:var(--fs-lg);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-close{display:flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);flex-shrink:0;border:none;border-radius:var(--r-md);background:transparent;color:var(--text-hint);font-size:var(--fs-xl);line-height:1;cursor:pointer}.modal-close:active{background:var(--bg-muted)}.polish-hero{position:relative;margin:-12px -16px 14px;padding:18px 20px 30px;background:linear-gradient(135deg,var(--brand-600) 0%,var(--brand-500) 55%,#3f8cff 100%);border-radius:0 0 20px 20px;color:var(--text-inverse);overflow:hidden}.polish-hero:after{content:"";position:absolute;right:-30px;top:-40px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.08)}.polish-hero:before{content:"";position:absolute;right:40px;bottom:-50px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.06)}.polish-hero__title{margin:0;font-size:20px;font-weight:700;letter-spacing:.5px;display:flex;align-items:center;justify-content:space-between}.polish-hero__sub{margin-top:4px;font-size:12px;opacity:.82}.polish-hero__stats{position:relative;display:flex;gap:10px;margin-top:14px}.polish-stat{flex:1;text-align:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:8px 4px 6px;backdrop-filter:blur(4px)}.polish-stat__value{display:block;font-size:20px;font-weight:700;line-height:1.2}.polish-stat__label{display:block;font-size:var(--fs-xs);opacity:.85;margin-top:1px}button.polish-stat--btn{font:inherit;color:inherit;cursor:pointer}.polish-stat--active{background:rgba(255,255,255,.96);color:var(--brand-600)}.polish-stat--active .polish-stat__label{opacity:.75}.mytask-li{position:relative;border-radius:12px;padding-left:14px!important}.mytask-li:before{content:"";position:absolute;left:4px;top:12px;bottom:12px;width:3.5px;border-radius:2px;background:var(--st-idle)}.mytask-li.phase-running:before{background:var(--st-run)}.mytask-li.phase-paused:before{background:var(--st-pause)}.mytask-li.phase-done:before{background:var(--st-done)}.mytask-li+.mytask-li{margin-top:8px;border-top:none!important}.mytask-li .ui-li__title{font-size:15.5px;font-weight:650;color:#1f2329;display:flex;align-items:baseline;gap:8px;min-width:0}.mytask-li__wo{flex:none;max-width:130px;overflow:hidden;text-overflow:ellipsis;font-size:10.5px;color:var(--text-tertiary);background:var(--bg-muted);border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;font-weight:400}.mytask-li__report{border-radius:14px;padding:4px 12px;font-size:12px;box-shadow:0 2px 6px #1677ff47}.prod-ws-chip{border-radius:14px;padding:3px 12px;font-size:12px;transition:all .15s ease}.prod-ws-chip.active{box-shadow:0 2px 8px #1677ff40}.ui-tiles{gap:10px}.ui-tile{border-radius:14px;transition:transform .12s ease,box-shadow .15s ease}.ui-tile:active{transform:scale(.96)}.ui-tile--idle{background:linear-gradient(150deg,#fafbfc,#f0f2f5)}.ui-tile--run{background:linear-gradient(150deg,#e8f4ff,#d6e9ff)}.ui-tile--done{background:linear-gradient(150deg,#f2fdeb,#e4f8d8)}.ui-tile--active{box-shadow:0 4px 14px #1677ff2e;outline:none;border:1.5px solid var(--brand-400)}.prod-entries{border-radius:14px}.ui-quick__item{border-radius:10px}.ui-quick__icon{border-radius:12px}.quality-page .page-header{display:none}.qc-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.qc-card{border-radius:16px!important;box-shadow:0 2px 10px #1f23290f!important;transition:transform .12s ease}.qc-card:active{transform:scale(.97)}.qc-card-icon{border-radius:12px!important;width:44px!important;height:44px!important;font-size:22px!important}.qc-card-badge{background:var(--danger-500)!important;box-shadow:0 2px 6px #ff4d4f59!important}.recent-section .section-title{font-size:15px;font-weight:650}.recent-record{border-radius:12px!important;box-shadow:0 1px 6px #1f23290d!important}.record-type{border-radius:8px!important;font-weight:650}.device-topbar{background:linear-gradient(135deg,var(--brand-600) 0%,var(--brand-500) 55%,#3f8cff 100%);padding:18px 20px 14px}.device-topbar-title{font-size:20px}.device-tab-bar{border-top:none;box-shadow:0 -4px 16px #1f23290f}.device-tab-item{border-radius:12px;transition:background .15s ease}.device-tab-item.active{background:var(--brand-50)}.device-page{background:#f2f5f9}
