:root{--primary:#2563EB;--primary-light:#3B82F6;--primary-dark:#1D4ED8;--primary-hover:#1E40AF;--success:#10B981;--warning:#F59E0B;--danger:#EF4444;--info:#3B82F6;--bg:#F5F7FA;--bg-card:#FFFFFF;--bg-sidebar:#FFFFFF;--bg-sidebar-hover:#F0F5FF;--bg-sidebar-active:#E6EFFE;--text:#1F2937;--text-secondary:#6B7280;--text-light:#9CA3AF;--border:#E5E7EB;--border-light:#F0F0F0;--top-header-bg:#2563EB;--radius:6px;--radius-lg:10px;--shadow:0 1px 3px rgba(0,0,0,0.05);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 10px 25px rgba(0,0,0,0.1);--transition:all 0.2s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--text);line-height:1.6;overflow:hidden;height:100vh}a{text-decoration:none;color:var(--primary)}button{cursor:pointer;border:none;outline:0;font-family:inherit}input,select,textarea{font-family:inherit;outline:0}ul{list-style:none}table{border-collapse:collapse;width:100%}.main-app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.top-header{height:52px;background:var(--top-header-bg);display:flex;align-items:center;justify-content:space-between;padding:0;flex-shrink:0;z-index:500;box-shadow:0 1px 3px rgba(0,0,0,.15)}.top-header-left{display:flex;align-items:center;gap:0;flex:1;min-width:0;overflow:hidden}.top-logo{display:flex;align-items:center;justify-content:center;width:220px;min-width:220px;height:52px;border-right:1px solid rgba(255,255,255,.15);cursor:pointer;transition:width .25s,min-width .25s;flex-shrink:0}.top-logo-text{color:#fff;font-size:16px;font-weight:700;letter-spacing:1px;white-space:nowrap}.top-logo-icon{display:none;font-size:22px;line-height:1}.top-nav{display:flex;align-items:center;gap:0;height:52px;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;padding-right:0;margin-right:80px}.top-nav::-webkit-scrollbar{display:none}.top-nav-scroll-hint{position:relative}.top-nav-scroll-hint::after{display:none}.top-nav-item{display:flex;align-items:center;gap:4px;padding:0 10px;height:52px;color:rgba(255,255,255,.85);font-size:13px;font-weight:400;cursor:pointer;transition:var(--transition);white-space:nowrap;position:relative;user-select:none;flex-shrink:0}.top-nav-item:hover{color:#fff;background:rgba(255,255,255,.12)}.top-nav-item.active{color:#fff;background:rgba(255,255,255,.15);font-weight:500;border-radius:0}.top-nav-item.active::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:24px;height:3px;background:#fff;border-radius:2px 2px 0 0}.top-nav-item svg{flex-shrink:0}.top-header-right{display:flex;align-items:center;gap:6px;padding-right:12px;padding-left:12px;flex-shrink:0}.top-icon-btns{display:flex;align-items:center;gap:4px}.top-icon-btn{width:30px;height:30px;border-radius:6px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;position:relative;transition:var(--transition);color:rgba(255,255,255,.85);flex-shrink:0}.top-icon-btn:hover{background:rgba(255,255,255,.25);color:#fff}.icon-badge{position:absolute;top:2px;right:2px;background:#f44;color:#fff;font-size:9px;min-width:14px;height:14px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-weight:600;padding:0 3px;line-height:1}.user-dropdown{position:relative;margin-left:4px;flex-shrink:0}.user-dropdown-trigger{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:20px;background:rgba(255,255,255,.15);cursor:pointer;transition:var(--transition);color:#fff}.user-dropdown-trigger:hover{background:rgba(255,255,255,.25)}.user-avatar-img{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.3);object-fit:cover}.user-dropdown-name{font-size:13px;font-weight:500;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;width:180px;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-light);opacity:0;visibility:hidden;transform:translateY(-8px);transition:.2s;z-index:600;padding:6px 0}.user-dropdown-menu.show{opacity:1;visibility:visible;transform:translateY(0)}.user-dropdown-item{display:flex;align-items:center;gap:10px;padding:9px 16px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:var(--transition)}.user-dropdown-item:hover{background:var(--bg);color:var(--primary)}.user-dropdown-divider{height:1px;background:var(--border-light);margin:4px 12px}.body-area{display:flex;flex:1;overflow:hidden}.left-sidebar{width:220px;min-width:220px;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:width .25s,min-width .25s}.left-sidebar.collapsed{width:60px;min-width:60px}.left-sidebar-brand{display:flex;align-items:center;justify-content:center;padding:18px 10px;border-bottom:1px solid var(--border-light);transition:padding .25s}.left-sidebar.collapsed .left-sidebar-brand{padding:18px 10px;text-align:center}.left-sidebar-title{font-size:22px;font-weight:700;color:var(--primary);letter-spacing:1px;white-space:nowrap;overflow:hidden;transition:font-size .25s}.left-sidebar.collapsed .left-sidebar-title{font-size:14px;letter-spacing:0}.left-sidebar-icon{display:none;font-size:22px;line-height:1}.left-sidebar-nav{flex:1;overflow-y:auto;padding:8px 0}.left-sidebar-nav::-webkit-scrollbar{width:4px}.left-sidebar-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar-menu-group{margin-bottom:2px}.sidebar-menu-title{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:13.5px;color:var(--text);transition:var(--transition);user-select:none;white-space:nowrap;overflow:hidden}.sidebar-menu-title:hover{background:var(--bg-sidebar-hover)}.sidebar-menu-title.active{color:var(--primary);font-weight:600;background:rgba(59,130,246,.08)}.sidebar-menu-title.active .sidebar-menu-icon svg{stroke:var(--primary)}.left-sidebar.collapsed .sidebar-menu-arrow,.left-sidebar.collapsed .sidebar-menu-label{display:none}.left-sidebar.collapsed .sidebar-menu-title{justify-content:center;padding:10px 0}.left-sidebar.collapsed .sidebar-menu-icon{margin:0}.left-sidebar.collapsed .sidebar-menu-children{display:none!important;max-height:0!important}.sidebar-menu-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform .2s}.sidebar-menu-arrow svg{stroke:var(--text-light)}.sidebar-menu-icon{display:flex;align-items:center;flex-shrink:0}.sidebar-menu-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-menu-children{overflow:hidden;transition:max-height .25s;max-height:300px}.sidebar-menu-group.collapsed .sidebar-menu-children{max-height:0}.sidebar-menu-group.collapsed .sidebar-menu-arrow{transform:rotate(-90deg)}.sidebar-menu-child{display:flex;align-items:center;padding:8px 16px 8px 44px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);position:relative}.sidebar-menu-child::before{content:'';position:absolute;left:30px;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%;background:var(--text-light);transition:var(--transition)}.sidebar-menu-child:hover{color:var(--primary);background:var(--bg-sidebar-hover)}.sidebar-menu-child:hover::before{background:var(--primary)}.sidebar-menu-child.active{color:var(--primary);background:var(--bg-sidebar-active);font-weight:500}.sidebar-menu-child.active::before{background:var(--primary);width:6px;height:6px;border-radius:50%}.sidebar-menu-child[data-page=spcCapability],.sidebar-menu-child[data-page=spcChartView],.sidebar-menu-child[data-page=spcDataEntry]{display:none!important}.pf-main-row{cursor:pointer;transition:background-color .15s}.pf-main-row:hover{background-color:#f8fafc}.pf-detail-wrap{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:12px 16px}.pf-detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.pf-detail-title{font-size:13px;font-weight:600;color:#374151}.pf-sub-table{width:100%;border-collapse:collapse;font-size:13px}.pf-sub-table th{background:#f1f5f9;color:#64748b;font-weight:500;padding:8px 10px;border-bottom:1px solid #e2e8f0}.pf-sub-table td{padding:8px 10px;border-bottom:1px solid #f1f5f9;color:#374151}.pf-form-modal{max-height:85vh;overflow-y:auto}.pf-form-modal .form-textarea{border:1px solid #d1d5db;border-radius:6px;padding:8px 10px;font-size:13px;color:#374151;outline:0;transition:border-color .2s;font-family:inherit}.pf-form-modal .form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.pf-form-divider{border:none;border-top:1px dashed #d1d5db}.pf-product-select-wrap{position:relative}.pf-product-select-trigger{position:relative;display:flex;align-items:center}.pf-product-select-trigger .pf-product-select-input{padding-right:32px;width:100%}.pf-product-select-arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.pf-product-selector-overlay{z-index:10001!important}.pf-product-selector-popup{max-width:480px;width:90%;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.05);overflow:hidden;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pf-product-selector-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #f1f5f9}.pf-product-selector-header h4{font-size:15px;font-weight:600;color:#1e293b;margin:0}.pf-product-selector-search{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid #f1f5f9}.pf-product-selector-search svg{flex-shrink:0;min-width:16px}.pf-product-selector-search input{flex:1;border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;font-size:13px;color:#374151;outline:0;transition:border-color .2s}.pf-product-selector-search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.pf-product-selector-search input::placeholder{color:#9ca3af}.pf-product-selector-list{max-height:320px;overflow-y:auto}.pf-product-selector-item{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background-color .15s;border-bottom:1px solid #f8fafc}.pf-product-selector-item:hover{background-color:#eff6ff}.pf-product-selector-item:last-child{border-bottom:none}.pf-product-item-code{font-size:13px;font-weight:600;color:#1e293b;min-width:90px;padding:2px 8px;background:#f1f5f9;border-radius:4px;text-align:center}.pf-product-item-name{font-size:13px;color:#475569;flex:1}.pf-product-selector-footer{padding:12px 20px;border-top:1px solid #f1f5f9;display:flex;justify-content:flex-end}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.tab-bar{background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 12px;display:flex;align-items:center;min-height:38px;flex-shrink:0}.tab-list{display:flex;align-items:center;gap:2px;overflow-x:auto;flex:1}.tab-list::-webkit-scrollbar{height:0}.tab-item{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:var(--transition);position:relative;user-select:none}.tab-item:hover{color:var(--primary);background:rgba(37,99,235,.04)}.tab-item.active{color:var(--primary);font-weight:500;border-bottom-color:var(--primary)}.tab-close{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;background:0 0;color:var(--text-light);padding:0;transition:var(--transition);margin-left:2px}.tab-close-placeholder{width:16px;height:16px;margin-left:2px;flex-shrink:0}.tab-close:hover{background:rgba(239,68,68,.1);color:var(--danger)}.content-area{flex:1;overflow-y:auto;padding:16px 20px}.content-area::-webkit-scrollbar{width:6px}.content-area::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.content-area::-webkit-scrollbar-thumb:hover{background:#9ca3af}.page-welcome{text-align:center;padding:120px 20px}.page-welcome h2{font-size:26px;font-weight:600;color:var(--text);margin-bottom:8px}.page-welcome p{font-size:15px;color:var(--text-light);letter-spacing:2px}.home-dashboard{max-width:1400px;margin:0 auto}.home-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.home-title{font-size:22px;font-weight:700;color:var(--text);margin-bottom:4px}.home-date{font-size:13px;color:var(--text-light)}.home-header-right{display:flex;gap:8px}.btn-sm{border-radius:var(--radius);cursor:pointer;border:none;font-weight:500;transition:var(--transition)}.btn-outline{color:var(--primary);border:1px solid var(--primary)}.btn-outline:hover{background:#eff6ff}.kpi-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:20px}.kpi-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);display:flex;flex-wrap:wrap;align-items:center;gap:12px;transition:var(--transition)}.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-card-info{flex:1;min-width:0}.kpi-card-value{font-size:28px;font-weight:700;color:var(--text);line-height:1.1}.kpi-card-unit{font-size:16px;font-weight:500;color:var(--text-secondary)}.kpi-card-label{font-size:12px;color:var(--text-light);margin-top:2px}.kpi-card-trend{width:100%;display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--border-light);font-size:12px}.kpi-card-trend.up{color:#10b981}.kpi-card-trend.down{color:#ef4444}.kpi-card-sub{color:var(--text-light);font-size:11px}.home-grid{display:grid;grid-template-columns:1fr 380px;gap:20px}.home-left,.home-right{display:flex;flex-direction:column;gap:20px}.home-section{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.home-section-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-light)}.home-section-header h3{font-size:15px;font-weight:600;color:var(--text)}.home-section-badge{font-size:12px;color:var(--text-light);background:#f1f5f9;padding:3px 10px;border-radius:12px}.home-section-link{font-size:13px;color:var(--primary);cursor:pointer;text-decoration:none;transition:color .15s}.home-section-link:hover{color:var(--primary-hover)}.alert-count-badge{background:#ef4444;color:#fff;font-size:11px;font-weight:600;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px}.workorder-status-list{padding:8px 0}.workorder-status-item{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #f8fafc;transition:background .15s}.workorder-status-item:last-child{border-bottom:none}.workorder-status-item:hover{background:#f8fafc}.wos-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.wos-tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;flex-shrink:0}.wos-tag.running{background:#dbeafe;color:#1d4ed8}.wos-tag.pending{background:#fef3c7;color:#92400e}.wos-tag.paused{background:#f1f5f9;color:#64748b}.wos-tag.completed{background:#d1fae5;color:#065f46}.wos-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:3px}.wos-product{color:var(--text-light);font-weight:400;font-size:12px}.wos-meta{font-size:12px;color:var(--text-light)}.wos-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.wos-progress-bar{width:100px;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.wos-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .6s}.wos-progress-fill.paused{background:#94a3b8}.wos-progress-text{font-size:12px;font-weight:600;color:var(--text-secondary);min-width:32px;text-align:right}.equipment-status-compact{display:grid;grid-template-columns:repeat(4,1fr);padding:16px 20px;gap:8px}.eqs-item{display:flex;flex-direction:column;align-items:center;gap:6px}.eqs-dot{width:10px;height:10px;border-radius:50%}.eqs-dot.running{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.15)}.eqs-dot.idle{background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.15)}.eqs-dot.alarm{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.15)}.eqs-dot.offline{background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.15)}.eqs-name{font-size:12px;color:var(--text-secondary)}.eqs-count{font-size:20px;font-weight:700;color:var(--text)}@media (max-width:1200px){.home-grid{grid-template-columns:1fr}.kpi-cards{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.kpi-cards{grid-template-columns:repeat(2,1fr)}.home-header{flex-direction:column;gap:12px}}.page-simple h3{font-size:18px;font-weight:600;margin-bottom:12px}.empty-state-text{color:var(--text-light);font-size:14px}.page-login-container{display:flex;justify-content:center;align-items:center;min-height:60vh}.mgmt-page{display:flex;gap:16px;height:calc(100vh - 140px);min-height:500px}.mgmt-left-panel{width:200px;min-width:200px;display:flex;flex-direction:column}.dept-tree-panel{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;height:100%}.dept-tree-header{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.dept-tree-search-wrap{flex:1;display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;transition:var(--transition)}.dept-tree-search-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px rgba(37,99,235,.1)}.dept-tree-search-input{flex:1;border:none;outline:0;background:0 0;font-size:12px;color:var(--text);min-width:0}.dept-tree-search-input::placeholder{color:#94a3b8}.dept-tree-actions{display:flex;gap:2px;flex-shrink:0}.dept-tree-action-btn{width:26px;height:26px;border-radius:4px;background:0 0;display:flex;align-items:center;justify-content:center;transition:var(--transition);padding:0}.dept-tree-action-btn:hover{background:var(--bg)}.dept-tree-action-btn:hover svg{stroke:var(--primary)}.dept-tree-node.search-match>.dept-tree-item{background:rgba(37,99,235,.08)}.dept-tree-body{flex:1;overflow-y:auto;padding:8px 0}.dept-tree-body::-webkit-scrollbar{width:4px}.dept-tree-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.dept-tree-item{display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:13px;color:var(--text);cursor:pointer;transition:var(--transition);border-left:3px solid transparent}.dept-tree-item:hover{background:var(--bg-sidebar-hover)}.dept-tree-item.active{color:var(--primary);background:var(--bg-sidebar-active);border-left-color:var(--primary);font-weight:500}.dept-tree-arrow{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform .2s}.dept-tree-node.expanded>.dept-tree-item>.dept-tree-arrow svg{transform:rotate(90deg)}.dept-tree-children{display:none}.dept-tree-node.expanded>.dept-tree-children{display:block}.mgmt-full-panel,.mgmt-right-panel{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.mgmt-filter-bar{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.filter-row{display:flex;align-items:center;gap:8px}.filter-label{font-size:13px;color:var(--text-secondary);white-space:nowrap}.filter-input{padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;width:160px;background:#fff;transition:var(--transition)}.filter-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.filter-input::placeholder{color:var(--text-light)}.tpo-notice-input::placeholder{color:#ef4444}.filter-select{padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;width:160px;background:#fff;transition:var(--transition);color:var(--text-primary);cursor:pointer;appearance:auto}.filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08);outline:0}.filter-select-popup-wrap{position:relative;display:flex;align-items:center}.filter-select-popup-input{padding-right:36px!important;cursor:pointer;width:160px}.filter-select-popup-btn{position:absolute;right:1px;top:50%;transform:translateY(-50%);background:0 0;border:none;padding:6px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:0 5px;transition:background .15s}.filter-select-popup-btn:hover{background:#f3f4f6}.filter-select-popup-btn svg{display:block}.filter-select-wrap{position:relative;display:flex;align-items:center}.filter-select-wrap svg{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.filter-select-styled{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:7px 32px 7px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:#333;background:#fff;width:160px;cursor:pointer;transition:var(--transition);outline:0}.filter-select-styled:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.filter-select-styled option{color:#333;font-size:13px}.filter-select-styled:invalid,.filter-select-styled[data-placeholder=true]{color:#94a3b8}.supplier-picker-item{padding:8px 12px;cursor:pointer;font-size:13px;color:#333;display:flex;align-items:center;transition:background .12s;white-space:nowrap}.supplier-picker-item:hover{background:#f3f4f6}.supplier-picker-item[data-active]{background:#eff6ff;color:#3b82f6}.gl-picker-item{padding:10px 16px;cursor:pointer;font-size:13px;color:#1e293b;display:flex;align-items:center;transition:background .12s}.gl-picker-item:hover{background:#f3f4f6}.gl-picker-item[data-selected]{background:#eff6ff;color:#3b82f6}.mgmt-search-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 18px!important;border-radius:var(--radius)!important;font-size:13px!important}.mgmt-reset-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px!important;border-radius:var(--radius)!important;font-size:13px!important}.mgmt-toolbar{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border)}.toolbar-left{display:flex;align-items:center;gap:8px}.toolbar-right{display:flex;align-items:center;gap:6px;margin-left:auto}.toolbar-icon-btn{width:32px;height:32px;border-radius:6px;background:0 0;display:flex;align-items:center;justify-content:center;transition:var(--transition);padding:0}.toolbar-icon-btn:hover{background:var(--bg)}.toolbar-icon-btn.active{background:#eff6ff}.mgmt-table-wrap{flex:1;overflow:auto}#deptTableContainer{display:flex;flex-direction:column;padding:0;overflow:hidden}#deptTableContainer .dept-table{width:100%;border:none}#deptTableContainer .dept-table thead th{background:#f8fafc;font-weight:500;color:#64748b;font-size:13px}.mgmt-user-table td:first-child,.mgmt-user-table th:first-child{text-align:center}.action-links{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;white-space:nowrap}.action-link{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--primary);cursor:pointer;padding:2px 6px;border-radius:4px;transition:var(--transition);white-space:nowrap;flex-shrink:0}.action-link:hover{background:rgba(37,99,235,.06)}.action-link.action-delete{color:var(--danger)}.action-link.action-delete:hover{background:rgba(239,68,68,.06)}.action-link.action-cancel-ship{color:#f59e0b}.action-link.action-cancel-ship:hover{background:rgba(245,158,11,.06);color:#d97706}.action-link.action-edit{color:#3b82f6}.action-link.action-edit:hover{background:rgba(59,130,246,.06);color:#2563eb}.action-link.action-lab{color:#8b5cf6}.action-link.action-lab:hover{background:rgba(139,92,246,.06);color:#7c3aed}.action-link.action-view{color:#10b981}.action-link.action-view:hover{background:rgba(16,185,129,.06);color:#059669}.action-link.action-audit{color:#f59e0b}.action-link.action-audit:hover{background:rgba(245,158,11,.06);color:#d97706}tr.pd-editing .pd-editable{padding:2px 4px!important;vertical-align:middle}.pd-cell-input{width:100%;height:32px;padding:0 8px;border:1px solid #3b82f6;border-radius:4px;font-size:13px;color:#1f2937;background:#fff;outline:0;box-sizing:border-box;font-family:inherit;box-shadow:0 0 0 2px rgba(59,130,246,.12)}.pd-cell-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(59,130,246,.18)}.pd-date-input{min-width:105px}tr.pd-editing{background:#f0f7ff!important}tr.pd-editing:hover{background:#e5f0ff!important}.action-links .pd-save-btn:hover{background:rgba(16,185,129,.08);color:#059669}.action-links .pd-cancel-btn:hover{background:rgba(107,114,128,.08);color:#4b5563}.action-link.action-ship{color:#22c55e}.action-link.action-ship:hover{background:rgba(34,197,94,.06);color:#16a34a}.action-link.action-print{color:#8b5cf6}.action-link.action-print:hover{background:rgba(139,92,246,.06);color:#7c3aed}.editable-value{display:inline-block;padding:2px 8px;border-radius:4px;color:var(--primary);font-weight:600;font-family:'SF Mono',Monaco,Inconsolata,'Fira Code',monospace;font-size:14px;transition:background .15s}.editable-value:hover{background:#eef2ff;text-decoration:underline}.role-tag{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;background:#ebf5ff;color:var(--primary);white-space:nowrap}.type-topnav{background:#fef3c7;color:#d97706}.type-sidebar-menu{background:#ede9fe;color:#7c3aed}.type-sidebar-page{background:#d1fae5;color:#059669}.data-scope-tag{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;background:#eef2ff;color:var(--primary);white-space:nowrap}.action-link.auth-link{color:var(--primary)}.action-link.auth-link svg{stroke:var(--primary)}.auth-modal{width:520px;max-height:80vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.15);display:flex;flex-direction:column;overflow:hidden}.auth-header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);gap:16px}.auth-title{font-size:15px;font-weight:600;color:var(--text-primary)}.auth-toolbar{margin-left:auto;display:flex;gap:20px;align-items:center}.auth-toolbar-item{display:flex;align-items:center;gap:4px;font-size:13px;color:#64748b;cursor:pointer;user-select:none}.auth-toolbar-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--primary);cursor:pointer}.auth-body{padding:8px 0;overflow-y:auto;max-height:calc(80vh - 120px);min-height:200px}.auth-tree{user-select:none}.auth-tree-node-content{display:flex;align-items:center;height:36px;padding-right:16px;cursor:default;transition:background .15s}.auth-tree-node-content:hover{background:rgba(59,130,246,.04)}.auth-tree-arrow{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;cursor:pointer}.auth-tree-arrow.empty{visibility:hidden}.auth-tree-arrow.expanded svg{transform:rotate(-90deg);transition:transform .2s}.auth-checkbox{width:15px;height:15px;margin-left:4px;margin-right:6px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.auth-node-label{font-size:13.5px;color:var(--text-primary)}.auth-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border)}.switch-toggle{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.switch-toggle input{opacity:0;width:0;height:0}.switch-toggle .switch-slider{position:absolute;inset:0;background:#d1d5db;border-radius:22px;transition:var(--transition)}.switch-toggle .switch-slider::before{content:'';position:absolute;height:18px;width:18px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:var(--transition);box-shadow:0 1px 3px rgba(0,0,0,.15)}.switch-toggle input:checked+.switch-slider{background:var(--primary)}.switch-toggle input:checked+.switch-slider::before{transform:translateX(18px)}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:10px 20px;border-top:1px solid var(--border);flex-shrink:0;background:#fafbfc}.pagination-info{font-size:12px;color:var(--text-secondary);margin-right:auto}.pagination-size-select select{padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;color:var(--text-secondary);background:#fff}.pagination-numbers{display:flex;align-items:center;gap:2px}.page-btn{min-width:30px;height:28px;border:1px solid var(--border);border-radius:4px;background:#fff;font-size:12px;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;padding:0 8px;transition:var(--transition)}.page-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.page-btn:disabled{opacity:.45;cursor:not-allowed}.pagination-jump{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}.page-jump-input{width:40px;height:28px;border:1px solid var(--border);border-radius:4px;text-align:center;font-size:12px;padding:0 4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:500;transition:var(--transition);white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-success{background:var(--success);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-danger{background:var(--danger)}.btn-outline{background:0 0;color:var(--text-secondary);border:1px solid var(--border)}.btn-outline:hover{background:var(--bg);border-color:var(--text-light)}.btn-danger-outline{background:0 0;color:var(--danger);border:1px solid #fecaca}.btn-danger-outline:hover{background:#fef2f2}.btn-danger-outline:disabled{color:#cbd5e1;border-color:#e2e8f0;cursor:not-allowed;background:#f8fafc}.btn-danger-outline:disabled:hover{background:#f8fafc}.btn-success-outline{background:0 0;color:var(--success);border:1px solid #a7f3d0}.btn-success-outline:hover{background:#ecfdf5}.btn-success-outline:disabled{color:#cbd5e1;border-color:#e2e8f0;cursor:not-allowed;background:#f8fafc}.btn-success-outline:disabled:hover{background:#f8fafc}.btn-sm{padding:5px 10px;font-size:12px}.table-container{overflow-x:auto}.data-table{width:100%;font-size:13px;table-layout:fixed}.data-table thead th{background:#f9fafb;padding:10px 14px;text-align:center;font-weight:600;color:var(--text-secondary);font-size:12px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table tbody td{text-align:center;padding:10px 14px;border-bottom:1px solid var(--border-light);color:var(--text);vertical-align:middle}.data-table tbody tr:hover{background:#fafbfc}.data-table tbody tr:last-child td{border-bottom:none}.tree-expand-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:10px;color:#94a3b8;margin-right:4px;transition:transform .15s;flex-shrink:0}.tree-expand-icon:hover{color:var(--primary)}.tree-child-row td{background:#fafbfc}.tree-child-row:hover td{background:#f0f2f5!important}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:1.5px solid #d1d5db;border-radius:3px;cursor:pointer;vertical-align:middle;position:relative;flex-shrink:0;background:#fff}input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:var(--text)}.form-group input,.form-group select,.form-group textarea{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;transition:var(--transition);background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:1000;animation:.2s fadeIn}.modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;animation:.25s slideUp}.modal .modal-header{flex-shrink:0}.modal .modal-body{flex:1;overflow-y:auto;padding:20px}.modal .modal-footer{flex-shrink:0}.modal-lg{max-width:800px}.modal-sm{max-width:420px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:16px;font-weight:600}.modal-close{background:0 0;font-size:20px;color:var(--text-light);width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--bg);color:var(--text)}.modal-body{padding:20px}.modal-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}.confirm-modal{max-width:420px}.barcode-generate-modal{max-width:900px!important;width:90%!important;background:var(--bg-card);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.15);display:flex;flex-direction:column;overflow:hidden;animation:.25s slideUp}.barcode-generate-modal .modal-header h3{font-size:16px;font-weight:600}.bcg-section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#1e293b;margin-bottom:14px}.bcg-section-bar{width:4px;height:16px;background:#3b82f6;border-radius:2px;display:inline-block}.bcg-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 20px}.bcg-form-item{display:flex;align-items:center;gap:10px}.bcg-form-item label{flex-shrink:0;width:76px;text-align:right;font-size:13px;color:#475569;white-space:nowrap}.bcg-form-item input[type=date],.bcg-form-item input[type=number],.bcg-form-item input[type=text]{flex:1;height:34px;padding:0 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;color:#334155;outline:0;transition:border-color .2s,box-shadow .2s;background:#fff}.bcg-form-item input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,235,.08)}.bcg-form-item input[readonly]{background:#f8fafc;color:#94a3b8;cursor:default}.pd-prod-date-input{height:40px!important;border:1px solid #d9d9d9!important;font-size:14px!important;color:#333!important;background:#fff!important;border-radius:6px;box-sizing:border-box}.pd-shelf-life-input{border-color:#e2e8f0}.bcg-number-control .bcg-spinner{flex:1;display:inline-flex;align-items:center;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;height:34px}.bcg-spinner{display:inline-flex;align-items:center;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;height:34px}.bcg-spinner button{width:32px;height:100%;border:none;background:#f1f5f9;color:#475569;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.bcg-spinner button:hover{background:#e2e8f0}.bcg-spinner input{width:50px;height:100%;border:none;text-align:center;font-size:13px;outline:0;-moz-appearance:textfield;color:#334155;min-width:48px}.bcg-table-wrap{margin-top:8px}.bcg-detail-table th{background:#f8fafc;font-size:13px;font-weight:500;color:#475569;padding:10px 12px;border-bottom:1px solid #e2e8f0}.bcg-detail-table td{padding:10px 12px;font-size:13px;color:#334155;border-bottom:1px solid #f1f5f9}.bcg-detail-table .empty-row{text-align:center;color:#94a3b8;padding:24px 0}.bcg-footer-right{margin-left:auto;display:flex;gap:10px}.label-print-preview-modal{width:780px;max-width:95vw;max-height:85vh;background:#fff;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.15);animation:.25s slideUp}.label-print-preview-modal .modal-header h3{font-size:16px;font-weight:600}.lpp-info-row{display:flex;align-items:center;gap:16px;padding:0 0 16px;border-bottom:1px solid #e2e8f0;margin-bottom:16px;font-size:14px;color:#475569}.lpp-info-row strong{color:#3b82f6}.lpp-info-hint{font-size:12px;color:#94a3b8;margin-left:auto}.lpp-label-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-height:50vh;overflow-y:auto;padding-right:4px}.lpp-label-card{border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;background:#fafbfc;transition:border-color .2s,box-shadow .2s}.lpp-label-card:hover{border-color:#3b82f6;box-shadow:0 2px 8px rgba(59,130,235,.1)}.lpp-label-header{display:flex;align-items:center;gap:10px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px dashed #e2e8f0}.lpp-barcode-text{font-family:'SF Mono',Consolas,Monaco,monospace;font-size:14px;font-weight:600;color:#1e293b;letter-spacing:.5px}.lpp-label-details{display:flex;flex-direction:column;gap:5px}.lpp-detail-row{display:flex;align-items:center;gap:8px;font-size:12px;color:#475569}.lpp-detail-label{min-width:60px;color:#94a3b8;flex-shrink:0}@media (max-width:640px){.lpp-label-grid{grid-template-columns:1fr}}.confirm-modal .modal-header{flex-direction:column;align-items:center;text-align:center;gap:12px;padding:28px 20px 16px;border-bottom:none}.confirm-modal .modal-header h3{font-size:17px;color:var(--text)}.confirm-modal-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:#fef3c7}.confirm-modal .modal-body{text-align:center;padding:0 20px 20px}.confirm-modal-text{font-size:14px;color:var(--text-secondary);line-height:1.7}.confirm-modal-text strong{color:var(--danger)}.form-error{display:block;margin-top:6px;font-size:12px;color:#ef4444}.confirm-modal .modal-footer{justify-content:center;border-top:none;padding:0 20px 24px}.confirm-modal .btn-outline{min-width:80px}.confirm-modal .btn-danger{min-width:80px;border-radius:6px;padding:8px 20px;font-size:14px;cursor:pointer}.confirm-modal .btn-danger:hover{background:#dc2626}.password-input-wrap{width:100%}.password-input-wrap .add-form-input{width:100%;padding:10px 14px;font-size:15px;border:1px solid var(--border);border-radius:6px;outline:0;transition:border-color .2s}.password-input-wrap .add-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.query-config-modal{width:480px;max-width:95vw}.query-config-body{max-height:55vh;overflow-y:auto}.query-config-hint{font-size:13px;color:var(--text-secondary);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.query-config-fields{display:flex;flex-direction:column;gap:6px}.query-config-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;background:var(--bg);transition:background .2s}.query-config-row:hover{background:#eff6ff}.query-config-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-primary);white-space:nowrap;min-width:90px;user-select:none}.query-config-check input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;cursor:pointer}.query-config-input-wrap{flex:1}.query-config-input,.query-config-select{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px;background:#fff;color:var(--text-primary);outline:0;transition:border-color .2s}.query-config-input:focus,.query-config-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgba(59,130,246,.15)}.query-config-select{cursor:pointer;appearance:auto}.query-config-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.toast-message{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-100px);background:#10b981;color:#fff;padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;box-shadow:0 4px 12px rgba(16,185,129,.3);z-index:10000;transition:transform .3s;pointer-events:none}.toast-message.show{transform:translateX(-50%) translateY(0)}.toast-message.toast-success{background:#10b981;color:#fff;box-shadow:0 4px 12px rgba(16,185,129,.3)}@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;padding:60px 20px;color:var(--text-light)}.empty-state p{font-size:14px}.empty-page-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.empty-page-placeholder h3{font-size:18px;font-weight:600;color:#475569;margin:20px 0 8px}.empty-page-placeholder p{font-size:14px;color:#94a3b8}@media (max-width:900px){.mgmt-page{flex-direction:column;height:auto}.mgmt-left-panel{width:100%;min-width:100%}.dept-tree-panel{height:auto;max-height:280px}.mgmt-right-panel{min-height:400px}.left-sidebar{position:fixed;left:-220px;top:52px;bottom:0;z-index:400;box-shadow:var(--shadow-lg);transition:left .25s}.left-sidebar.mobile-open{left:0}.mgmt-filter-bar{flex-direction:column;align-items:stretch}.filter-row{flex-direction:column;align-items:stretch;gap:4px}.filter-input,.filter-select{width:100%!important}}.search-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:10000;display:flex;justify-content:center;padding-top:80px;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.search-overlay.show{opacity:1;visibility:visible}.search-panel{width:620px;max-width:90vw;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden;display:flex;flex-direction:column;max-height:560px}.search-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid #e2e8f0}.search-input-wrap svg{flex-shrink:0}.search-input{flex:1;border:none;outline:0;font-size:15px;color:#1e293b;background:0 0}.search-input::placeholder{color:#94a3b8}.search-kbd{display:inline-block;padding:2px 8px;font-size:11px;color:#94a3b8;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;font-family:inherit;flex-shrink:0}.search-cancel-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;color:#94a3b8;background:0 0;border:none;border-radius:4px;cursor:pointer;flex-shrink:0;transition:.2s}.search-cancel-btn:hover{color:#ef4444;background:#fef2f2}.search-results{overflow-y:auto;padding:6px;max-height:420px}.search-result-group{padding:8px 12px 2px;font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.search-result-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .15s;color:#334155;font-size:14px}.search-result-item.active,.search-result-item:hover{background:#eff6ff;color:#2563eb}.search-result-item .result-icon{width:32px;height:32px;border-radius:6px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;flex-shrink:0}.search-result-item.active .result-icon,.search-result-item:hover .result-icon{background:#dbeafe}.search-result-item .result-info{display:flex;flex-direction:column;gap:1px}.search-result-item .result-name{font-weight:500}.search-result-item .result-path{font-size:11px;color:#94a3b8}.search-result-empty{padding:32px 16px;text-align:center;color:#94a3b8;font-size:13px}.search-highlight{color:#2563eb;font-weight:600}.search-tree-item{border-radius:6px;margin:1px 4px}.search-tree-item-dim{opacity:.55}.search-tree-item-row{margin:1px 4px}.search-tree-expand{display:inline-flex;align-items:center;justify-content:center;width:22px;height:36px;flex-shrink:0;cursor:pointer;border-radius:4px;transition:.2s;color:#94a3b8}.search-tree-expand:hover{background:#e2e8f0;color:#475569}.search-tree-expand svg{transition:transform .2s;pointer-events:none}.search-tree-expand.expanded svg{transform:rotate(90deg)}.search-tree-expand-placeholder{display:inline-block;width:22px;height:36px;flex-shrink:0}.search-tree-type-tag{display:inline-block;font-size:10px;font-weight:500;padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:middle;color:#6b7280;background:#f3f4f6;letter-spacing:.3px}.search-tree-item[data-type=topNav] .search-tree-type-tag{color:#2563eb;background:#eff6ff}.search-tree-item[data-type=sidebarGroup] .search-tree-type-tag{color:#7c3aed;background:#f5f3ff}.search-tree-item[data-type=sidebarPage] .search-tree-type-tag{color:#059669;background:#ecfdf5}.search-tree-item .result-name{display:inline-flex;align-items:center}.message-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:10001;display:flex;justify-content:flex-end;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.message-overlay.show{opacity:1;visibility:visible}.message-panel{width:400px;max-width:90vw;height:100vh;background:#fff;box-shadow:-4px 0 24px rgba(0,0,0,.12);display:flex;flex-direction:column;animation:.25s slideInRight}@keyframes slideInRight{from{transform:translateX(100%)}to{transform:translateX(0)}}.message-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0;font-size:16px;font-weight:600;color:#1e293b;flex-shrink:0}.message-panel-close{background:0 0;border:none;cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s}.message-panel-close:hover{background:#f1f5f9}.message-list{flex:1;overflow-y:auto;padding:0}.message-item{display:flex;gap:12px;padding:14px 20px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .15s}.message-item:hover{background:#f8fafc}.message-item.unread{background:#eff6ff}.message-item.unread:hover{background:#dbeafe}.message-item-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}.message-item-icon.info{background:#eff6ff;color:#2563eb}.message-item-icon.warning{background:#fffbeb;color:#f59e0b}.message-item-icon.success{background:#ecfdf5;color:#10b981}.message-item-icon.danger{background:#fef2f2;color:#ef4444}.message-item-body{flex:1;min-width:0}.message-item-title{font-size:14px;font-weight:500;color:#1e293b;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-item.unread .message-item-title{font-weight:600}.message-item-content{font-size:13px;color:#64748b;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.message-item-meta{font-size:12px;color:#94a3b8;margin-top:6px;display:flex;align-items:center;gap:8px}.message-item-dot{width:6px;height:6px;border-radius:50%;background:var(--primary,#2563eb);flex-shrink:0}.message-item.unread .message-item-dot{display:inline-block}.message-item:not(.unread) .message-item-dot{display:none}.message-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#94a3b8;font-size:14px;gap:8px}.layout-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:10000;display:flex;justify-content:center;align-items:flex-start;padding-top:60px;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.layout-overlay.show{opacity:1;visibility:visible}.layout-panel{width:400px;max-width:92vw;max-height:85vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden;display:flex;flex-direction:column}.layout-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0;font-size:15px;font-weight:600;color:#1e293b}.layout-panel-close{width:28px;height:28px;border-radius:6px;background:0 0;display:flex;align-items:center;justify-content:center;transition:background .15s}.layout-panel-close:hover{background:#f1f5f9}.layout-panel-body{padding:16px 20px;overflow-y:auto;flex:1}.layout-section{margin-bottom:20px}.layout-section:last-child{margin-bottom:0}.layout-section-title{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.layout-options{display:flex;gap:10px}.layout-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;border-radius:8px;border:2px solid #e2e8f0;cursor:pointer;transition:.15s;font-size:12px;color:#64748b}.layout-option:hover{border-color:#93c5fd;background:#eff6ff}.layout-option.active{border-color:var(--primary);background:#eff6ff;color:var(--primary)}.layout-preview{width:100%;height:48px;border-radius:4px;overflow:hidden;background:#f1f5f9;display:flex;flex-direction:column;gap:2px;padding:3px}.lp-top{height:10px;background:#cbd5e1;border-radius:2px}.lp-body{flex:1;display:flex;gap:2px}.lp-side{width:30%;background:#e2e8f0;border-radius:2px}.lp-main{flex:1;background:#e2e8f0;border-radius:2px}.layout-option.active .lp-main,.layout-option.active .lp-side,.layout-option.active .lp-top{background:var(--primary);opacity:.35}.color-options{display:flex;gap:8px;flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:.15s;position:relative}.color-option:hover{transform:scale(1.15)}.color-option.active{border-color:#fff;box-shadow:0 0 0 3px currentColor}.color-option.active::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:2px solid #1e293b}.layout-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:13px;color:#334155}.layout-toggle-row+.layout-toggle-row{border-top:1px solid #f1f5f9}.toggle-switch{position:relative;width:40px;height:22px;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:#cbd5e1;border-radius:11px;transition:background .2s}.toggle-slider::before{content:'';position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.15)}.toggle-switch input:checked+.toggle-slider{background:var(--primary)}.toggle-switch input:checked+.toggle-slider::before{transform:translateX(18px)}.layout-panel-footer{padding:12px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end}.layout-btn-reset{padding:6px 16px;border-radius:6px;background:#f1f5f9;color:#64748b;font-size:13px;transition:.15s}.layout-btn-reset:hover{background:#e2e8f0;color:#334155}.main-app.home-page .left-sidebar,.main-app.layout-topOnly .left-sidebar{display:none}.main-app.layout-topOnly .top-logo{width:220px!important;min-width:220px!important}.main-app.layout-topOnly .top-logo-text{display:block!important}.main-app.layout-topOnly .top-logo-icon{display:none!important}.main-app.layout-sideOnly .top-header{display:none}.main-app.layout-sideOnly .body-area{height:100vh}.left-sidebar-footer{display:none;padding:12px 16px;border-top:1px solid #e2e8f0;gap:8px}.main-app.layout-sideOnly .left-sidebar-footer{display:flex}.sidebar-action-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;background:0 0;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:13px;color:#475569;flex:1;justify-content:center;transition:.2s}.sidebar-action-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:var(--primary,#2563eb)}.left-sidebar.dark-mode .left-sidebar-footer{border-top-color:#334155}.left-sidebar.dark-mode .sidebar-action-btn{color:#94a3b8;border-color:#334155}.left-sidebar.dark-mode .sidebar-action-btn:hover{background:#334155;color:#e2e8f0}.left-sidebar.dark-mode{background:#1e293b;border-right-color:#334155}.left-sidebar.dark-mode .left-sidebar-brand{border-bottom-color:#334155}.left-sidebar.dark-mode .left-sidebar-title{color:#e2e8f0}.left-sidebar.dark-mode .sidebar-menu-title{color:#cbd5e1}.left-sidebar.dark-mode .sidebar-menu-title:hover{background:#334155;color:#f1f5f9}.left-sidebar.dark-mode .sidebar-menu-title.active{background:rgba(37,99,235,.3);color:#93c5fd}.left-sidebar.dark-mode .sidebar-menu-child{color:#94a3b8}.left-sidebar.dark-mode .sidebar-menu-child:hover{background:#334155;color:#e2e8f0}.left-sidebar.dark-mode .sidebar-menu-child.active{background:rgba(37,99,235,.25);color:#60a5fa}.left-sidebar.dark-mode .sidebar-menu-icon svg{stroke:#94a3b8}.main-app.hide-tabbar .tab-bar{display:none}.modal-add{max-width:680px!important;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-add .modal-header{flex-shrink:0}.modal-add .modal-body{flex:1;overflow-y:auto;padding:16px 20px}.modal-add .modal-footer{flex-shrink:0}.add-user-modal .modal-header h3{font-size:16px;font-weight:600}.add-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 32px}.add-form-item{display:flex;flex-direction:column;gap:6px}.add-form-label{font-size:13px;color:var(--text);font-weight:400;white-space:nowrap}.required-star{color:#ef4444;margin-right:2px}.add-form-input,.add-form-select{height:36px;padding:0 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text);background:#fff;transition:var(--transition);width:100%}.add-form-input:focus,.add-form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.add-form-input::placeholder,.add-form-select::placeholder{color:#c9cccf}.add-form-select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}.role-tag-select{position:relative}.selected-role{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 12px;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:var(--transition);background:#fff}.selected-role:hover{border-color:var(--primary-light)}.selected-role .role-text{font-size:13px;color:var(--text)}.selected-role svg{flex-shrink:0;transition:transform .2s}.role-tag-select.open .selected-role svg{transform:rotate(180deg)}.role-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-md);z-index:100;overflow:hidden}.role-option{padding:8px 12px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:background .15s}.role-option:hover{background:#f0f5ff;color:var(--primary)}.position-hint{margin-top:2px;font-size:12px;color:#f59e0b}.status-radio-group{display:flex;align-items:center;gap:28px}.status-radio{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;user-select:none;padding:4px 0}.radio-circle{width:18px;height:18px;border-radius:50%;border:1.5px solid #d1d5db;position:relative;transition:.2s;flex-shrink:0}.radio-circle.checked{border-color:var(--primary);background:var(--primary)}.radio-circle.checked::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:#fff}.status-radio.active{color:var(--primary);font-weight:500}.add-form-input.error,.add-form-select.error,.role-tag-select.error{border-color:#ef4444!important}.form-error-inline{display:block;font-size:12px;color:#ef4444;line-height:1.4}.modal-add-footer{justify-content:flex-end}.edit-user-modal .modal{max-width:560px}.edit-user-modal .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 32px}.edit-user-modal .form-group{display:flex;flex-direction:column;gap:6px}.edit-user-modal .form-group label{font-size:13px;color:var(--text);font-weight:400;white-space:nowrap}.edit-user-modal .form-group input,.edit-user-modal .form-group select{height:36px;padding:0 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--text);background:#fff;transition:var(--transition);width:100%}.edit-user-modal .form-group input:focus,.edit-user-modal .form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.edit-user-modal .form-group input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.btn-primary-lg{min-width:80px;padding:8px 32px!important;border-radius:6px;font-size:14px!important}.modal-overlay.role-form-overlay .role-form-modal{max-height:none!important;height:auto!important;display:block!important;overflow:visible!important;border-radius:12px!important;box-shadow:0 20px 60px rgba(0,0,0,.15)!important;padding:0!important}.modal-overlay.role-form-overlay .role-form-modal>.modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:18px 28px!important;border-bottom:1px solid #e5e7eb!important;flex:none!important;flex-shrink:0!important;overflow:visible!important;width:auto!important;height:auto!important;max-height:none!important;min-height:0!important}.modal-overlay.role-form-overlay .role-form-modal>.modal-header h3{font-size:17px!important;font-weight:600!important;color:#1f2937!important;line-height:1!important}.modal-overlay.role-form-overlay .role-form-modal>.modal-body{display:block!important;flex:none!important;overflow:visible!important;padding:24px 28px 14px!important;flex-shrink:0!important;width:auto!important;height:auto!important;max-height:none!important;min-height:0!important}.modal-overlay.role-form-overlay .role-form-modal>.modal-footer{display:flex!important;align-items:center!important;justify-content:flex-end!important;padding:14px 28px 22px!important;border-top:1px solid #e5e7eb!important;flex:none!important;flex-shrink:0!important;overflow:visible!important;gap:12px!important;width:auto!important;height:auto!important;max-height:none!important;min-height:0!important}.role-form-row{display:flex;align-items:center;gap:16px;margin-bottom:18px}.role-form-row:has(.role-form-textarea) .role-form-textarea{align-self:flex-start}.role-form-row:last-child{margin-bottom:0}.role-form-label{flex-shrink:0;width:80px;text-align:right;font-size:14px;color:#333;white-space:nowrap;line-height:40px;display:flex;align-items:center;justify-content:flex-end}.role-form-input,.role-form-select{flex:1;height:40px;padding:0 14px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;color:#333;background:#fff;outline:0;transition:.2s}.role-form-input:focus,.role-form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.role-form-input::placeholder{color:#bfbfbf}.role-form-input[readonly]{background:#f8fafc;color:#64748b;border-color:#e2e8f0;cursor:default}.role-form-textarea{flex:1;min-height:88px;max-height:140px;padding:10px 14px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;color:#333;background:#fff;outline:0;resize:vertical;transition:.2s;line-height:1.5}.role-form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08)}.role-form-textarea::placeholder{color:#bfbfbf}.supplier-directory-buyer-wrap{position:relative;flex:1}.supplier-buyer-display{min-height:38px;padding:4px 32px 4px 10px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:4px;position:relative;transition:border-color .2s}.supplier-buyer-display:hover{border-color:#3b82f6}.supplier-buyer-display::after{content:'';position:absolute;right:10px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #94a3b8}.supplier-buyer-tags{display:flex;flex-wrap:wrap;gap:4px}.supplier-buyer-tag{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;font-size:12px;background:#eff6ff;color:#3b82f6;border:1px solid #bfdbfe;border-radius:4px;white-space:nowrap}.supplier-buyer-tag-remove{font-size:14px;color:#94a3b8;cursor:pointer;line-height:1;margin-left:2px}.supplier-buyer-tag-remove:hover{color:#ef4444}.supplier-buyer-placeholder{font-size:13px;color:#bfbfbf}.supplier-buyer-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);max-height:220px;overflow-y:auto}.supplier-buyer-dropdown-inner{padding:4px 0}.supplier-buyer-option{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;color:#374151;transition:background .15s}.supplier-buyer-option:hover{background:#f3f4f6}.supplier-buyer-option input[type=checkbox]{width:15px;height:15px;accent-color:#3B82F6;cursor:pointer;margin:0}.supplier-buyer-option-dept{margin-left:auto;font-size:11px;color:#9ca3af}.supplier-buyer-empty{padding:12px;text-align:center;font-size:13px;color:#9ca3af}.supplier-directory-remark-bar{padding:10px 16px;margin:0 16px 8px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px}.supplier-directory-remark-text{color:#ef4444;font-size:13px;line-height:1.6}.role-form-select-wrap{position:relative;flex:1}.role-form-select-wrap svg{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:1}.role-form-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:34px}.btn-role-cancel{min-width:76px;height:38px;border:1px solid #d9d9d9;border-radius:4px;font-size:14px;color:#666;background:#fff;cursor:pointer;transition:.2s;padding:0 24px}.btn-role-cancel:hover{border-color:var(--primary)!important;color:var(--primary)!important;background:#fff!important}.btn-role-confirm{min-width:76px;height:38px;border:none;border-radius:4px;font-size:14px;color:#fff;background:var(--primary);cursor:pointer;transition:.2s;padding:0 32px}.btn-role-confirm:hover{background:#1d4ed8}.modal-overlay.position-form-overlay .position-form-modal{width:640px!important;max-width:640px!important;max-height:none!important;height:auto!important;display:block!important;overflow:visible!important;border-radius:12px!important;box-shadow:0 20px 60px rgba(0,0,0,.15)!important;padding:0!important}.modal-overlay.position-form-overlay .position-form-modal>.modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:18px 28px!important;border-bottom:1px solid #e5e7eb!important;flex:none!important;flex-shrink:0!important;overflow:visible!important;width:auto!important;height:auto!important;max-height:none!important;min-height:0!important}.modal-overlay.position-form-overlay .position-form-modal>.modal-header h3{font-size:17px!important;font-weight:600!important;color:#1f2937!important;line-height:1!important}.modal-overlay.position-form-overlay .position-form-modal>.modal-body{display:block!important;flex:none!important;overflow:visible!important;padding:24px 28px 14px!important;flex-shrink:0!important;width:auto!important;height:auto!important;max-height:none!important;min-height:0!important}.modal-overlay.position-form-overlay .position-form-modal>.modal-footer{display:flex!important;align-items:center!important;justify-content:flex-end!important;padding:14px 28px 22px!important;border-top:1px solid #e5e7eb!important;flex:none!important;flex-shrink:0!important;overflow:visible!important;gap:12px!important;width:auto!important;height:auto!important;max-height:none!important;min-height:0!important}.position-dept-picker{display:flex;align-items:center;gap:12px;flex:1}.position-dept-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s;flex-shrink:0;padding:0}.position-dept-btn:hover{border-color:var(--primary);background:#f0f5ff}.position-dept-btn:hover svg{stroke:var(--primary)}.position-dept-display{font-size:14px;color:#374151}.dept-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.35);z-index:10000;display:flex;align-items:center;justify-content:center}.dept-picker-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.15);width:480px;max-width:90vw;max-height:70vh;overflow:hidden;display:flex;flex-direction:column}.dept-picker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.dept-picker-header h4{font-size:16px;font-weight:600;color:#1f2937;margin:0}.dept-picker-close{width:28px;height:28px;border-radius:50%;border:none;background:0 0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#9ca3af;transition:.2s;font-size:18px;line-height:1}.dept-picker-close:hover{color:#374151;background:#f3f4f6}.dept-picker-body{padding:16px 24px;overflow-y:auto;flex:1}.dept-search-input{width:100%;height:36px;border:1px solid #d1d5db;border-radius:8px;padding:0 36px 0 12px;font-size:13px;outline:0;transition:border-color .2s;box-sizing:border-box;margin-bottom:12px}.dept-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dept-search-wrap{position:relative}.dept-search-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.dept-picker-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid #e5e7eb;flex-shrink:0}.menu-name-cell{font-weight:500;cursor:pointer;padding:2px 8px;border-radius:4px;transition:.2s}.menu-name-cell:hover{background:#eff6ff;color:#3b82f6}.menu-name-cell.active{background:#dbeafe;color:#3b82f6}.menu-tree-row{transition:background .15s}.menu-tree-row:hover{background:#fafbfc}.menu-tree-name-cell{display:flex;align-items:center;gap:6px;min-width:0}.menu-tree-expand{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;cursor:pointer;border-radius:4px;transition:.2s;color:#94a3b8}.menu-tree-expand:hover{background:#e2e8f0;color:#475569}.menu-tree-expand svg{transition:transform .2s;pointer-events:none}.menu-tree-expand.expanded svg{transform:rotate(90deg)}.menu-tree-expand-placeholder{display:inline-block;width:20px;height:20px;flex-shrink:0}.menu-tree-node-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.menu-tree-row-topnav{background:#f0f7ff;font-weight:600}.menu-tree-row-topnav:hover{background:#e0effe!important}.menu-tree-row-topnav .menu-name-cell{font-weight:600;color:#1e40af}.menu-tree-row-group{background:#fafbfc;font-weight:500}.menu-tree-row-group:hover{background:#f0f4f8!important}.menu-tree-row-group .menu-name-cell{font-weight:500}.menu-tree-row-page td{font-size:12px;color:#6b7280}.menu-tree-children .menu-tree-row:nth-child(2n){background:#fdfdfe}.menu-tree-children .menu-tree-row:nth-child(2n):hover{background:#f5f7fa}.cache-tag{display:inline-block;padding:1px 10px;border-radius:4px;font-size:12px;border:1px solid #e5e7eb;color:#6b7280;background:#f9fafb}.cache-tag.open{border-color:#d1fae5;color:#059669;background:#ecfdf5}.type-radio-group{display:flex;gap:16px;flex-wrap:wrap}.type-radio-option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:7px 20px;border:1.5px solid var(--border);border-radius:8px;transition:.2s;font-size:14px;user-select:none}.type-radio-option input{display:none}.type-radio-option .radio-custom{width:18px;height:18px;border:2px solid #d1d5db;border-radius:50%;transition:.2s;position:relative;flex-shrink:0}.type-radio-option.active{border-color:var(--primary);color:var(--primary)}.type-radio-option.active .radio-custom{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.15)}.type-radio-option.active .radio-custom.checked::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:var(--primary);border-radius:50%}.sort-number-input{position:relative;display:flex;align-items:center}.sort-number-input .sort-num{flex:1;min-width:80px}.sort-stepper{display:flex;flex-direction:column;margin-left:4px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.sort-step-down,.sort-step-up{width:26px;height:17px;border:none;background:#f9fafb;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:background .15s;padding:0}.sort-step-up{border-bottom:1px solid var(--border)}.sort-step-down:hover,.sort-step-up:hover{background:#e5e7eb}.field-help-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:#e5e7eb;color:#6b7280;font-size:10px;font-weight:600;vertical-align:middle;margin-left:4px;cursor:help}.scope-checkbox-group{display:flex;gap:24px}.scope-check-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-secondary);user-select:none}.scope-check-item input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px}.cache-radio-group{display:flex;gap:12px}.cache-radio-opt{display:flex;align-items:center;gap:6px;cursor:pointer;padding:6px 16px;border:1.5px solid var(--border);border-radius:8px;transition:.2s;font-size:13px;user-select:none}.cache-radio-opt input{display:none}.cache-radio-opt .radio-circle{width:16px;height:16px;border:2px solid #d1d5db;border-radius:50%;transition:.2s;position:relative;flex-shrink:0}.cache-radio-opt.active{border-color:var(--primary)}.cache-radio-opt.active .radio-circle{border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.12)}.cache-radio-opt.active .radio-circle.checked::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:7px;height:7px;background:var(--primary);border-radius:50%}.icon-picker-wrap{display:flex;align-items:center;gap:8px;width:100%}.icon-preview-btn{width:36px;height:36px;border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;background:#f9fafb;flex-shrink:0}.icon-picker-wrap .icon-input{flex:1}.form-item-full-row{grid-column:1/-1}.form-item-half{grid-column:span 1}@media (max-width:600px){.form-item-full-row,.form-item-half{grid-column:1/-1}}.dept-tree-container{position:relative;min-height:420px;overflow:auto;padding:40px 24px;background:#f8fafc;border-radius:0 0 8px 8px;display:flex;justify-content:center}.dept-tree-canvas{transform-origin:top center;transition:transform .2s;padding:10px;display:inline-block}.dept-flow-level{display:flex;flex-direction:column;align-items:center;gap:0;position:relative}.dept-flow-parallel>.dept-flow-branch>.dept-flow-children{display:flex;flex-direction:row;gap:32px;padding-top:48px;position:relative;justify-content:center;flex-wrap:wrap;transition:opacity .25s,max-height .25s;overflow:hidden}.dept-flow-parallel>.dept-flow-branch>.dept-flow-children::before{content:'';position:absolute;top:22px;left:16px;right:16px;height:1.5px;background:#cbd5e1}.dept-flow-parallel>.dept-flow-branch>.dept-flow-children>.dept-flow-branch>.dept-flow-node::before{content:'';position:absolute;left:50%;top:-28px;width:1.5px;height:28px;background:#cbd5e1;transform:translateX(-50%)}.dept-flow-parallel>.dept-flow-branch>.dept-flow-node.has-children::after{content:'';position:absolute;left:50%;bottom:-28px;width:1.5px;height:28px;background:#cbd5e1;transform:translateX(-50%)}.dept-flow-serial>.dept-flow-branch>.dept-flow-children{display:flex;flex-direction:column;align-items:center;gap:0;padding-top:16px;position:relative;transition:opacity .25s,max-height .25s;overflow:hidden}.dept-flow-serial>.dept-flow-branch>.dept-flow-node.has-children::after{content:'';position:absolute;left:50%;bottom:-16px;width:1.5px;height:16px;background:#cbd5e1;transform:translateX(-50%)}.dept-flow-serial>.dept-flow-branch>.dept-flow-children::before,.dept-flow-serial>.dept-flow-branch>.dept-flow-children>.dept-flow-branch>.dept-flow-node::before{display:none}.dept-flow-children.collapsed{opacity:0;max-height:0!important;padding-top:0!important;margin:0!important}.dept-flow-node{position:relative;display:inline-flex;align-items:center;justify-content:center}.dept-flow-node-inner{display:inline-flex;align-items:center;gap:6px;padding:12px 28px;background:#f1f3f5;border:1.5px solid #dde1e6;border-radius:6px;font-size:14px;font-weight:500;color:#495057;white-space:nowrap;cursor:default;transition:.2s;box-shadow:none;position:relative;z-index:1}.dept-flow-node.has-children .dept-flow-node-inner{border-color:#b0b8c4;background:#ebeef2;color:#364052;font-weight:600}.dept-flow-node-inner:hover{border-color:#94a3b8;box-shadow:0 2px 8px rgba(0,0,0,.08);transform:translateY(-1px)}.dept-flow-toggle{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:pointer;color:#868e96;flex-shrink:0;border-radius:50%;background:0 0;transition:.2s}.dept-flow-toggle:hover{color:#495057;background:rgba(0,0,0,.04)}.dept-flow-toggle svg{pointer-events:none}.dept-flow-toggle.expanded svg{transform:rotate(90deg)}.dept-flow-label{user-select:none;line-height:1.2}.dept-flow-level>.dept-flow-branch{position:relative;display:flex;flex-direction:column;align-items:center}.dept-tree-canvas>.dept-flow-level>.dept-flow-branch>.dept-flow-node>.dept-flow-node-inner{border-color:#2563eb;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;font-size:15px;padding:14px 32px;border-radius:8px;box-shadow:0 2px 8px rgba(37,99,235,.25)}.dept-tree-canvas>.dept-flow-level>.dept-flow-branch>.dept-flow-node>.dept-flow-node-inner:hover{border-color:#1d4ed8;box-shadow:0 4px 16px rgba(37,99,235,.35)}.dept-tree-canvas>.dept-flow-level>.dept-flow-branch>.dept-flow-node .dept-flow-toggle{color:rgba(255,255,255,.8);background:rgba(255,255,255,.15)}.dept-tree-canvas>.dept-flow-level>.dept-flow-branch>.dept-flow-node .dept-flow-toggle:hover{color:#fff;background:rgba(255,255,255,.25)}.dept-flow-branch>.dept-flow-node.has-children:not(.expanded)::after,.dept-flow-children.collapsed::before,.dept-flow-children.collapsed>.dept-flow-branch>.dept-flow-node::before{display:none}.dept-zoom-controls{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:6px 3px;box-shadow:0 1px 4px rgba(0,0,0,.08)}.dept-zoom-level{font-size:11px;color:var(--text-secondary);font-weight:500;line-height:1;margin-bottom:2px}.zoom-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:0 0;color:#6b7280;font-size:16px;border-radius:4px;cursor:pointer}.zoom-btn:hover{background:#f3f4f6;color:var(--primary)}.dept-table .action-link.danger{color:var(--danger)}.dept-table .action-link.danger:hover{color:#dc2626}.dept-table-expand{display:inline-flex;align-items:center;cursor:pointer;margin-right:4px;width:16px;transition:transform .2s}.dept-table-expand svg{pointer-events:none;transition:transform .2s}.dept-table-expand:hover svg{stroke:var(--primary)}tr.row-collapsed{display:none}.dept-table-toolbar,.dept-tree-toolbar{display:flex;align-items:center;gap:8px}.dept-table-toolbar{width:100%}.dept-toolbar-spacer{flex:1}.dept-expand-btn{font-size:13px!important}.add-form-input-wrap{position:relative;display:flex;align-items:center;flex:1}.add-form-clear-btn{position:absolute;right:8px;background:0 0;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;opacity:.6}.add-form-clear-btn:hover{opacity:1}.dept-sort-control{display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden;max-width:220px}.sort-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:#f9fafb;border:none;font-size:18px;color:#6b7280;cursor:pointer;flex-shrink:0;transition:background .15s}.sort-btn:hover{background:#e5e7eb;color:var(--text)}.sort-minus{border-right:1px solid var(--border)}.sort-plus{border-left:1px solid var(--border)}.sort-input{flex:1;min-width:60px;height:38px;text-align:center;border:none;outline:0;font-size:14px;font-weight:600;color:var(--text)}.receipt-scan-wrap{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;transition:border-color .2s,box-shadow .2s;min-width:340px}.receipt-scan-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.08);background:#fff}.receipt-scan-wrap svg{flex-shrink:0}.receipt-scan-input{flex:1;border:none;outline:0;background:0 0;font-size:14px;color:var(--text);font-family:'SF Mono',Consolas,Monaco,monospace;min-width:0}.receipt-scan-input::placeholder{color:#94a3b8;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;font-size:13px}.receipt-scan-clear{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:0 0;border:none;cursor:pointer;flex-shrink:0;transition:background .15s;padding:0}.receipt-scan-clear:hover{background:#e2e8f0}.receipt-scan-clear:hover svg{stroke:#64748B}.toast-message.toast-warning{background:#f59e0b;color:#fff;box-shadow:0 4px 12px rgba(245,158,11,.3)}.scada-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}.scada-kpi-card{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:16px 20px;text-align:center;transition:box-shadow .2s,transform .2s}.scada-kpi-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.06);transform:translateY(-2px)}.scada-kpi-label{font-size:12px;color:var(--text-secondary);margin-bottom:6px;font-weight:500}.scada-kpi-value{font-size:28px;font-weight:700;color:var(--text);line-height:1.2}.scada-kpi-success .scada-kpi-value{color:var(--success)}.scada-kpi-warning .scada-kpi-value{color:var(--warning)}.scada-kpi-danger .scada-kpi-value{color:var(--danger)}.scada-kpi-gray .scada-kpi-value{color:#94a3b8}.scada-kpi-primary .scada-kpi-value{color:var(--primary)}.scada-live-dot{width:8px;height:8px;border-radius:50%;background:var(--success);animation:1.5s ease-in-out infinite scada-pulse}@keyframes scada-pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(16,185,129,.4)}50%{opacity:.6;box-shadow:0 0 0 6px rgba(16,185,129,0)}}.scada-chart-container{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:20px;overflow:hidden}.scada-chart-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-weight:600;font-size:14px;color:var(--text)}.scada-chart-legend{display:flex;gap:16px;font-size:12px;font-weight:400;color:var(--text-secondary)}.scada-legend-item{display:flex;align-items:center;gap:6px}.scada-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.scada-chart-svg{width:100%;height:auto}.scada-section-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px;padding-left:12px;border-left:3px solid var(--primary)}.scada-alarm-critical{display:inline-block;background:#fee2e2;color:#dc2626;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:600}.scada-alarm-major{display:inline-block;background:#fef3c7;color:#d97706;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:600}.scada-alarm-minor{display:inline-block;background:#dbeafe;color:#2563eb;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:600}.scada-alarm-warning{display:inline-block;background:#f3f4f6;color:#6b7280;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:600}.scada-table-section{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:20px}.scada-alarm-rules{background:var(--card-bg);border-radius:10px;overflow:hidden}@media (max-width:768px){.scada-kpi-row{grid-template-columns:repeat(3,1fr)}.scada-chart-legend{flex-wrap:wrap;gap:8px}}.mould-page{padding:20px}.mould-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.mould-page-header h3{margin:0;font-size:18px;font-weight:600}.mould-page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mould-table-wrap{overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.mould-section-title{font-size:15px;font-weight:600;margin:20px 0 10px;color:#333}.mould-stat{font-size:14px;color:#666}.mould-kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px}.mould-kb-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:16px;transition:box-shadow .2s}.mould-kb-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.mould-kb-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.mould-kb-card h4{margin:0 0 12px;font-size:15px;color:#333}.mould-kb-section{font-size:13px;color:#555;margin-bottom:8px;line-height:1.6}.mould-kb-section pre{white-space:pre-wrap;margin:4px 0 0;background:#f7f8fa;padding:8px 12px;border-radius:4px;font-size:12px;line-height:1.7}.mould-kb-difficulty{font-size:12px}.mould-kb-footer{margin-top:12px;padding-top:12px;border-top:1px solid #f0f0f0;display:flex;gap:8px}.mould-timeline{position:relative;padding-left:30px}.mould-timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:#e8e8e8}.mould-timeline-item{position:relative;margin-bottom:16px}.mould-timeline-dot{position:absolute;left:-26px;top:12px;width:10px;height:10px;border-radius:50%;background:#1890ff;border:2px solid #fff;box-shadow:0 0 0 2px #1890ff}.mould-timeline-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:14px 16px}.mould-timeline-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.mould-timeline-icon{font-size:16px}.mould-timeline-type{font-size:12px}.mould-timeline-mould{font-size:13px;font-weight:600;color:#333}.mould-timeline-desc{font-size:13px;color:#555;margin-bottom:6px}.mould-timeline-meta{display:flex;gap:20px;font-size:12px;color:#999}.mould-timeline-remark{font-size:12px;color:#888;margin-top:4px;padding-top:4px;border-top:1px dashed #eee}.mould-life-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.mould-life-kpi{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;text-align:center}.mould-life-kpi-val{font-size:32px;font-weight:700;color:#333}.mould-life-kpi-label{font-size:13px;color:#888;margin-top:4px}.mould-life-chart-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;margin-bottom:16px}.mould-life-bars{display:flex;flex-direction:column;gap:16px}.mould-life-bar-label{display:flex;justify-content:space-between;font-size:13px;color:#333;margin-bottom:6px}.mould-life-bar-track{height:18px;background:#f0f0f0;border-radius:9px;overflow:hidden}.mould-life-bar-fill{height:100%;border-radius:9px;transition:width .6s;min-width:2px}.mould-life-bar-info{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#888;margin-top:4px}.mould-life-mini-bar{display:flex;align-items:center;gap:8px}.mould-life-mini-fill{height:8px;border-radius:4px;min-width:2px;max-width:120px;transition:width .4s}.mould-life-mini-bar span{font-size:12px;white-space:nowrap}@media (max-width:768px){.mould-page-header{flex-direction:column;align-items:flex-start}.mould-page-actions{width:100%}.mould-page-actions .form-input,.mould-page-actions .form-select{flex:1;min-width:0}.mould-kb-grid{grid-template-columns:1fr}.mould-life-kpi-row{grid-template-columns:repeat(2,1fr)}}.report-page{padding:20px}.report-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.report-page-header h3{margin:0;font-size:18px;font-weight:600}.report-page-actions{display:flex;align-items:center;gap:12px}.report-date-label{font-size:13px;color:#888}.report-kpi-row{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:20px}.report-kpi{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;display:flex;align-items:center;gap:14px}.report-kpi-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.report-kpi-info{flex:1;min-width:0}.report-kpi-val{font-size:26px;font-weight:700;color:#1e293b;line-height:1.2}.report-kpi-unit{font-size:14px;font-weight:500;color:#94a3b8;margin-left:2px}.report-kpi-label{font-size:12px;color:#94a3b8;margin-top:2px}.report-chart-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);padding:20px;margin-bottom:16px}.report-section-title{margin:0 0 16px;font-size:15px;font-weight:600;color:#333;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.report-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.report-col-half{margin-bottom:0}.report-chart-container{position:relative;padding-left:48px}.report-chart-yaxis{position:absolute;left:0;top:0;bottom:30px;display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:#bbb;text-align:right;padding-right:6px}.report-chart-bars{display:flex;align-items:flex-end;justify-content:space-around;height:220px;padding-top:8px}.report-chart-bar-group{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}.report-chart-bar-wrap{display:flex;align-items:flex-end;justify-content:center;gap:6px;height:180px;width:100%}.report-chart-bar{width:36px;border-radius:4px 4px 0 0;position:relative;min-height:4px;transition:height .4s}.report-chart-bar-target{background:rgba(24,144,255,.25)}.report-chart-bar-actual{background:#52c41a}.report-chart-bar-val{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:10px;color:#666;white-space:nowrap}.report-chart-bar-label{font-size:12px;color:#888}.report-chart-legend{display:flex;justify-content:center;gap:24px;margin-top:12px;font-size:12px;color:#888}.report-chart-legend-item{display:flex;align-items:center;gap:6px}.report-chart-legend-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.report-defect-bars{display:flex;flex-direction:column;gap:14px}.report-defect-bar-label{display:flex;justify-content:space-between;font-size:13px;color:#333;margin-bottom:6px}.report-defect-bar-track{height:14px;background:#f5f5f5;border-radius:7px;overflow:hidden}.report-defect-bar-fill{height:100%;border-radius:7px;transition:width .6s;min-width:2px}.report-quality-trend{display:flex;align-items:flex-end;justify-content:space-around;height:180px;padding-top:24px}.report-quality-trend-bar-group{display:flex;flex-direction:column;align-items:center;gap:6px}.report-quality-trend-val{font-size:13px;font-weight:600;color:#333}.report-quality-trend-bar{width:40px;border-radius:4px 4px 0 0;min-height:4px;transition:height .4s}.report-quality-trend-label{font-size:12px;color:#888}.report-table-wrap{overflow-x:auto}.report-table-wrap .data-table{min-width:800px}@media (max-width:1200px){.report-kpi-row{grid-template-columns:repeat(3,1fr)}.report-two-col{grid-template-columns:1fr}}@media (max-width:768px){.report-kpi-row{grid-template-columns:repeat(2,1fr)}.report-kpi{padding:14px}.report-kpi-val{font-size:22px}.report-chart-bars{height:160px}.report-chart-bar-wrap{height:130px}.report-chart-bar{width:24px}.report-quality-trend{height:140px}.report-quality-trend-bar{width:30px}.report-page-header{flex-direction:column;align-items:flex-start}}.param-info-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;padding:16px 20px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:20px}.param-info-item{display:flex;flex-direction:column;gap:4px}.param-info-label{font-size:12px;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.param-info-value{font-size:14px;font-weight:600;color:#1e293b}.param-table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.param-table-title{font-size:15px;font-weight:600;color:#1e293b;margin:0}.param-edit-input{width:100%;padding:6px 8px;border:1px solid #e2e8f0;border-radius:4px;font-size:13px;color:#1e293b;background:#fff;outline:0;transition:border-color .15s;box-sizing:border-box}.param-edit-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.param-row-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #fecaca;border-radius:4px;background:#fef2f2;cursor:pointer;transition:.15s}.param-row-delete-btn:hover{background:#fee2e2;border-color:#fca5a5}.param-edit-table td{padding:6px 8px;vertical-align:middle}.param-maintain-overlay .role-form-modal{max-width:960px!important}@media (max-width:768px){.param-info-grid{grid-template-columns:repeat(2,1fr)}}.status-tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;line-height:20px}.tag-green{background:#ecfdf5;color:#059669}.tag-red{background:#fef2f2;color:#dc2626}.tag-yellow{background:#fffbeb;color:#d97706}.tag-blue{background:#eff6ff;color:#2563eb}.tag-gray{background:#f3f4f6;color:#6b7280}.quality-checklist-view-overlay .role-form-modal{max-width:700px!important}.mgmt-table-wrap .data-table td{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}#ternaryDataGovernanceBPage .data-table,#ternaryDataGovernanceCPage .data-table,#ternaryDataGovernancePage .data-table{table-layout:auto}#ternaryDataGovernanceBPage .mgmt-table-wrap .data-table td,#ternaryDataGovernanceCPage .mgmt-table-wrap .data-table td,#ternaryDataGovernancePage .mgmt-table-wrap .data-table td{overflow:visible;text-overflow:clip;max-width:none}#ternaryDataGovernanceCPage .mgmt-table-wrap .data-table td:last-child{text-align:left!important;white-space:nowrap!important;overflow:visible!important}.btn-danger{background:#ef4444;color:#fff;border:1px solid #ef4444;border-radius:6px;padding:8px 16px;font-size:13px;cursor:pointer}.btn-danger:hover{background:#dc2626;border-color:#dc2626}.ibm-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.ibm-card.ibm-barcode-card{overflow:visible}.ibm-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.ibm-card-header h4{font-size:14px;font-weight:600;color:#1e293b;margin:0}.ibm-card-body{padding:20px}.ibm-form-row{display:flex;gap:16px;margin-bottom:16px}.ibm-form-row:last-child{margin-bottom:0}.ibm-form-group{flex:1;display:flex;flex-direction:column}.ibm-label{font-size:13px;font-weight:500;color:#475569;margin-bottom:6px}.ibm-label.required::after{content:' *';color:#ef4444}.ibm-input,.ibm-select{height:36px;border:1px solid #d1d5db;border-radius:6px;padding:0 12px;font-size:13px;color:#1e293b;outline:0;width:100%;box-sizing:border-box}.ibm-input:focus,.ibm-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.ibm-input[readonly]{background:#f1f5f9;color:#6b7280}.ibm-form-row-3{flex-wrap:wrap}.ibm-form-row-3 .ibm-form-group{flex:1 1 0;min-width:120px}.ibm-form-row-2 .ibm-form-group{flex:1 1 0}.ibm-barcode-svg{display:block;margin:0 auto}.ibm-card-actions{display:flex;gap:8px}#ibmBarcodeTable tbody td{vertical-align:middle}.ibm-dropdown{position:absolute;top:100%;left:0;right:0;max-height:260px;overflow-y:auto;background:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 6px 6px;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.1)}.ibm-dropdown-item{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #f1f5f9;font-size:13px}.ibm-dropdown-item:hover{background:#f0f4ff}.ibm-dd-code{font-family:monospace;font-weight:600;color:#2563eb;min-width:140px}.ibm-dd-name{color:#1e293b;flex:1}.ibm-dd-erp{font-family:monospace;font-size:12px;color:#6b7280}.ibm-dd-info{font-size:11px;color:#6b7280;min-width:80px;text-align:right}.ibm-scan-wrap{display:flex;align-items:center;gap:8px;margin-left:16px}#inventoryBarcodeMakePage .mgmt-table-wrap{max-height:400px;overflow-y:auto!important;overflow-x:auto;border:1px solid #e2e8f0;border-radius:6px;display:block;flex:none!important}#inventoryBarcodeMakePage .mgmt-table-wrap::-webkit-scrollbar{width:8px!important}#inventoryBarcodeMakePage .mgmt-table-wrap::-webkit-scrollbar-track{background:#f1f5f9!important}#inventoryBarcodeMakePage .mgmt-table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1!important;border-radius:4px!important}.ibm-clear-overlay .role-form-modal{background:#fff;border-radius:8px;width:400px;max-width:400px;margin:auto;padding:0;overflow:visible}.ibm-clear-overlay .role-form-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.ibm-clear-overlay .role-form-modal .modal-body{padding:28px 24px}.ibm-clear-overlay .role-form-modal .modal-footer{padding:14px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:center;gap:12px}#materialDataMappingPage .data-table,#ternaryDataGovernanceDPage .data-table{table-layout:auto}#materialDataMappingPage .mgmt-table-wrap .data-table td,#ternaryDataGovernanceDPage .mgmt-table-wrap .data-table td{overflow:visible;text-overflow:clip;max-width:none}.mgmt-table-wrap .data-table td:first-child,.mgmt-table-wrap .data-table td:last-child{overflow:visible;text-overflow:clip;white-space:normal}#supplierPurchaseOrderMgmtPage .data-table,#ternaryPurchaseOrderMgmtPage .data-table{table-layout:auto}#supplierPurchaseOrderMgmtPage .mgmt-table-wrap .data-table td,#ternaryPurchaseOrderMgmtPage .mgmt-table-wrap .data-table td{overflow:visible;text-overflow:clip;max-width:none;white-space:nowrap}#supplierPurchaseOrderMgmtPage .mgmt-table-wrap .data-table td:last-child,#ternaryPurchaseOrderMgmtPage .mgmt-table-wrap .data-table td:last-child{white-space:nowrap}#purchaseDetailMgmtPage .data-table{table-layout:auto}#purchaseDetailMgmtPage .mgmt-table-wrap .data-table td{overflow:visible;text-overflow:clip;max-width:none;white-space:nowrap}#purchaseDetailMgmtPage .mgmt-table-wrap .data-table td:last-child{white-space:nowrap}.mgmt-table-wrap .data-table td:has(.badge){overflow:visible;text-overflow:clip;white-space:nowrap}.mgmt-table-wrap .data-table td .badge{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:10px;font-size:12px;line-height:1;vertical-align:middle;white-space:nowrap}.mgmt-table-wrap .data-table td .badge-success{background:#d1fae5;color:#065f46}.mgmt-table-wrap .data-table td .badge-warning{background:#fef3c7;color:#92400e}.mgmt-table-wrap .data-table td .badge-danger{background:#fee2e2;color:#991b1b}.mgmt-table-wrap .data-table td .badge-info{background:#dbeafe;color:#1e40af}.mgmt-table-wrap .data-table td .badge-secondary{background:#e2e8f0;color:#475569}.mgmt-table-wrap .data-table td .role-tag,.mgmt-table-wrap .data-table td .status-tag{vertical-align:middle}.param-std-maintain-modal{width:880px;max-width:95vw}.psm-form-section{padding:0}.psm-form-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f0f0f0}.psm-form-row:last-child{border-bottom:none}.psm-form-label{font-size:14px;color:#475569;white-space:nowrap;min-width:72px;font-weight:500}.psm-form-input-wrap{position:relative;display:flex;align-items:center;min-width:180px}.psm-search-input{height:34px;padding-right:32px;border:1px solid #d1d5db;border-radius:6px;padding-left:12px;font-size:13px;outline:0;transition:border-color .2s;background:#fff;min-width:170px}.psm-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.psm-form-input-wrap svg{position:absolute;right:10px;pointer-events:none;cursor:pointer;opacity:.7}.psm-display-input{height:34px;border:1px solid #e5e7eb;border-radius:6px;padding:0 12px;font-size:13px;background:#f9fafb;color:#6b7280;min-width:160px;outline:0}.psm-small-input{height:34px;width:80px;border:1px solid #d1d5db;border-radius:6px;padding:0 8px;font-size:13px;text-align:center;outline:0;transition:border-color .2s}.psm-small-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.psm-switch-wrap{display:flex;align-items:center;gap:8px}.pms-switch-label{font-size:13px;color:#475569;white-space:nowrap}.psm-switch{position:relative;display:inline-block;width:52px;height:28px;vertical-align:middle;cursor:pointer}.psm-switch input{position:absolute;opacity:0;width:0;height:0}.psm-switch .slider{position:absolute;inset:0;background:#ccc;border-radius:28px;transition:.25s;cursor:pointer}.psm-switch.active .slider{background:linear-gradient(135deg,#10b981,#059669)}.psm-switch .slider::before{content:'';position:absolute;left:3px;top:50%;transform:translateY(-50%);width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .25s;box-shadow:0 1px 3px rgba(0,0,0,.15)}.psm-switch.active .slider::before{transform:translateY(-50%) translateX(24px)}.psm-switch .on-text{position:absolute;left:7px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:700;color:#fff;letter-spacing:.5px;z-index:1;pointer-events:none}.psm-switch-icon{position:absolute;right:-22px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;background:#fef3c7;color:#d97706;border-radius:4px;font-size:11px;line-height:20px;text-align:center;cursor:pointer;z-index:5;box-shadow:0 1px 3px rgba(217,119,6,.2)}.psm-toolbar{display:flex;align-items:center;gap:12px;padding:10px 16px;margin-top:12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px}.psm-toolbar-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#334155}.psm-table-wrap{margin-top:8px;overflow-x:auto;border:1px solid #e2e8f0;border-radius:6px}.psm-param-table{width:100%;border-collapse:collapse;table-layout:fixed}.psm-param-table thead th{background:#f8fafc;padding:10px 12px;font-size:13px;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0;white-space:nowrap}.psm-param-table td{padding:6px 8px;border-bottom:1px solid #f0f0f0}.psm-param-row:hover td{background:#fafbfc}.psm-form-input{width:100%;height:30px;border:1px solid #d1d5db;border-radius:4px;padding:0 8px;font-size:13px;outline:0;transition:border-color .2s;box-sizing:border-box}.psm-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.psm-cancel-btn{border-color:#cbd5e1;color:#64748b}.psm-save-btn{background:linear-gradient(135deg,#10b981,#059669)}.security-strategy-form{padding:40px 60px;max-width:820px}.form-title{font-size:18px;font-weight:600;color:#1e293b;margin-bottom:32px}.form-item{display:flex;align-items:center;margin-bottom:24px}.form-label{width:150px;flex-shrink:0;font-size:14px;color:#374151;text-align:right;padding-right:16px}.form-label.required::before{content:'*';color:#ef4444;margin-right:4px}.switch-wrap{position:relative;display:inline-block;cursor:pointer}.switch-wrap input{display:none}.switch-wrap .switch-slider{display:inline-block;width:44px;height:22px;background:#d1d5db;border-radius:11px;position:relative;transition:background .2s}.switch-wrap .switch-slider::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.15)}.switch-wrap input:checked+.switch-slider{background:#3b82f6}.switch-wrap input:checked+.switch-slider::after{transform:translateX(22px)}.form-input-group{display:flex;align-items:center;gap:8px;flex:1}.form-control{height:36px;border:1px solid #e2e8f0;border-radius:6px;padding:0 12px;font-size:13px;outline:0;transition:border-color .2s,box-shadow .2s;background:#fff;color:#334155;box-sizing:border-box}.form-control:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-control-sm{width:160px}.form-select{height:36px;min-width:280px;border:1px solid #e2e8f0;border-radius:6px;padding:0 32px 0 12px;font-size:13px;outline:0;transition:border-color .2s,box-shadow .2s;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") right 12px center no-repeat #fff;color:#334155;appearance:none;-webkit-appearance:none}.form-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.form-unit{font-size:14px;color:#6b7280;white-space:nowrap}.form-help-icon{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-left:4px;border-radius:50%;padding:2px;transition:background .15s}.form-help-icon:hover{background:#f1f5f9}.form-help-icon svg{pointer-events:none}.complexity-help-popup{z-index:10000;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.1);padding:16px 20px;min-width:320px}.complexity-help-item{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.complexity-help-item:last-child{border-bottom:none}.complexity-level{display:inline-block;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.level-low{background:#dbeafe;color:#1d4ed8}.level-medium{background:#fef3c7;color:#b45309}.level-high{background:#fee2e2;color:#b91c1c}.complexity-desc{font-size:13px;color:#475569;line-height:1.6}.complexity-help-text{font-size:13px;color:#475569;line-height:1.7;margin:0;max-width:300px}.form-text{font-size:14px;color:#374151;white-space:nowrap}.form-input-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.form-action{display:flex;justify-content:center;margin-top:40px}.sn-add-page{padding:24px 32px;max-width:960px;margin:0 auto}.sn-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:20px;overflow:hidden}.sn-card-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.sn-card-header h4{margin:0;font-size:15px;font-weight:600;color:#1e293b}.sn-card-desc{font-size:12px;color:#94a3b8}.sn-card-body{padding:20px}.sn-form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width:640px){.sn-form-row{grid-template-columns:1fr}}.sn-form-group{display:flex;flex-direction:column;gap:6px}.sn-form-group-sm{max-width:300px}.sn-form-label{font-size:13px;font-weight:600;color:#475569}.sn-form-label.required::after{content:' *';color:#ef4444}.sn-form-input{height:38px;border:1px solid #e2e8f0;border-radius:6px;padding:0 12px;font-size:13px;color:#334155;outline:0;transition:border-color .2s,box-shadow .2s;background:#fff;box-sizing:border-box;width:100%}.sn-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.08)}.sn-input-sm{max-width:120px}.sn-rules-container{display:flex;flex-direction:column;gap:16px}.sn-rule-item{border:1px solid #e2e8f0;border-radius:8px;padding:16px;background:#fafbfc;transition:border-color .2s}.sn-rule-item:hover{border-color:#cbd5e1}.sn-rule-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sn-rule-order{font-size:13px;font-weight:600;color:#64748b;background:#e2e8f0;padding:2px 10px;border-radius:4px}.sn-rule-remove{background:0 0;border:none;color:#ef4444;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;transition:background .15s}.sn-rule-remove:hover{background:#fee2e2}.sn-rule-body{display:flex;flex-wrap:wrap;gap:16px}.sn-rule-field{display:flex;flex-direction:column;gap:4px;min-width:140px}.sn-rule-label{font-size:12px;color:#94a3b8;font-weight:500}.sn-rule-reset-hint{margin-top:10px;padding-top:10px;border-top:1px solid #e2e8f0}.sn-check-label{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b;cursor:pointer}.sn-check-label input[type=checkbox]{accent-color:#3B82F6}.sn-add-rule-btn{display:inline-flex;align-items:center;gap:6px;margin-top:16px;border-style:dashed}.sn-preview-box{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#f0f9ff;border:2px dashed #bae6fd;border-radius:8px}.sn-preview-label{font-size:13px;color:#64748b;white-space:nowrap}.sn-preview-value{font-size:18px;font-weight:700;color:#0369a1;font-family:'SF Mono','Fira Code','Cascadia Code',monospace;letter-spacing:1px}.sn-form-action{display:flex;justify-content:center;gap:12px;padding:24px 0}.action-btns{display:flex;gap:4px;flex-wrap:wrap}.action-btn-link{background:0 0;border:none;font-size:13px;color:#3b82f6;cursor:pointer;padding:2px 6px;border-radius:4px;transition:background .15s}.action-btn-link:hover{background:#eff6ff}.action-btn-link.action-warn{color:#f59e0b}.action-btn-link.action-warn:hover{background:#fffbeb}.action-btn-link.action-danger{color:#ef4444}.action-btn-link.action-danger:hover{background:#fef2f2}.status-tag.status-disabled{background:#f1f5f9;color:#94a3b8;border:1px solid #e2e8f0}.fm-row{transition:background .15s}.fm-row:hover{background:#f9fafb}.fm-row-child.fm-row-collapsed{display:none}.fm-row-child td{background:#fafbfc}.fm-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;cursor:pointer;border-radius:4px;transition:background .15s;user-select:none}.fm-expand-btn:hover{background:#e5e7eb}.fm-expand-btn .fm-chevron-icon{transition:transform .2s}.fm-expand-btn.fm-expanded .fm-chevron-icon{transform:rotate(90deg)}.fm-code{font-family:'SF Mono',Monaco,Menlo,monospace;font-size:12px;color:#6b7280}.fm-modal .modal-body{padding:20px 24px}.fm-form-grid{display:flex;flex-wrap:wrap;gap:0 20px}.fm-form-grid .form-group{margin-bottom:16px;box-sizing:border-box}.fm-col-4{width:calc(33.333% - 13.3px)}.fm-col-6{width:calc(50% - 10px)}.fm-col-12{width:100%}.fm-parent-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 14px;margin-bottom:16px}.fm-parent-label{font-size:13px;color:#6b7280}.fm-parent-name{font-size:13px;font-weight:600;color:#1e40af}.fm-required{color:#ef4444;font-weight:700}.modal-overlay.role-form-overlay.workshop-th-overlay .role-form-modal{width:960px!important;max-width:960px!important}.person-picker-row{transition:background .15s}.person-picker-row:hover{background:#eff6ff}.scc-detail-input{width:100%;height:34px;padding:0 10px;font-size:13px;color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:6px;outline:0;text-align:center;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.scc-detail-input::placeholder{color:#9ca3af;font-size:12px}.scc-detail-input:hover{border-color:#cbd5e1}.scc-detail-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);background:#f8faff}.os-page{display:flex;flex-direction:column;height:calc(100vh - 112px);max-width:900px;margin:0 auto;padding:12px;gap:12px;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.os-page-list{padding:12px}.os-full-panel{flex:1;display:flex;flex-direction:column;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden}.os-panel-title{padding:10px 16px;font-size:14px;font-weight:700;color:#374151;background:#f8fafc;border-bottom:1px solid #e5e7eb;flex-shrink:0}.os-panel-title-lg{font-size:16px;padding:14px 16px}.os-note-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.os-note-card{padding:14px 16px;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:.15s;background:#fff;display:flex;flex-direction:column;gap:5px}.os-note-card:hover{border-color:#93c5fd;background:#f0f7ff}.os-note-card:active{border-color:#3b82f6;background:#eff6ff;transform:scale(.98)}.os-note-row{display:flex;align-items:center;font-size:13px;line-height:1.5}.os-row-label{color:#9ca3af;flex-shrink:0}.os-row-value{color:#374151;flex:1;min-width:0}.os-row-code{font-family:'SF Mono',monospace;font-weight:700;font-size:14px;color:#1e293b}.os-note-status{font-size:12px;font-weight:600;padding:2px 10px;border-radius:20px;flex-shrink:0;margin-left:8px}.os-status-pending{background:#fef3c7;color:#d97706}.os-status-partial{background:#dbeafe;color:#2563eb}.os-status-done{background:#d1fae5;color:#059669}.os-progress{font-weight:700;color:#3b82f6;font-size:14px;flex-shrink:0;margin-left:8px}.os-filter-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f9fafb;border-bottom:1px solid #e5e7eb;flex-shrink:0}.os-filter-label{font-size:13px;color:#6b7280;font-weight:500;white-space:nowrap}.os-filter-dropdown{position:relative;display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:13px;min-width:130px;user-select:none;transition:border-color .15s}.os-filter-dropdown:hover{border-color:#93c5fd}.os-filter-selected{flex:1;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.os-filter-count{color:#9ca3af;font-size:12px;white-space:nowrap}.os-filter-arrow{color:#9ca3af;font-size:9px;transition:transform .2s}.os-filter-options{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.1);z-index:100;padding:4px 0;display:none;min-width:150px}.os-filter-options.show{display:block}.os-filter-options label{display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:13px;color:#374151;cursor:pointer;transition:background .1s}.os-filter-options label:hover{background:#f3f4f6}.os-filter-options input[type=checkbox]{accent-color:#3B82F6;width:15px;height:15px;margin:0}.os-filter-refresh{margin-left:auto;width:32px;height:32px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}.os-filter-refresh:hover{background:#eff6ff;border-color:#93c5fd}.os-page-detail{padding:0;gap:0}.os-detail-topbar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.os-back-btn{width:38px;height:38px;border:none;background:#f1f5f9;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#64748b;flex-shrink:0}.os-back-btn:active{background:#e2e8f0}.os-detail-title{flex:1;display:flex;flex-direction:column;gap:2px}.os-detail-code{font-size:16px;font-weight:700;color:#1e293b;font-family:'SF Mono',monospace}.os-detail-sub{font-size:12px;color:#6b7280}.os-detail-progress{font-size:15px;font-weight:700;color:#3b82f6;background:#eff6ff;padding:4px 12px;border-radius:20px;flex-shrink:0}.os-scan-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.os-scan-bar-detail{background:#fff}.os-scan-input-wrap{flex:1;display:flex;align-items:center;gap:10px;padding:10px 16px;border:2px dashed #93c5fd;border-radius:10px;background:#f8faff}.os-scan-input{flex:1;border:none;outline:0;font-size:18px;background:0 0;color:#1e293b;font-family:'SF Mono',monospace;letter-spacing:1px}.os-scan-input::placeholder{color:#94a3b8;font-size:15px}.os-btn-clear{width:36px;height:36px;border:none;background:#f1f5f9;border-radius:50%;cursor:pointer;font-size:16px;color:#94a3b8;display:flex;align-items:center;justify-content:center;flex-shrink:0}.os-btn-clear:active{background:#e2e8f0;color:#64748b}.os-barcode-list{flex:1;overflow-y:auto;padding:6px 10px;min-height:0}.os-section-label{padding:10px 16px 4px;font-size:12px;font-weight:600;color:#3b82f6;text-transform:uppercase;letter-spacing:.5px}.os-section-label em{font-style:normal;color:#1d4ed8;font-size:14px}.os-label-dim{color:#9ca3af}.os-label-dim em{color:#6b7280}.os-barcode-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #f1f5f9;border-radius:8px;margin-bottom:4px}.os-row-received{background:#f0fdf4;opacity:.75}.os-row-pending{opacity:.5}.os-bc-left{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.os-bc-barcode{font-size:15px;font-weight:600;color:#1e293b;font-family:'SF Mono',monospace}.os-bc-material{font-size:13px;color:#64748b}.os-bc-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.os-bc-carton{font-size:12px;color:#8b5cf6;background:#f5f3ff;padding:2px 8px;border-radius:4px;font-family:'SF Mono',monospace}.os-bc-qty{font-size:13px;font-weight:600;color:#6b7280;min-width:40px;text-align:right}.os-row-del{width:32px;height:32px;border:none;background:#fef2f2;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s}.os-row-del:active{background:#fee2e2}.os-empty-sm{display:flex;align-items:center;justify-content:center;padding:24px;color:#94a3b8;font-size:14px}.os-bottom-actions{padding:10px 16px;border-top:1px solid #e5e7eb;flex-shrink:0;display:flex;gap:8px;background:#fff}.os-btn{flex:1;padding:14px;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:.15s}.os-btn:active{transform:scale(.97)}.os-btn-confirm{background:#10b981;color:#fff;flex:2}.os-btn-confirm:active{background:#059669}.os-btn-confirm:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed}.os-btn-back{background:#f3f4f6;color:#6b7280;flex:1}.os-btn-back:active{background:#e5e7eb}.login-container{height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e293b 0,#0f172a 100%);position:relative;overflow:hidden}.login-bg{position:absolute;inset:0;overflow:hidden}.login-bg-shape{position:absolute;border-radius:50%;opacity:.08}.shape1{width:600px;height:600px;background:var(--primary);top:-200px;right:-100px;animation:20s ease-in-out infinite float}.shape2{width:400px;height:400px;background:#7c3aed;bottom:-100px;left:-50px;animation:25s ease-in-out infinite reverse float}.shape3{width:200px;height:200px;background:var(--primary-light);top:50%;left:50%;transform:translate(-50%,-50%);animation:15s ease-in-out infinite float}@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}.login-card{background:rgba(255,255,255,.98);border-radius:20px;padding:48px 40px;width:420px;box-shadow:0 25px 50px rgba(0,0,0,.3);position:relative;z-index:1}.login-header{text-align:center;margin-bottom:36px}.login-logo{margin-bottom:16px}.login-header h1{font-size:22px;font-weight:700;color:var(--text);margin-bottom:4px}.login-header p{font-size:13px;color:var(--text-light);letter-spacing:1px}.login-form .form-group{margin-bottom:20px}.login-form .form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text)}.input-icon{position:relative;display:flex;align-items:center}.input-icon svg{position:absolute;left:12px}.input-icon input{width:100%;padding:10px 14px 10px 40px;border:2px solid var(--border);border-radius:10px;font-size:14px;transition:var(--transition);background:#f8fafc}.input-icon input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(79,70,229,.1)}.form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;font-size:13px}.checkbox-label{display:flex;align-items:center;gap:6px;color:var(--text-secondary);cursor:pointer}.forgot-link{color:var(--primary);font-weight:500}.forgot-link:hover{text-decoration:underline}.btn-login{width:100%;padding:12px;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;border-radius:10px;font-size:16px;font-weight:600;letter-spacing:2px;transition:var(--transition);box-shadow:0 4px 15px rgba(79,70,229,.4)}.btn-login:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(79,70,229,.5)}.btn-login:active{transform:translateY(0)}.login-tips{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.login-tips span{font-size:12px;color:var(--text-light)}.login-card-inline{background:var(--bg-card);border-radius:var(--radius-lg);padding:40px 36px;width:420px;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.login-header-inline{text-align:center;margin-bottom:28px}.login-logo-inline{margin-bottom:12px}.login-header-inline h3{font-size:18px;font-weight:700;color:var(--text)}.login-form-inline .form-group{margin-bottom:16px}.login-form-inline .form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text)}.login-form-inline .input-icon{position:relative;display:flex;align-items:center}.login-form-inline .input-icon svg{position:absolute;left:12px}.login-form-inline .input-icon input{width:100%;padding:10px 14px 10px 40px;border:2px solid var(--border);border-radius:10px;font-size:14px;transition:var(--transition);background:#f8fafc}.login-form-inline .input-icon input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(79,70,229,.1)}.login-form-inline .btn-login{width:100%;padding:12px;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;border-radius:10px;font-size:16px;font-weight:600;letter-spacing:2px;transition:var(--transition);box-shadow:0 4px 15px rgba(79,70,229,.4)}.login-form-inline .btn-login:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(79,70,229,.5)}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.dashboard-full{grid-column:1/-1}.chart-container{position:relative;height:280px;display:flex;align-items:flex-end;gap:8px;padding:10px 0}.chart-bar-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.chart-bar{width:100%;max-width:40px;border-radius:6px 6px 0 0;background:linear-gradient(to top,var(--primary),var(--primary-light));transition:height .6s;position:relative;min-height:4px}.chart-bar.warning-bar{background:linear-gradient(to top,#d97706,var(--warning))}.chart-bar-label{font-size:11px;color:var(--text-secondary);text-align:center}.chart-bar-value{font-size:11px;font-weight:600;color:var(--text)}.timeline{position:relative;padding-left:24px}.timeline::before{content:'';position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--border)}.timeline-item{position:relative;margin-bottom:20px}.timeline-item::before{content:'';position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--primary);border:2px solid #fff;box-shadow:0 0 0 2px var(--primary)}.timeline-item.warning::before{background:var(--warning);box-shadow:0 0 0 2px var(--warning)}.timeline-item.success::before{background:var(--success);box-shadow:0 0 0 2px var(--success)}.timeline-time{font-size:11px;color:var(--text-light);margin-bottom:2px}.timeline-content{font-size:13px;color:var(--text)}.timeline-content strong{color:var(--primary)}.alert-list{display:flex;flex-direction:column;gap:10px}.alert-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:var(--radius);background:#f8fafc;transition:var(--transition)}.alert-item:hover{background:var(--bg)}.alert-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0}.alert-dot.danger{background:var(--danger)}.alert-dot.warning{background:var(--warning)}.alert-dot.info{background:var(--info)}.alert-text{flex:1;font-size:13px}.alert-text .alert-title{font-weight:500;margin-bottom:2px}.alert-text .alert-desc{color:var(--text-secondary);font-size:12px}.alert-time{font-size:11px;color:var(--text-light);white-space:nowrap}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;border-radius:var(--radius-lg);background:#f8fafc;transition:var(--transition);cursor:pointer;border:2px solid transparent}.quick-action-btn:hover{background:#eef2ff;border-color:var(--primary-light);transform:translateY(-2px)}.quick-action-btn svg{color:var(--primary)}.quick-action-btn span{font-size:13px;font-weight:500;color:var(--text)}.gauge-container{display:flex;justify-content:center;align-items:center;padding:20px 0}.gauge{position:relative;width:160px;height:80px;overflow:hidden}.gauge-body{width:160px;height:160px;border-radius:50%;background:conic-gradient(var(--success) 0deg,var(--success) 90deg,var(--warning) 90deg,var(--warning) 180deg,var(--danger) 180deg,var(--danger) 270deg,#e2e8f0 270deg);position:relative}.gauge-fill{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.gauge-value{font-size:28px;font-weight:700;color:var(--success)}.gauge-label{font-size:11px;color:var(--text-light)}.kpi-row{display:flex;gap:16px;justify-content:space-between}.kpi-item{text-align:center;flex:1;padding:12px;background:#f8fafc;border-radius:var(--radius)}.kpi-item .kpi-value{font-size:22px;font-weight:700;color:var(--primary)}.kpi-item .kpi-label{font-size:12px;color:var(--text-secondary);margin-top:2px}.approval-flow{display:flex;align-items:center;gap:0;padding:20px;overflow-x:auto}.flow-node{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:100px}.flow-node-circle{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;transition:var(--transition)}.flow-node-circle.pending{background:#f1f5f9;color:var(--text-light);border:2px dashed var(--border)}.flow-node-circle.approved{background:#d1fae5;color:#065f46;border:2px solid var(--success)}.flow-node-circle.rejected{background:#fee2e2;color:#991b1b;border:2px solid var(--danger)}.flow-node-circle.current{background:#dbeafe;color:#1e40af;border:2px solid var(--info);animation:2s infinite pulse}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(59,130,246,.4)}50%{box-shadow:0 0 0 8px rgba(59,130,246,0)}}.flow-node-label{font-size:12px;color:var(--text-secondary);text-align:center}.flow-node-name{font-size:11px;color:var(--text-light);text-align:center}.flow-arrow{width:60px;height:2px;background:var(--border);position:relative;margin:0 4px 36px}.flow-arrow::after{content:'';position:absolute;right:-4px;top:-3px;border:4px solid transparent;border-left-color:var(--border)}.kanban-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;overflow-x:auto;padding-bottom:8px}.kanban-column{background:#f8fafc;border-radius:var(--radius-lg);padding:12px;min-height:400px}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--border)}.kanban-column-header h4{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.kanban-count{background:var(--border);padding:1px 8px;border-radius:10px;font-size:11px;color:var(--text-secondary)}.kanban-card{background:var(--bg-card);border-radius:var(--radius);padding:12px;margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer;transition:var(--transition);border-left:3px solid var(--primary)}.kanban-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.kanban-card.warning{border-left-color:var(--warning)}.kanban-card.danger{border-left-color:var(--danger)}.kanban-card.success{border-left-color:var(--success)}.kanban-card-title{font-weight:600;font-size:13px;margin-bottom:4px}.kanban-card-meta{font-size:11px;color:var(--text-light);display:flex;justify-content:space-between}.tree{padding:8px 0}.tree-node{user-select:none}.tree-node-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);cursor:pointer;transition:var(--transition)}.tree-node-header:hover{background:#f8fafc}.tree-node-header.selected{background:#eef2ff;color:var(--primary)}.tree-toggle{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-light);transition:transform .2s;flex-shrink:0}.tree-toggle svg{transition:transform .2s}.tree-toggle.expanded svg{transform:rotate(90deg)}.tree-children{padding-left:28px;overflow:hidden;transition:max-height .3s}.tree-children.collapsed{max-height:0!important}.detail-grid{display:grid;grid-template-columns:120px 1fr;gap:12px;font-size:13px}.detail-label{color:var(--text-secondary);font-weight:500}.detail-value{color:var(--text)}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.equipment-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow);border-left:4px solid var(--success);transition:var(--transition)}.equipment-card:hover{box-shadow:var(--shadow-md)}.equipment-card.warning{border-left-color:var(--warning)}.equipment-card.danger{border-left-color:var(--danger)}.equipment-card.offline{border-left-color:var(--text-light);opacity:.7}.equipment-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.equipment-name{font-size:15px;font-weight:600}.equipment-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.equipment-metric{text-align:center}.equipment-metric .metric-value{font-size:18px;font-weight:700}.equipment-metric .metric-label{font-size:11px;color:var(--text-light)}.qc-chart-row{display:flex;gap:16px;margin-bottom:16px}.qc-chart-item{flex:1;text-align:center}.qc-donut{width:120px;height:120px;border-radius:50%;margin:0 auto 8px;position:relative;display:flex;align-items:center;justify-content:center}.qc-donut-inner{width:80px;height:80px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.qc-donut-value{font-size:20px;font-weight:700;color:var(--success)}.qc-donut-label{font-size:11px;color:var(--text-light)}.qc-chart-title{font-size:13px;font-weight:500;color:var(--text)}.warehouse-map{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:10px}.wh-location{aspect-ratio:1;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;cursor:pointer;transition:var(--transition)}.wh-location:hover{transform:scale(1.1);z-index:1}.wh-location.empty{background:#e2e8f0;color:var(--text-light)}.wh-location.occupied{background:#dbeafe;color:#1e40af}.wh-location.full{background:#d1fae5;color:#065f46}.wh-location.warning{background:#fef3c7;color:#92400e}.modal-overlay.quali-item-form-overlay .quali-item-modal{width:800px!important;max-width:800px!important;max-height:none!important;height:auto!important;display:block!important;overflow:visible!important;border-radius:16px!important;box-shadow:0 20px 60px rgba(0,0,0,.15)!important;padding:0!important}.modal-overlay.quali-item-form-overlay .quali-item-modal .modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:20px 32px!important}.modal-overlay.quali-item-form-overlay .quali-item-modal .modal-body{display:block!important;flex:none!important;overflow:visible!important;padding:24px 36px 16px!important}.modal-overlay.quali-item-form-overlay .quali-item-modal .modal-footer{flex-shrink:0;display:flex!important;align-items:center;justify-content:flex-end;gap:12px;padding:14px 32px 22px!important}.quali-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-bottom:18px}.quali-form-field{display:flex;align-items:center;gap:10px}.quali-form-label{flex-shrink:0;width:80px;text-align:right;font-size:14px;color:#374151;white-space:nowrap}.required{color:#ef4444;margin-right:2px}.quali-form-input,.quali-form-select{flex:1;height:40px;padding:0 14px;border:1px solid #d9d9d9;border-radius:6px;background:#fff;outline:0;font-size:14px;transition:.2s;appearance:auto;-webkit-appearance:auto}.quali-form-input:focus,.quali-form-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.quali-form-input::placeholder{color:#bfbfbf}.quali-form-row-full{display:flex;gap:10px}.quali-form-textarea{flex:1;min-height:80px;max-height:140px;padding:10px 14px;border:1px solid #d9d9d9;border-radius:6px;resize:vertical;outline:0;font-size:14px;line-height:1.5;transition:.2s}.quali-form-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.quali-form-textarea::placeholder{color:#bfbfbf}.btn-qi-cancel{min-width:76px;height:38px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;cursor:pointer;transition:.2s;padding:0 24px}.btn-qi-cancel:hover{border-color:#2563eb!important;color:#2563eb!important;background:#fff!important}.btn-qi-confirm{min-width:76px;height:38px;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:.2s;padding:0 32px}.btn-qi-confirm:hover{background:#1d4ed8}.modal-overlay.quant-item-form-overlay .quant-item-modal{width:880px!important;max-width:880px!important;max-height:none!important;height:auto!important;display:block!important;overflow:visible!important;border-radius:16px!important;box-shadow:0 20px 60px rgba(0,0,0,.15)!important;padding:0!important}.modal-overlay.quant-item-form-overlay .quant-item-modal .modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:20px 32px!important}.modal-overlay.quant-item-form-overlay .quant-modal-body{display:block!important;flex:none!important;overflow:visible!important;padding:8px 36px 16px!important}.quant-form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-bottom:18px}.quant-form-row-full{margin-bottom:18px}.quant-form-field{display:flex;flex-direction:column;gap:6px}.quant-form-label{font-size:14px;color:#374151;font-weight:500;white-space:nowrap}.quant-form-label .required{color:#ef4444;margin-right:2px}.quant-form-input{width:100%;height:40px;border:1px solid #d1d5db;border-radius:8px;padding:0 12px;font-size:14px;color:#1f2937;outline:0;transition:border-color .2s;background:#fff;box-sizing:border-box}.quant-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.quant-form-input::placeholder{color:#9ca3af}.quant-form-textarea{width:100%;min-height:72px;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:14px;color:#1f2937;outline:0;resize:vertical;transition:border-color .2s;background:#fff;box-sizing:border-box;line-height:1.5;font-family:inherit}.quant-form-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.quant-form-textarea::placeholder{color:#9ca3af}.quant-number-input{display:flex;align-items:center;border:1px solid #d1d5db;border-radius:8px;overflow:hidden;height:40px;background:#fff;transition:border-color .2s}.quant-number-input:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.quant-step-btn{width:38px;height:100%;border:none;background:#f9fafb;color:#6b7280;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;line-height:1;user-select:none}.quant-step-btn:hover{background:#e5e7eb;color:#111827}.quant-step-btn:active{background:#d1d5db}.quant-num-inner{flex:1;min-width:0;height:100%;border:none!important;border-radius:0!important;padding:0 10px!important;outline:0!important;box-shadow:none!important;-moz-appearance:textfield}.quant-num-inner::-webkit-inner-spin-button,.quant-num-inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.modal-overlay.quant-item-form-overlay .quant-item-modal .modal-footer{flex-shrink:0;display:flex!important;align-items:center;justify-content:flex-end;gap:12px;padding:14px 32px 22px!important}.inspection-config-page{display:flex;gap:0;height:calc(100vh - 120px);min-height:520px}.insp-left-panel{width:320px;flex-shrink:0;border-right:1px solid #e5e7eb;background:#fff;display:flex;flex-direction:column;border-radius:12px 0 0 12px;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden}.insp-left-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px}.insp-left-title{font-size:17px;font-weight:700;color:#111827;margin:0}.insp-add-btn{background:0 0;border:none;color:#3b82f6;font-size:14px;font-weight:600;cursor:pointer;padding:4px 10px;border-radius:6px;transition:.15s}.insp-add-btn:hover{background:#eff6ff}.insp-search-box{padding:0 18px 14px}.insp-search-input{width:100%;height:38px;border:1px solid #e5e7eb;border-radius:8px;padding:0 36px 0 12px;font-size:13.5px;color:#374151;outline:0;transition:border-color .2s;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Ccircle cx='7' cy='7' r='4'/%3E%3Cline x1='15' y1='15' x2='11' y2='11'/%3E%3C/svg%3E") right 10px center/16px no-repeat;box-sizing:border-box}.insp-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.08)}.insp-search-input::placeholder{color:#9ca3af}.insp-project-list{flex:1;overflow-y:auto;padding:4px 10px 12px}.insp-pj-group{margin-bottom:6px}.insp-pj-group-header{display:flex;align-items:center;justify-content:space-between;padding:9px 14px 5px}.insp-pj-group-code{font-family:'SF Mono',Monaco,Consolas,monospace;font-size:12px;color:#9ca3af;letter-spacing:.03em;font-weight:500}.insp-add-btn-sm{font-size:13px;padding:2px 8px!important}.insp-project-item{padding:12px 14px;margin-bottom:2px;border-radius:8px;cursor:pointer;transition:.15s;border:1.5px solid transparent}.insp-project-item:hover{background:#f9fafb}.insp-project-item.active{background:#eff6ff;border-color:#93c5fd}.insp-pj-name{font-size:14px;color:#111827;font-weight:500;margin-bottom:6px}.insp-pj-actions{display:flex;gap:14px}.insp-action-del,.insp-action-edit{font-size:13px;text-decoration:none;cursor:pointer}.insp-action-edit{color:#3b82f6}.insp-action-del{color:#ef4444}.insp-action-del:hover,.insp-action-edit:hover{opacity:.75}.insp-empty{text-align:center;padding:40px 16px;color:#9ca3af;font-size:14px}.insp-right-panel{flex:1;display:flex;flex-direction:column;min-width:0;background:#fff;border-radius:0 12px 12px 0;box-shadow:0 1px 3px rgba(0,0,0,.04);overflow:hidden}.insp-right-header{padding:20px 28px 14px}.insp-right-title{font-size:17px;font-weight:700;color:#111827;margin:0}.insp-tab-bar{display:flex;gap:0;padding:0 28px;border-bottom:1px solid #e5e7eb}.insp-tab-btn{padding:10px 22px;font-size:14.5px;font-weight:500;color:#6b7280;background:0 0;border:none;cursor:pointer;position:relative;transition:color .2s}.insp-tab-btn.active{color:#3b82f6}.insp-tab-btn.active::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#3b82f6;border-radius:1px}.insp-toolbar-row{display:flex;align-items:center;gap:10px;padding:14px 28px}.insp-detail-add-btn{height:34px;padding:0 16px;font-size:13.5px}.insp-del-btn{height:34px;padding:0 14px;font-size:13.5px}.insp-del-btn:disabled{opacity:.45;cursor:not-allowed}.insp-table-wrap{flex:1;overflow-y:auto;padding:0 28px 16px}.insp-detail-table{width:100%;border-collapse:collapse;font-size:13.5px}.insp-detail-table thead th{background:#f9fafb;padding:10px 12px;font-weight:500;color:#374151;white-space:nowrap;border-bottom:1px solid #e5e7eb;font-size:13px;position:sticky;top:0;z-index:1}.insp-detail-table tbody td{padding:10px 12px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.insp-detail-table tbody tr:hover td{background:#fafbff}.insp-empty-detail{text-align:center;padding:80px 16px;color:#9ca3af;font-size:14px}.modal-overlay.insp-proj-modal-overlay .insp-proj-modal{background:#fff;width:540px!important;max-width:540px!important;max-height:none!important;border-radius:16px!important;box-shadow:0 20px 60px rgba(0,0,0,.15)!important;padding:0!important;display:flex;flex-direction:column;overflow:hidden;animation:.25s slideUp}.modal-overlay.insp-proj-modal-overlay .insp-proj-modal .modal-header{padding:16px 24px;border-bottom:1px solid #e5e7eb}.modal-overlay.insp-proj-modal-overlay .insp-proj-modal .modal-header .modal-title{font-size:16px;font-weight:600;color:#111827}.modal-overlay.insp-proj-modal-overlay .insp-proj-modal .modal-body{padding:24px 32px 16px!important}.modal-overlay.insp-proj-modal-overlay .insp-proj-modal .modal-footer{justify-content:flex-end!important;gap:12px;padding:14px 32px 22px!important}.insp-form-field{margin-bottom:18px}.insp-form-label{display:block;font-size:14px;color:#374151;font-weight:500;margin-bottom:6px}.insp-form-label .required{color:#ef4444;margin-right:2px}.insp-form-input{width:100%;height:42px;border:1px solid #d1d5db;border-radius:8px;padding:0 12px;font-size:14px;color:#1f2937;outline:0;transition:border-color .2s;box-sizing:border-box}.insp-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.insp-form-textarea{width:100%;min-height:72px;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:14px;color:#1f2937;outline:0;resize:vertical;transition:border-color .2s;box-sizing:border-box;line-height:1.5;font-family:inherit}.insp-form-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.insp-confirm-modal{width:420px!important;max-width:420px!important}.insp-confirm-modal .modal-body{padding:32px 28px!important}.modal-overlay.quali-picker-overlay .insp-picker-modal,.modal-overlay.quant-picker-overlay .insp-picker-modal{width:1100px!important;max-width:95vw!important;max-height:85vh;height:auto;border-radius:16px!important;box-shadow:0 25px 70px rgba(0,0,0,.18)!important;padding:0!important;display:flex!important;flex-direction:column!important}.picker-search-bar{display:flex;align-items:center;gap:8px;padding:16px 24px 12px;flex-shrink:0;border-bottom:1px solid #f3f4f6;flex-wrap:wrap}.picker-label{font-size:13px;color:#4b5563;white-space:nowrap;flex-shrink:0}.picker-input{width:160px;height:34px;border:1px solid #d1d5db;border-radius:6px;padding:0 10px;font-size:13px;outline:0;box-sizing:border-box}.picker-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.picker-query-btn,.picker-reset-btn{height:34px;padding:0 16px;font-size:13px;border-radius:6px}.picker-table-wrap{flex:1;overflow-y:auto;padding:0 12px}.picker-table{width:100%;border-collapse:collapse;font-size:13px}.picker-table thead th{background:#f9fafb;padding:9px 10px;font-weight:500;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap;position:sticky;top:0;z-index:1;font-size:12.5px}.picker-table tbody td{padding:9px 10px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.picker-table tbody tr:hover td{background:#fafbff}.picker-check{width:16px;height:16px;cursor:pointer;accent-color:#3B82F6}.picker-footer-area,.picker-footer-info{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;border-top:1px solid #f3f4f6;flex-shrink:0}.picker-footer-left{display:flex;align-items:center;gap:8px}.picker-total-info{font-size:13px;color:#6b7280}.picker-size-select{height:30px;border:1px solid #d1d5db;border-radius:6px;padding:0 6px;font-size:12.5px;color:#374151;outline:0;cursor:pointer}.picker-page-btns{display:flex;gap:4px}.page-arrow,.page-num{width:30px;height:30px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.page-num.active{background:#3b82f6;color:#fff;border-color:#3b82f6}.page-arrow[disabled]{opacity:.35;cursor:not-allowed}.picker-goto{font-size:13px;color:#6b7280;display:flex;align-items:center;gap:4px}.picker-goto-input{width:46px;height:30px;border:1px solid #d1d5db;border-radius:6px;text-align:center;font-size:13px;outline:0;box-sizing:border-box}.picker-selected-tags{display:flex;flex-wrap:wrap;gap:6px;max-width:400px}.picker-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px 3px 12px;background:#eef2ff;color:#4338ca;font-size:12.5px;border-radius:20px;border:1px solid #c7d2fe}.picker-tag a{color:#6366f1;cursor:pointer;font-size:15px;line-height:1;text-decoration:none;font-weight:600}.picker-tag a:hover{color:#ef4444}.import-modal{width:720px!important;max-width:720px!important;max-height:none!important;height:auto!important;display:block!important;overflow:visible!important;border-radius:16px!important;box-shadow:0 20px 60px rgba(0,0,0,.15)!important;padding:0!important}.import-body{padding:28px 32px 18px!important}.import-upload-zone{border:2px dashed #bfdbfe;border-radius:10px;padding:52px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;cursor:pointer;transition:.2s;background:#fff}.import-upload-zone:hover{border-color:#93c5fd;background:#eff6ff}.import-upload-zone.drag-over{border-color:#3b82f6;background:#dbeafe}.import-hint-text{font-size:15px;color:#374151;margin:0}.import-click-link{color:#2563eb;cursor:pointer;font-weight:500}.import-click-link:hover{text-decoration:underline;color:#1d4ed8}.import-file-name{font-size:13px;color:#059669;margin:8px 0 0;display:flex;align-items:center;gap:6px;justify-content:center}.import-error-text{font-size:13px;color:#ef4444;margin:8px 0 0;text-align:center}.import-format-hint{text-align:center;font-size:13px;color:#9ca3af;margin:14px 0 0}.import-format-hint a{color:#2563eb;cursor:pointer}.import-format-hint a:hover{text-decoration:underline}@media print{.sidebar,.topbar{display:none}.main-content{margin-left:0}.content-area{padding:0}}.mat-insp-page{display:flex;flex-direction:column;height:100%}.mat-insp-query-bar{display:flex;align-items:center;gap:16px;padding:20px 24px 14px;background:#fff;border-radius:12px 12px 0 0;box-shadow:0 1px 3px rgba(0,0,0,.04);flex-wrap:wrap}.mat-insp-query-bar.hidden{display:none}.mat-q-row{display:flex;align-items:center;gap:8px}.mat-q-label{font-size:14px;color:#374151;font-weight:500;white-space:nowrap}.mat-q-input{width:220px;height:38px;border:1px solid #d1d5db;border-radius:8px;padding:0 12px;font-size:13.5px;color:#1f2937;outline:0;transition:border-color .2s;box-sizing:border-box}.mat-q-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.08)}.mat-q-input::placeholder{color:#9ca3af}.mat-q-select{width:180px;height:38px;border:1px solid #d1d5db;border-radius:8px;padding:0 12px;font-size:13.5px;color:#374151;outline:0;background:#fff;box-sizing:border-box}.mat-q-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.08)}.mat-q-btn{height:38px;padding:0 18px;font-size:13.5px;border-radius:8px}.mat-insp-action-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:#fff}.mat-action-left,.mat-action-right{display:flex;align-items:center;gap:10px}.mat-action-btn{height:34px;padding:0 16px;font-size:13.5px;border-radius:8px}.mat-icon-btn{width:36px;height:36px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:.15s}.mat-icon-btn:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.mat-table-wrap{flex:1;overflow-y:auto;background:#fff;padding:0 4px 12px}.mat-data-table{width:100%;border-collapse:collapse;font-size:13.5px}.mat-data-table thead th{background:#f9fafb;padding:11px 12px;font-weight:500;color:#374151;white-space:nowrap;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:2;text-align:left}.mat-data-table thead th:first-child{text-align:center}.mat-data-table tbody td{padding:11px 12px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.mat-data-table tbody tr:hover td{background:#fafbff}.mat-empty-row{text-align:center!important;padding:60px 16px!important;color:#9ca3af!important;font-size:14px}.mat-check-all,.mat-row-check{width:16px;height:16px;accent-color:#3B82F6;cursor:pointer}.mat-type-tag{display:inline-block;padding:2px 10px;border-radius:4px;font-size:12.5px;background:#eff6ff;color:#2563eb;white-space:nowrap}.mat-proj-tag{display:inline-block;padding:2px 10px;border-radius:4px;font-size:12px;background:#eef2ff;color:#4338ca;white-space:nowrap;margin:2px 4px 2px 0}.mat-action-cell{white-space:nowrap}.mat-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 24px;background:#fff;border-radius:0 0 12px 12px;box-shadow:0 -1px 3px rgba(0,0,0,.04);flex-shrink:0}.mat-page-left{font-size:13.5px;color:#6b7280}.mat-page-size{height:30px;border:1px solid #d1d5db;border-radius:6px;padding:0 6px;font-size:12.5px;color:#374151;outline:0;cursor:pointer}.mat-page-info{font-size:13.5px;color:#374151;min-width:40px;text-align:center}.mat-page-btn{width:30px;height:30px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:.15s}.mat-page-btn:not([disabled]):hover{border-color:#3b82f6;color:#3b82f6}.mat-page-btn[disabled]{opacity:.35;cursor:not-allowed}.mat-goto-input{width:44px;height:30px;border:1px solid #d1d5db;border-radius:6px;text-align:center;font-size:13px;outline:0}.modal-overlay.mat-insp-add-overlay .mat-insp-add-modal{width:1100px;max-width:95vw;max-height:90vh;background:#fff;border-radius:16px;box-shadow:0 25px 70px rgba(0,0,0,.18);display:flex;flex-direction:column;overflow:hidden}.mat-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 16px;border-bottom:1px solid #f3f4f6;flex-shrink:0}.mat-modal-title{font-size:17px;font-weight:700;color:#111827;margin:0}.mat-modal-close{background:0 0;border:none;cursor:pointer;padding:4px;border-radius:6px;transition:background .15s;display:flex;align-items:center}.mat-modal-close:hover{background:#f3f4f6}.mat-modal-body{padding:20px 28px;flex:1;overflow-y:auto}.mat-form-row{display:flex;gap:28px;margin-bottom:18px}.mat-form-field{flex:1;min-width:0}.mat-form-field.full-field{flex:1}.mat-form-label{display:block;font-size:14px;color:#374151;font-weight:500;margin-bottom:6px}.mat-form-label .required{color:#ef4444;margin-right:2px}.mat-mat-picker-trigger{position:relative;display:flex;align-items:center}.mat-picker-input{width:100%;height:40px;border:1px solid #d1d5db;border-radius:8px;padding:0 36px 0 12px;font-size:14px;color:#1f2937;outline:0;cursor:pointer;background:#fff;box-sizing:border-box;transition:border-color .2s}.mat-picker-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.mat-picker-input::placeholder{color:#9ca3af}.mat-picker-search-icon{position:absolute;right:10px;pointer-events:none}.mat-type-radios{display:flex;gap:24px;padding-top:6px}.mat-type-radio-wrap{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;color:#374151;user-select:none}.mat-type-radio{width:16px;height:16px;accent-color:#3B82F6;cursor:pointer}.shuttle-field{flex:none;width:100%}.shuttle-container{display:flex;align-items:stretch;gap:12px;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;background:#fafbfc;min-height:320px}.shuttle-panel{flex:1;display:flex;flex-direction:column;background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb;min-width:280px}.shuttle-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #f3f4f6;background:#f9fafb;flex-shrink:0}.shuttle-checkbox input{width:15px;height:15px;accent-color:#3B82F6;cursor:pointer}.shuttle-title{font-size:13.5px;font-weight:600;color:#374151;flex:1}.shuttle-count{font-size:12px;color:#9ca3af;white-space:nowrap}.shuttle-search{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #f3f4f6;flex-shrink:0}.shuttle-search svg{flex-shrink:0}.shuttle-search input{flex:1;height:32px;border:1px solid #e5e7eb;border-radius:6px;padding:0 10px;font-size:12.5px;outline:0;box-sizing:border-box}.shuttle-search input:focus{border-color:#3b82f6}.shuttle-list{flex:1;overflow-y:auto;padding:6px 0}.shuttle-item{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;transition:background .1s}.shuttle-item:hover{background:#f5f7ff}.shuttle-item-check{width:15px;height:15px;accent-color:#3B82F6;cursor:pointer;flex-shrink:0}.shuttle-item-code{font-family:'SF Mono',Monaco,Consolas,monospace;font-size:12px;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:4px;white-space:nowrap}.shuttle-item-name{font-size:13px;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shuttle-empty{text-align:center;padding:48px 16px;color:#9ca3af;font-size:13.5px}.shuttle-buttons{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:0 4px;flex-shrink:0}.shuttle-btn{width:44px;height:36px;border:none;border-radius:6px;background:#93c5fd;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0}.shuttle-btn:hover{background:#60a5fa}.mat-remark-textarea{width:100%;min-height:72px;max-height:140px;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:14px;color:#1f2937;outline:0;resize:vertical;line-height:1.5;font-family:inherit;box-sizing:border-box;transition:border-color .2s}.mat-remark-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.mat-remark-textarea::placeholder{color:#9ca3af}.mat-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 28px 22px;border-top:1px solid #f3f4f6;flex-shrink:0}.mat-cancel-btn{min-width:76px;height:38px;border-radius:8px;font-size:14px;cursor:pointer;padding:0 24px}.mat-cancel-btn:hover{border-color:#3b82f6!important;color:#3b82f6!important;background:#fff!important}.mat-confirm-btn{min-width:76px;height:38px;border-radius:8px;font-size:14px;cursor:pointer;padding:0 32px}.mat-confirm-btn:hover{background:#1d4ed8}.mat-material-picker-layer{position:absolute;inset:0;z-index:100;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;border-radius:16px}.mat-material-picker-box{width:520px;background:#fff;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden}.mat-picker-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #f3f4f6}.mat-picker-head h5{margin:0;font-size:15px;color:#111827;font-weight:600}.mat-picker-close{background:0 0;border:none;cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;transition:background .15s}.mat-picker-close:hover{background:#f3f4f6}.mat-picker-body{padding:12px}.mat-picker-search{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding:0 4px}.mat-picker-search input{flex:1;height:34px;border:1px solid #d1d5db;border-radius:6px;padding:0 10px;font-size:13px;outline:0;box-sizing:border-box}.mat-picker-search input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.08)}.mat-picker-table{width:100%;border-collapse:collapse;font-size:13px}.mat-picker-table thead th{background:#f9fafb;padding:8px 10px;font-weight:500;color:#374151;border-bottom:1px solid #e5e7eb;text-align:left}.mat-picker-table tbody td{padding:8px 10px;border-bottom:1px solid #f3f4f6;color:#374151}.qr-code-cell{width:50px;height:50px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px}.qr-code-cell:hover{opacity:.8;transform:scale(1.05);transition:.15s}.barcode-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:10000;display:flex;align-items:center;justify-content:center;animation:.2s fadeIn}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.barcode-modal{background:#fff;border-radius:16px;box-shadow:0 25px 70px rgba(0,0,0,.18);padding:24px;min-width:320px;max-width:90vw;animation:.25s slideUp}@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.barcode-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.barcode-modal-header h3{margin:0;font-size:17px;color:#111827;font-weight:600}.barcode-close-btn{background:0 0;border:none;cursor:pointer;font-size:20px;color:#9ca3af;padding:4px 8px;border-radius:6px;transition:.15s}.barcode-close-btn:hover{background:#f3f4f6;color:#374151}.barcode-modal-body{text-align:center}.barcode-modal-footer{margin-top:16px;text-align:right}.po-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px 16px}.po-form-item label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:4px}.po-master-row:hover{background:#f9fafb!important}.po-detail-inner{border-left:3px solid #3b82f6}.po-detail-table th{font-weight:600;font-size:12px;white-space:nowrap}.po-items-table input{box-sizing:border-box}.po-item-row:hover{background:#f9fafb}.po-expand-icon{transition:transform .2s}.cockpit-page{padding:20px;background:#f0f2f5;min-height:calc(100vh - 120px)}.cockpit-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.cockpit-kpi-card{background:#fff;border-radius:10px;padding:18px 20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);border-left:4px solid var(--kpi-color,#3b82f6);transition:box-shadow .2s}.cockpit-kpi-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.kpi-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:#f9fafb;border-radius:10px;flex-shrink:0}.kpi-info{flex:1;min-width:0}.kpi-label{font-size:12px;color:#9ca3af;margin-bottom:2px}.kpi-value{font-size:22px;font-weight:700;color:#1f2937}.kpi-unit{font-size:12px;color:#9ca3af;font-weight:400}.kpi-sub{font-size:12px;color:#6b7280;margin-top:2px}.kpi-bar{width:60px;height:4px;background:#e5e7eb;border-radius:2px;align-self:flex-end;margin-bottom:4px;flex-shrink:0}.kpi-bar-fill{height:100%;border-radius:2px;transition:width .6s}.cockpit-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.cockpit-panel{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.cockpit-panel-title{font-size:15px;font-weight:600;color:#1f2937;margin-bottom:12px;display:flex;align-items:center;gap:8px}.cockpit-panel-bar{display:inline-block;width:4px;height:16px;background:#3b82f6;border-radius:2px}.cockpit-table{font-size:13px}.cockpit-table th{background:#f9fafb;padding:8px 10px;font-weight:600;color:#6b7280}.cockpit-table td{padding:7px 10px}.eq-status-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.eq-status-item{text-align:center;padding:12px 8px;background:#f9fafb;border-radius:8px}.eq-status-count{font-size:24px;font-weight:700}.eq-status-label{font-size:12px;color:#6b7280;margin:4px 0}.eq-bar-bg{height:4px;background:#e5e7eb;border-radius:2px;margin-top:4px}.eq-bar-fill{height:100%;border-radius:2px}.wh-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wh-stat-card{border-radius:8px;padding:14px;border:1px solid}.wh-stat-label{font-size:12px;color:#6b7280;margin-bottom:4px}.wh-stat-val{font-size:20px;font-weight:700}.andon-config-page{display:flex;flex-direction:column;height:calc(100vh - 110px);padding:0 20px 20px}.andon-config-body{display:flex;gap:0;flex:1;overflow:hidden;background:#fff;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.andon-left-panel{width:320px;min-width:320px;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;background:#fafbfc;border-radius:10px 0 0 10px}.andon-left-header{padding:16px 16px 12px;border-bottom:1px solid #e5e7eb}.andon-left-title{font-size:15px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:8px}.andon-category-search{padding:12px 16px;display:flex;gap:8px;align-items:center}.andon-search-input-wrap{flex:1;position:relative;display:flex;align-items:center}.andon-search-input-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);pointer-events:none}.andon-category-search-input{width:100%;padding:7px 10px 7px 30px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;outline:0;background:#fff;color:#374151;transition:border-color .2s}.andon-category-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}.andon-add-category-btn{padding:7px 14px;font-size:13px;white-space:nowrap}.andon-category-list{flex:1;overflow-y:auto;padding:0 12px 12px}.andon-category-table{width:100%;border-collapse:collapse}.andon-category-table th{position:sticky;top:0;background:#f1f5f9;padding:8px 10px;font-size:12px;font-weight:600;color:#64748b;text-align:left;border-bottom:2px solid #e2e8f0;z-index:1}.andon-category-table td{padding:8px 10px;font-size:13px;border-bottom:1px solid #f1f5f9;color:#374151}.andon-category-row:hover{background:#eef2ff}.andon-category-row.active{background:#3b82f6}.andon-category-row.active td{color:#fff!important}.andon-category-row.active .action-link{color:#e0e7ff}.andon-category-row.active .action-link:hover{color:#fff}.andon-category-row .action-link{font-size:12px;margin:0 3px}.andon-right-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;border-radius:0 10px 10px 0}.andon-right-header{padding:16px 20px 12px;border-bottom:1px solid #e5e7eb}.andon-right-title{font-size:15px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:8px}.andon-item-toolbar{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid #f1f5f9}.andon-item-toolbar .btn{font-size:13px;padding:7px 14px}.andon-item-table-wrap{flex:1;overflow:auto;padding:0 20px 20px}.andon-item-table{font-size:13px}.andon-item-table th{background:#f8fafc;padding:9px 12px;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;position:sticky;top:0;z-index:1}.andon-item-table td{padding:9px 12px;border-bottom:1px solid #f1f5f9;color:#374151}.smart-m-page{display:flex;flex-direction:column;height:calc(100vh - 110px);padding:12px 16px 16px}.smart-m-container{display:flex;flex:1;gap:0;overflow:hidden;background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.06)}.smart-m-sidebar{width:200px;min-width:200px;background:linear-gradient(135deg,#1e293b,#334155);color:#fff;display:flex;flex-direction:column;border-radius:12px 0 0 12px;padding:16px 12px}.smart-m-side-title{font-size:16px;font-weight:700;margin-bottom:16px;text-align:center;letter-spacing:1px}.smart-m-quick-section{margin-bottom:12px}.smart-m-quick-label{font-size:11px;color:#94a3b8;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.smart-m-quick-btn{display:block;padding:8px 10px;margin:4px 0;font-size:12px;color:#cbd5e1;cursor:pointer;border-radius:6px;transition:background .2s}.smart-m-quick-btn:hover{background:rgba(255,255,255,.1);color:#fff}.smart-m-side-footer{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.smart-m-main{flex:1;display:flex;flex-direction:column;border-radius:0 12px 12px 0}.smart-m-header{padding:14px 20px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.smart-m-header h3{font-size:15px;color:#1e293b;margin:0}.smart-m-messages{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:14px}.smart-m-msg{display:flex;gap:10px;max-width:85%}.smart-m-msg.user{align-self:flex-end;flex-direction:row-reverse}.smart-m-msg.bot{align-self:flex-start}.smart-m-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;background:#f1f5f9}.smart-m-bubble{background:#f1f5f9;padding:12px 16px;border-radius:12px;font-size:13px;line-height:1.7;color:#334155;max-width:650px}.smart-m-msg.user .smart-m-bubble{background:#3b82f6;color:#fff}.smart-m-bubble p{margin:0 0 6px}.smart-m-bubble p:last-child{margin:0}.smart-m-bubble ul{margin:4px 0;padding-left:18px}.smart-m-bubble li{margin:2px 0}.smart-m-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:12px}.smart-m-table td,.smart-m-table th{padding:6px 10px;text-align:center;border:1px solid #cbd5e1}.smart-m-table th{background:#e2e8f0;font-weight:600;color:#475569}.smart-m-msg.user .smart-m-table th{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.2)}.smart-m-msg.user .smart-m-table td{border-color:rgba(255,255,255,.2)}.smart-m-typing{animation:1s infinite xiaoMBlink}@keyframes xiaoMBlink{0%,100%{opacity:1}50%{opacity:.3}}.smart-m-input-bar{display:flex;gap:10px;padding:12px 20px;border-top:1px solid #e2e8f0;flex-shrink:0}.smart-m-input{flex:1;padding:10px 14px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;outline:0;transition:border .2s}.smart-m-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}.role-form-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;align-items:center}.role-form-grid-2col .role-form-row{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0}.role-form-grid-2col .role-form-label{font-size:13px;font-weight:500;color:#374151;white-space:nowrap;flex-shrink:0;height:40px;width:85px;text-align:right;display:flex;align-items:center;justify-content:flex-end}.role-form-grid-2col .role-form-input,.role-form-grid-2col .role-form-select-wrap select{height:40px;font-size:13px;flex:1;min-width:0;width:100%;line-height:40px;padding-top:0;padding-bottom:0;box-sizing:border-box}.role-form-grid-2col .role-form-select-wrap{flex:1;min-width:0;height:40px}.role-form-grid-4col{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px 14px;align-items:center}.role-form-grid-4col .role-form-row{display:flex;flex-direction:row;align-items:center;gap:6px;min-width:0}.role-form-grid-4col .role-form-label{font-size:12px;font-weight:500;color:#374151;white-space:nowrap;flex-shrink:0;width:65px;text-align:right;height:40px;display:flex;align-items:center;justify-content:flex-end}.role-form-grid-4col .role-form-input,.role-form-grid-4col .role-form-select-wrap select{height:40px;font-size:12px;flex:1;min-width:0;width:100%;line-height:40px;box-sizing:border-box}.role-form-grid-4col .role-form-select-wrap{flex:1;min-width:0;height:40px}.role-form-grid-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px 20px;align-items:center}.role-form-grid-3col .role-form-row{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0}.role-form-grid-3col .role-form-label{font-size:13px;font-weight:500;color:#374151;white-space:nowrap;flex-shrink:0;height:40px;width:75px;text-align:right;display:flex;align-items:center;justify-content:flex-end}.role-form-grid-3col .role-form-input{height:40px;font-size:13px;flex:1;min-width:0;width:100%;line-height:40px;box-sizing:border-box}.role-form-grid-3col .role-form-select-wrap{flex:1;min-width:0;height:40px}.role-form-grid-3col .role-form-select-wrap select{height:40px;font-size:13px;width:100%;line-height:40px;box-sizing:border-box;box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;padding:0 12px;color:#1e293b;outline:0;background:#fff;-webkit-appearance:none;appearance:none}.role-form-divider{border-top:1px dashed #d1d5db;margin:4px 0 16px}.role-form-row-full{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px 20px!important;margin-bottom:8px!important}.role-form-row-full .role-form-label{line-height:1.5;color:#475569;font-weight:600}.role-form-row-full textarea.role-form-input{min-height:110px!important;max-height:220px!important;height:auto;padding:10px 14px;resize:vertical;line-height:1.6;border-color:#cbd5e1;background:#fff}.role-form-row-full textarea.role-form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.role-form-overlay .role-form-row textarea.role-form-input{height:auto;min-height:80px;padding:10px 14px;resize:vertical;line-height:1.6}.modal-overlay.role-form-overlay.process-manage-overlay .role-form-modal{width:960px!important;max-width:960px!important}.modal-overlay.role-form-overlay.IP-overlay .role-form-modal{width:auto!important;max-width:1480px!important}.modal-overlay.role-form-overlay.GL-overlay .role-form-modal{width:auto!important;max-width:1400px!important}.GL-overlay .modal-body>.role-form-row{gap:8px}.GL-overlay .modal-body>.role-form-row .role-form-label{width:75px}.process-manage-overlay .role-form-modal>.modal-body{padding:20px 28px 12px!important}.modal-overlay.role-form-overlay.BCR-overlay .role-form-modal{width:1200px!important;max-width:1200px!important}.BCR-overlay .role-form-modal>.modal-body{padding:24px 32px!important}.BCR-overlay .role-form-grid-3col{grid-template-columns:2fr 1.5fr 1fr;gap:16px 24px}#andonCategoryModal,#andonItemModal{display:none;position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center;background:0 0;box-shadow:none;border-radius:0;width:100%;max-width:100%;max-height:100%;animation:none}#andonCategoryModal .modal-mask,#andonItemModal .modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.4);z-index:0}#andonCategoryModal .modal-container,#andonItemModal .modal-container{position:relative;z-index:1;background:#fff;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.15);width:90%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;animation:.25s slideUp}#andonCategoryModal .modal-header,#andonItemModal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb;flex-shrink:0}#andonCategoryModal .modal-title,#andonItemModal .modal-title{font-size:16px;font-weight:600;color:#1f2937}#andonCategoryModal .modal-close-btn,#andonItemModal .modal-close-btn{background:0 0;border:none;font-size:22px;color:#9ca3af;cursor:pointer;padding:0;line-height:1}#andonCategoryModal .modal-close-btn:hover,#andonItemModal .modal-close-btn:hover{color:#374151}#andonCategoryModal .modal-body,#andonItemModal .modal-body{flex:1;overflow-y:auto;padding:20px;flex-shrink:0}#andonCategoryModal .modal-footer,#andonItemModal .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #e5e7eb;flex-shrink:0}.andon-category-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.andon-category-form-grid .andon-form-item:last-child{grid-column:span 2}.andon-item-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.andon-form-item{display:flex;flex-direction:column;gap:6px}.andon-form-label{font-size:13px;font-weight:500;color:#374151}.andon-form-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;outline:0;color:#374151;transition:border-color .2s}.andon-form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}.andon-form-input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.dn-date-input{background:#eff6ff!important;border-color:#93c5fd!important;color:#1d4ed8!important;cursor:pointer}.dn-date-input:focus{border-color:#3b82f6!important;box-shadow:0 0 0 3px rgba(59,130,246,.12)!important}.dn-date-input::-webkit-calendar-picker-indicator{filter:invert(.4)}.posp-split-layout{display:flex;gap:12px;height:calc(100vh - 140px);overflow:hidden}.posp-left-panel{flex:0 0 62%;display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.posp-left-panel .mgmt-filter-bar{margin-bottom:0;flex-shrink:0}.posp-left-panel .mgmt-toolbar{flex-shrink:0}.posp-left-panel .mgmt-table-wrap{flex:1}.posp-left-panel .pagination-bar{flex-shrink:0}.posp-right-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.posp-right-panel .mgmt-filter-bar{margin-bottom:0;flex-shrink:0;border-radius:8px 8px 0 0}.posp-right-panel .mgmt-toolbar{flex-shrink:0}.posp-right-panel .mgmt-table-wrap{flex:1}.posp-right-panel .pagination-bar{flex-shrink:0}.cn-modal-overlay .cn-form-modal,.pcn-modal-overlay .pcn-form-modal{max-width:1200px!important;width:1200px!important}.cn-modal-body,.pcn-modal-body{max-height:70vh;overflow-y:auto;padding:20px 28px!important;background:#f8fafc}.cn-modal-header,.pcn-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.cn-modal-footer,.pcn-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:14px 28px;border-top:1px solid #e5e7eb}.cn-zoom-controls,.pcn-zoom-controls{display:flex;align-items:center;gap:6px;margin-right:auto}.cn-zoom-btn,.pcn-zoom-btn{width:30px;height:30px;border-radius:6px;border:1px solid #d1d5db;background:#fff;font-size:14px;font-weight:600;color:#374151;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}.cn-zoom-btn:hover,.pcn-zoom-btn:hover{background:#f3f4f6;border-color:#9ca3af}.cn-zoom-level,.pcn-zoom-level{font-size:12px;color:#6b7280;min-width:40px;text-align:center}.cn-zoom-reset,.pcn-zoom-reset{font-size:12px}.cn-title-card,.pcn-title-card{text-align:center;margin-bottom:20px;padding:16px 0;border-bottom:2px solid #2563eb}.cn-title-card h2,.pcn-title-card h2{font-size:20px;font-weight:700;color:#1f2937;margin:0 0 4px}.cn-title-card .sub,.pcn-title-card .sub{font-size:13px;color:#64748b}.cn-card,.pcn-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:16px;overflow:hidden}.cn-card-header,.pcn-card-header{background:#f1f5f9;padding:10px 16px;font-size:14px;font-weight:600;color:#1f2937;border-bottom:1px solid #e5e7eb}.cn-card-body,.pcn-card-body{padding:16px}.cn-grid,.pcn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 20px;align-items:start}.cn-grid-2,.pcn-grid-2{grid-template-columns:repeat(2,1fr)}.cn-col-2,.pcn-col-2{grid-column:span 2}.cn-col-3,.pcn-col-3{grid-column:span 3}.cn-field,.pcn-field{min-width:0}.cn-label,.pcn-label{display:block;font-size:12px;font-weight:500;color:#374151;margin-bottom:6px}.cn-label.required::after,.pcn-label.required::after{content:' *';color:#ef4444}.cn-input,.pcn-input{width:100%;height:38px;padding:0 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;outline:0;box-sizing:border-box;transition:border-color .15s}.cn-input:focus,.pcn-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.cn-input[readonly],.pcn-input[readonly]{background:#f9fafb;color:#6b7280}.cn-input::placeholder,.pcn-input::placeholder{color:#9ca3af}.cn-textarea,.pcn-textarea{width:100%;min-height:80px;padding:10px 14px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#1f2937;resize:vertical;line-height:1.6;outline:0;box-sizing:border-box;font-family:inherit;transition:border-color .15s}.cn-textarea:focus,.pcn-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.cn-textarea::placeholder,.pcn-textarea::placeholder{color:#9ca3af}.cn-check-group,.pcn-check-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.cn-checkbox,.cn-radio,.pcn-checkbox,.pcn-radio{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#374151;cursor:pointer;user-select:none}.cn-checkbox input,.cn-radio input,.pcn-checkbox input,.pcn-radio input{width:15px;height:15px;cursor:pointer;accent-color:#2563EB}.cn-checkbox span,.cn-radio span,.pcn-checkbox span,.pcn-radio span{white-space:nowrap}.cn-wrap,.pcn-wrap{display:flex;flex-wrap:wrap;gap:6px 12px}.cn-table,.pcn-table{width:100%;border-collapse:collapse;font-size:13px}.cn-table th,.pcn-table th{background:#f1f5f9;padding:8px 12px;text-align:left;font-weight:600;color:#374151;border:1px solid #e5e7eb}.cn-table td,.pcn-table td{padding:8px 12px;border:1px solid #e5e7eb;color:#1f2937}.cn-zoom-content,.pcn-zoom-content{transition:transform .15s;transform-origin:top center}.modal-overlay.role-form-overlay.IIS-overlay .role-form-modal{max-width:1000px!important;width:1000px!important;max-height:92vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.modal-overlay.role-form-overlay.IIS-overlay .role-form-modal>.iis-modal-body{display:block!important;flex:1!important;overflow-y:auto!important;max-height:none!important;padding:16px 24px!important;background:#fff}.modal-overlay.role-form-overlay.IIS-hist-overlay .role-form-modal{max-width:900px!important;width:900px!important;max-height:92vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.modal-overlay.role-form-overlay.IIS-hist-overlay .role-form-modal>.iis-modal-body{display:block!important;flex:1!important;overflow-y:auto!important;max-height:none!important;padding:16px 24px!important;background:#fff}.modal-overlay.role-form-overlay.MRB-overlay .role-form-modal{max-width:1100px!important;width:1100px!important;max-height:92vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.modal-overlay.role-form-overlay.MRB-overlay .role-form-modal>.modal-body{display:block!important;flex:1!important;overflow-y:auto!important;max-height:none!important;padding:20px 24px!important;background:#fff}.modal-overlay.role-form-overlay.MRB-overlay .role-form-modal>.modal-footer{flex-shrink:0!important}.modal-overlay.mrb-add-overlay .modal{max-width:min(1100px,94vw)!important;width:min(1100px,94vw)!important;height:92vh!important;max-height:92vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}.modal-overlay.mrb-add-overlay .modal>.modal-body{display:block!important;flex:1 1 0!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;padding:20px 24px!important;background:#fff}.modal-overlay.mrb-add-overlay .modal>.modal-footer{flex-shrink:0!important;display:flex!important;align-items:center;justify-content:flex-end;border-top:1px solid #e5e7eb!important;background:#fff!important;padding:14px 24px 18px!important;box-shadow:0 -2px 8px rgba(0,0,0,.04)!important}.iis-section{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:16px 20px;margin-bottom:12px}.iis-section-title{font-size:15px;font-weight:600;color:#1f2937;border-left:3px solid #3b82f6;padding-left:10px;margin-bottom:16px}.jp-item-input{width:100%;border:1px solid #e5e7eb;border-radius:4px;padding:4px 6px;font-size:12px;box-sizing:border-box;text-align:center;background:#fff;transition:border-color .2s}.jp-item-input:focus{border-color:#3b82f6;outline:0;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.jp-item-select{width:100%;border:1px solid #e5e7eb;border-radius:4px;padding:4px 6px;font-size:12px;box-sizing:border-box;text-align:center;background:#fff}.iis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 24px}.iis-field{min-width:0}.iis-field-full{grid-column:1/-1;margin-top:6px}.iis-label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:6px}.iis-label.required::after{content:' *';color:#ef4444}.iis-input{width:100%;height:38px;padding:0 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;outline:0;box-sizing:border-box;transition:border-color .15s}.iis-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.iis-input[readonly]{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.iis-select-wrap{position:relative}.iis-select{width:100%;height:38px;padding:0 30px 0 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#1f2937;background:#fff;outline:0;appearance:none;cursor:pointer;box-sizing:border-box}.iis-select-wrap svg{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.iis-textarea{width:100%;min-height:68px;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#1f2937;resize:vertical;outline:0;font-family:inherit;box-sizing:border-box;transition:border-color .15s}.iis-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.iis-textarea[readonly]{background:#f3f4f6;color:#6b7280}.iis-details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.iis-detail-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s}.iis-detail-card:hover{box-shadow:0 1px 6px rgba(0,0,0,.06)}.iis-detail-header{display:flex;align-items:center;gap:8px}.iis-detail-type{font-size:11px;color:#3b82f6;font-weight:600;background:#eff6ff;padding:2px 8px;border-radius:3px;white-space:nowrap;flex-shrink:0}.iis-detail-name{font-size:13px;font-weight:600;color:#1f2937;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iis-detail-tip{width:18px;height:18px;border-radius:50%;background:#e5e7eb;color:#6b7280;font-size:11px;text-align:center;line-height:18px;cursor:help;user-select:none;flex-shrink:0}.iis-detail-tip:hover{background:#3b82f6;color:#fff}.iis-detail-row{display:flex;align-items:flex-start;gap:6px}.iis-detail-row label{font-size:12px;color:#6b7280;min-width:auto;width:72px;flex-shrink:0;line-height:30px}.iis-spinner{display:inline-flex;align-items:center;flex:1;border:1px solid #d1d5db;border-radius:6px;overflow:hidden;background:#fff}.iis-spin-btn{width:28px;height:28px;background:#f9fafb;border:none;color:#4b5563;font-size:15px;cursor:pointer;font-weight:500;line-height:28px;padding:0;flex-shrink:0;transition:background .15s}.iis-spin-btn:hover{background:#e5e7eb}.iis-spin-input{flex:1;min-width:0;text-align:center;border:none;border-left:1px solid #e5e7eb;border-right:1px solid #e5e7eb;outline:0;height:28px;font-size:13px;font-weight:500;background:#fff;padding:0 4px}.iis-detail-remark{flex:1;min-height:52px;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:12px;color:#1f2937;resize:vertical;outline:0;font-family:inherit;box-sizing:border-box;transition:border-color .15s}.iis-detail-remark:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.spc-data-entry-panel{overflow:auto!important}.spc-header-wrap{padding:16px;background:#fff}.spc-header-table{border-collapse:collapse;width:100%;table-layout:fixed}.spc-header-table td{border:1px solid #c0c4cc;vertical-align:middle;padding:10px 8px;text-align:center;font-size:13px;color:#1f2937;height:38px}.spc-header-table .spc-title{background:#fff;font-weight:700;font-size:16px;text-align:center;padding:10px 8px;color:#1f2937;border:1px solid #c0c4cc}.spc-header-table .spc-lbl{background:#fff;font-weight:500;font-size:13px;text-align:center;padding:10px 8px;min-width:60px;white-space:nowrap}.spc-header-table .spc-lbl.spc-required::before{content:'*';color:#ef4444;margin-right:2px;font-weight:700}.spc-header-table .spc-cell{width:100%;height:34px;padding:0 8px;border:1px solid #d1d5db;border-radius:3px;font-size:13px;text-align:center;outline:0;background:#fff;box-sizing:border-box}.spc-header-table .spc-cell:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}.spc-header-table .spc-cell[readonly]{background:#f3f4f6;color:#6b7280}.spc-header-table select.spc-cell{cursor:pointer}.spc-picker-wrap{position:relative;display:inline-block;width:100%}.spc-picker-wrap .spc-picker-input{padding-right:28px}.spc-picker-icon{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:14px;cursor:pointer;color:#3b82f6;line-height:1;user-select:none}.spc-picker-icon:hover{color:#1d4ed8;transform:translateY(-50%) scale(1.15)}.spc-cell-input{width:100%;height:34px;text-align:center;border:1px solid #d1d5db;border-radius:4px;font-size:13px;outline:0;box-sizing:border-box;min-width:85px}.spc-cell-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}.spc-data-table{table-layout:auto;white-space:nowrap}.spc-tbl-lbl{background:#f0f9ff;color:#1f2937;font-weight:600;font-size:13px;text-align:center;padding:6px 10px;min-width:70px;border-right:2px solid #c0c4cc}.spc-r-row td,.spc-sum-row td,.spc-xbar-row td{font-weight:600;font-size:13px;text-align:center;padding:6px;color:#3b82f6;background:#f8fafc}.spc-r-row td:first-child,.spc-sum-row td:first-child,.spc-xbar-row td:first-child{background:#f0f9ff;color:#1f2937}.spc-summary-panel{width:280px;flex-shrink:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.spc-summary-title{font-size:15px;font-weight:600;color:#1f2937;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e5e7eb}.spc-summary-table{width:100%;border-collapse:collapse}.spc-summary-table td{padding:5px 12px;border-bottom:1px solid #f3f4f6;font-size:12px;color:#6b7280}.spc-summary-table td:first-child{color:#6b7280;width:55%}.spc-summary-val{font-weight:600;color:#1f2937!important;text-align:right}.spc-sum-val{font-weight:600;color:#1f2937;text-align:center;font-size:13px;background:#f9fafb}.spc-chart-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.spc-chart-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:4px}.spc-chart-info{font-size:12px;color:#6b7280;margin-bottom:12px}.spc-info-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.spc-info-title{font-size:15px;font-weight:600;color:#1f2937;border-left:3px solid #3b82f6;padding-left:10px;margin-bottom:12px}.spc-info-table{width:100%;border-collapse:collapse}.spc-info-table td{padding:6px 12px;border-bottom:1px solid #f3f4f6;font-size:13px;color:#374151}.spc-info-table td:first-child{color:#6b7280;width:40%}.spc-info-table-xlsx{width:100%;border-collapse:collapse;background:#fff;font-size:13px;margin:0}.spc-info-table-xlsx td,.spc-info-table-xlsx th{border:1px solid #c0c4cc;padding:6px 10px;text-align:center;vertical-align:middle;min-width:70px}.spc-batch-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:9999;display:flex;align-items:center;justify-content:center}.spc-batch-modal{background:#fff;border-radius:12px;width:560px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 48px rgba(0,0,0,.2);overflow:hidden}.spc-batch-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb}.spc-batch-modal-title{font-size:16px;font-weight:700;color:#111827}.spc-batch-modal-close{width:32px;height:32px;border:none;background:0 0;font-size:22px;color:#9ca3af;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center}.spc-batch-modal-close:hover{background:#f3f4f6;color:#374151}.spc-batch-filter{display:flex;align-items:flex-end;gap:12px;padding:14px 20px;background:#f9fafb;border-bottom:1px solid #e5e7eb;flex-wrap:wrap}.spc-batch-filter-item{display:flex;flex-direction:column;gap:4px}.spc-batch-filter-item label{font-size:12px;color:#6b7280;font-weight:500}.spc-batch-filter-item input,.spc-batch-filter-item select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;outline:0;width:180px;background:#fff;color:#1f2937;box-sizing:border-box}.spc-batch-filter-item input:focus,.spc-batch-filter-item select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.15)}.spc-batch-filter-item select{cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239CA3AF' d='M6 8L1 3h10z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:right 8px center;padding-right:26px}.spc-batch-date-range{display:flex;align-items:center;gap:6px}.spc-batch-date-range input{width:130px}.spc-batch-date-range span{font-size:12px;color:#9ca3af}.spc-batch-filter-actions{display:flex;align-items:flex-end;gap:8px;padding-bottom:4px}.spc-batch-table-wrap{flex:1;overflow-y:auto;padding:0 20px;-webkit-overflow-scrolling:touch}.spc-batch-table{width:100%;border-collapse:collapse}.spc-batch-table thead{position:sticky;top:0;z-index:1}.spc-batch-table th{background:#f3f4f6;padding:10px 12px;font-size:13px;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;text-align:center}.spc-batch-table td{padding:10px 12px;font-size:13px;border-bottom:1px solid #f3f4f6;text-align:center}.spc-batch-row{cursor:pointer;transition:background .15s}.spc-batch-row:hover{background:#f9fafb}.spc-batch-row.selected{background:#eff6ff}.spc-batch-checkbox{width:16px;height:16px;cursor:pointer;accent-color:#3B82F6}.spc-batch-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid #e5e7eb;background:#fafbfc}.spc-batch-selected-info{font-size:14px;font-weight:600;color:#3b82f6}.spc-batch-modal-btns{display:flex;gap:10px}.spc-k-input:hover{background:#eff6ff!important}.pda-page-wrapper{display:flex;justify-content:center;align-items:flex-start;min-height:100%;padding:20px;background:#f0f2f5}.pda-phone-frame{width:420px;max-width:100%;background:#f5f6fa;border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,.12);overflow:hidden;display:flex;flex-direction:column;min-height:700px;max-height:calc(100vh - 60px)}.pda-status-bar{display:flex;justify-content:space-between;padding:8px 20px 4px;font-size:11px;color:#1f2937;background:#fff}.pda-header{display:flex;align-items:center;padding:8px 16px 12px;background:#fff;gap:10px}.pda-back-btn{width:36px;height:36px;border:none;background:#f3f4f6;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#374151;transition:background .2s;flex-shrink:0}.pda-back-btn:hover{background:#e5e7eb}.pda-title{font-size:18px;font-weight:700;color:#111827}.pda-badge{margin-left:auto;background:#ef4444;color:#fff;font-size:12px;font-weight:600;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 7px}.pda-scan-section{display:flex;align-items:center;margin:12px 16px;padding:10px 14px;background:#fff;border:2px solid #3b82f6;border-radius:14px;gap:10px;box-shadow:0 2px 12px rgba(59,130,246,.15)}.pda-scan-icon{flex-shrink:0;display:flex}.pda-scan-input{flex:1;border:none;outline:0;font-size:15px;color:#1f2937;background:0 0}.pda-scan-input::placeholder{color:#9ca3af}.pda-scan-clear{width:28px;height:28px;border:none;background:#f3f4f6;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.pda-scan-clear:hover{background:#e5e7eb}.pda-filter-tabs{display:flex;margin:0 16px 8px;background:#fff;border-radius:12px;padding:4px;gap:4px}.pda-filter-tab{flex:1;padding:8px 0;border:none;background:0 0;border-radius:10px;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;transition:.2s;white-space:nowrap}.pda-filter-tab.active{background:#3b82f6;color:#fff;font-weight:600;box-shadow:0 1px 3px rgba(59,130,246,.3)}.pda-card-list{flex:1;overflow-y:auto;padding:0 16px 12px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.pda-card{background:#fff;border-radius:14px;padding:14px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:box-shadow .2s}.pda-card:active{box-shadow:0 2px 8px rgba(0,0,0,.1)}.pda-card-top{display:flex;align-items:center;gap:10px}.pda-card-index{width:28px;height:28px;border-radius:8px;background:#f3f4f6;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#6b7280;flex-shrink:0}.pda-card-main{flex:1;min-width:0}.pda-card-name{font-size:15px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pda-card-code{font-size:12px;color:#9ca3af;font-family:monospace;margin-top:2px}.pda-card-status{font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;flex-shrink:0}.pda-card-status-pending{background:#fef3c7;color:#d97706}.pda-card-status-done{background:#d1fae5;color:#059669}.pda-card-status-ing{background:#dbeafe;color:#2563eb}.pda-card-detail{margin-top:10px;padding-top:10px;border-top:1px solid #f3f4f6;display:flex;flex-direction:column;gap:4px}.pda-detail-row{display:flex;justify-content:space-between;align-items:center;font-size:12px}.pda-detail-label{color:#9ca3af;flex-shrink:0}.pda-detail-val{color:#374151;text-align:right;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pda-detail-val.mono{font-family:monospace;font-size:11px}.pda-card-actions{margin-top:10px;display:flex;justify-content:flex-end}.pda-btn-confirm{display:flex;align-items:center;gap:6px;padding:8px 20px;background:#10b981;color:#fff;border:none;border-radius:24px;font-size:14px;font-weight:600;cursor:pointer;transition:.2s;box-shadow:0 2px 6px rgba(16,185,129,.3)}.pda-btn-confirm:active{background:#059669;transform:scale(.96)}.pda-bottom-bar{padding:12px 16px 20px;background:#fff;border-top:1px solid #f3f4f6}.pda-btn-batch{width:100%;padding:14px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 14px rgba(37,99,235,.35);transition:.2s;letter-spacing:.5px}.pda-btn-batch:active{transform:scale(.97);box-shadow:0 2px 6px rgba(37,99,235,.3)}.pda-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:#cbd5e1}.pda-empty-state p{margin-top:12px;font-size:14px;color:#9ca3af}@media (max-width:480px){.pda-page-wrapper{padding:0}.pda-phone-frame{width:100%;border-radius:0;max-height:100vh;min-height:100vh}}.ws-page{padding:0;margin:0;min-height:calc(100vh - 94px);background:linear-gradient(135deg,#0a1628 0,#132347 30%,#0d1f3c 60%,#0a1628 100%);color:#e2e8f0;overflow:hidden;position:relative}.ws-page::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(59,130,246,.08) 0,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(16,185,129,.06) 0,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(245,158,11,.04) 0,transparent 50%);pointer-events:none}.ws-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:12px 28px;border-bottom:1px solid rgba(59,130,246,.2);background:rgba(15,25,50,.6);backdrop-filter:blur(10px)}.ws-header-title{font-size:26px;font-weight:700;letter-spacing:6px;background:linear-gradient(90deg,#60a5fa,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.ws-header-right{display:flex;align-items:center;gap:28px}.ws-fullscreen-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid rgba(59,130,246,.2);background:rgba(59,130,246,.08);color:#60a5fa;cursor:pointer;transition:.25s;flex-shrink:0}.ws-fullscreen-btn:hover{background:rgba(59,130,246,.18);border-color:rgba(59,130,246,.4);color:#93c5fd;transform:scale(1.05)}.ws-header-info{display:flex;align-items:center;gap:20px;font-size:12px;color:#94a3b8}.ws-header-info .ws-info-val{color:#60a5fa;font-weight:600}.ws-clock{font-size:22px;font-weight:700;color:#60a5fa;font-variant-numeric:tabular-nums;letter-spacing:2px;min-width:76px;text-align:center}.ws-date{font-size:11px;color:#64748b;margin-top:2px;text-align:center}.ws-kpi-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;padding:14px 28px}.ws-kpi-card{position:relative;background:rgba(15,30,60,.65);border:1px solid rgba(59,130,246,.12);border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:14px;overflow:hidden;backdrop-filter:blur(8px);transition:border-color .3s}.ws-kpi-card:hover{border-color:rgba(59,130,246,.35)}.ws-kpi-card::after{content:'';position:absolute;top:0;left:0;width:3px;height:100%;border-radius:3px 0 0 3px}.ws-kpi-card.kpi-blue::after{background:linear-gradient(180deg,#3b82f6,#60a5fa)}.ws-kpi-card.kpi-green::after{background:linear-gradient(180deg,#10b981,#34d399)}.ws-kpi-card.kpi-orange::after{background:linear-gradient(180deg,#f59e0b,#fbbf24)}.ws-kpi-card.kpi-purple::after{background:linear-gradient(180deg,#8b5cf6,#a78bfa)}.ws-kpi-card.kpi-cyan::after{background:linear-gradient(180deg,#06b6d4,#22d3ee)}.ws-kpi-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0}.ws-kpi-icon.ic-blue{background:rgba(59,130,246,.12);color:#60a5fa}.ws-kpi-icon.ic-green{background:rgba(16,185,129,.12);color:#34d399}.ws-kpi-icon.ic-orange{background:rgba(245,158,11,.12);color:#fbbf24}.ws-kpi-icon.ic-purple{background:rgba(139,92,246,.12);color:#a78bfa}.ws-kpi-icon.ic-cyan{background:rgba(6,182,212,.12);color:#22d3ee}.ws-kpi-body{flex:1;min-width:0}.ws-kpi-label{font-size:11px;color:#64748b;margin-bottom:2px;text-transform:uppercase;letter-spacing:1px}.ws-kpi-value{font-size:26px;font-weight:700;color:#f1f5f9;line-height:1.2}.ws-kpi-unit{font-size:12px;color:#64748b;font-weight:400;margin-left:2px}.ws-kpi-sub{font-size:11px;color:#94a3b8;margin-top:2px}.ws-kpi-sub.good{color:#34d399}.ws-kpi-sub.bad{color:#f87171}.ws-main-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 28px 20px;align-items:start}.ws-panel{background:rgba(15,30,60,.5);border:1px solid rgba(59,130,246,.1);border-radius:10px;padding:16px;backdrop-filter:blur(8px);display:flex;flex-direction:column}.ws-panel-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(59,130,246,.1);flex-shrink:0}.ws-panel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ws-panel-dot.blue{background:#3b82f6;box-shadow:0 0 8px rgba(59,130,246,.6)}.ws-panel-dot.green{background:#10b981;box-shadow:0 0 8px rgba(16,185,129,.6)}.ws-panel-dot.orange{background:#f59e0b;box-shadow:0 0 8px rgba(245,158,11,.6)}.ws-panel-dot.cyan{background:#06b6d4;box-shadow:0 0 8px rgba(6,182,212,.6)}.ws-panel-title{font-size:14px;font-weight:600;color:#cbd5e1;letter-spacing:1px;flex:1}.ws-panel-sub{font-size:11px;color:#64748b}.ws-plan-body{display:flex;gap:20px}.ws-plan-left{flex:1;display:flex;align-items:center;justify-content:center;padding:8px 0}.ws-plan-right{flex:1.1;display:flex;flex-direction:column;gap:10px;justify-content:center}.ws-plan-metric{padding:2px 0}.ws-plan-metric-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.ws-plan-metric-name{font-size:12px;color:#94a3b8}.ws-plan-metric-val{font-size:16px;font-weight:700;color:#f1f5f9}.ws-plan-metric-total{font-size:11px;font-weight:400;color:#64748b;margin-left:2px}.ws-plan-metric-badge{display:inline-block;font-size:10px;font-weight:600;padding:1px 8px;border-radius:10px;margin-left:8px;background:rgba(16,185,129,.15);color:#34d399}.ws-plan-bar-wrap{height:6px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden;position:relative}.ws-plan-bar-wrap::after{content:'';position:absolute;inset:0;border-radius:3px;border:1px solid rgba(255,255,255,.04)}.ws-plan-bar-fill{height:100%;border-radius:3px;transition:width .8s;position:relative}.ws-plan-bar-fill.blue{background:linear-gradient(90deg,#1d4ed8,#3b82f6,#60a5fa)}.ws-plan-bar-fill.green{background:linear-gradient(90deg,#047857,#10b981,#34d399)}.ws-plan-bar-fill.cyan{background:linear-gradient(90deg,#0e7490,#06b6d4,#22d3ee)}.ws-ring{position:relative;width:150px;height:150px;margin:0 auto;flex-shrink:0}.ws-ring svg{transform:rotate(-90deg);filter:drop-shadow(0 0 6px rgba(96,165,250,.3))}.ws-ring-bg{fill:none;stroke:rgba(255,255,255,.05);stroke-width:10}.ws-ring-fill{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset 1s}.ws-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ws-ring-val{font-size:32px;font-weight:800;color:#f1f5f9;line-height:1}.ws-ring-label{font-size:11px;color:#64748b;margin-top:4px}.ws-week-chart{display:flex;align-items:flex-end;gap:8px;height:80px;padding:0 4px;border-bottom:1px solid rgba(255,255,255,.05)}.ws-week-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end}.ws-week-bars{display:flex;gap:3px;align-items:flex-end;height:100%;width:100%;justify-content:center}.ws-week-bar{width:7px;border-radius:4px 4px 0 0;transition:height .6s;min-width:5px}.ws-week-bar.plan{background:linear-gradient(to top,rgba(59,130,246,.25),rgba(96,165,250,.45))}.ws-week-bar.actual{background:linear-gradient(to top,#3b82f6,#60a5fa)}.ws-week-label{font-size:10px;color:#64748b;text-align:center}.ws-prod-body{display:flex;flex-direction:column;gap:12px}.ws-prod-summary{display:flex;gap:12px}.ws-prod-summary-item{flex:1;text-align:center;padding:12px 8px;background:rgba(255,255,255,.03);border-radius:8px;border:1px solid rgba(255,255,255,.04)}.ws-prod-summary-val{font-size:22px;font-weight:700;line-height:1.2}.ws-prod-summary-label{font-size:10px;color:#64748b;margin-top:4px}.ws-line-section-title{font-size:11px;color:#64748b;margin-bottom:8px;padding-left:2px}.ws-line-list{display:flex;flex-direction:column;gap:6px}.ws-line-item{display:flex;align-items:center;gap:10px;padding:7px 10px;background:rgba(255,255,255,.03);border-radius:6px;border:1px solid rgba(255,255,255,.04);transition:border-color .25s}.ws-line-item:hover{border-color:rgba(59,130,246,.2)}.ws-line-name{width:56px;font-size:12px;font-weight:600;color:#cbd5e1;flex-shrink:0}.ws-line-progress{flex:1;height:18px;background:rgba(255,255,255,.05);border-radius:4px;overflow:hidden;position:relative}.ws-line-progress-fill{height:100%;border-radius:4px;transition:width .6s;position:relative}.ws-line-progress-fill.running{background:linear-gradient(90deg,#1d4ed8,#3b82f6,#60a5fa);box-shadow:0 0 6px rgba(59,130,246,.3)}.ws-line-progress-fill.standby{background:linear-gradient(90deg,#b45309,#f59e0b);box-shadow:0 0 6px rgba(245,158,11,.2)}.ws-line-progress-fill.fault{background:linear-gradient(90deg,#b91c1c,#ef4444);box-shadow:0 0 6px rgba(239,68,68,.2)}.ws-line-progress-text{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:#fff;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5)}.ws-line-rate{width:50px;font-size:12px;font-weight:600;text-align:right;flex-shrink:0}.ws-line-rate.good{color:#34d399}.ws-line-rate.warn{color:#fbbf24}.ws-line-oee{font-size:10px;color:#64748b;margin-left:3px}.ws-line-status{display:inline-block;font-size:10px;padding:2px 8px;border-radius:4px;font-weight:500;width:46px;text-align:center;flex-shrink:0}.ws-line-status.running{background:rgba(16,185,129,.15);color:#34d399}.ws-line-status.standby{background:rgba(245,158,11,.15);color:#fbbf24}.ws-line-status.fault{background:rgba(239,68,68,.15);color:#f87171}.ws-eq-body{display:flex;flex-direction:column;gap:14px;flex:1}.ws-eq-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.ws-eq-item{text-align:center;padding:10px 6px;background:rgba(255,255,255,.03);border-radius:8px;border:1px solid rgba(255,255,255,.04)}.ws-eq-count{font-size:22px;font-weight:700}.ws-eq-label{font-size:10px;color:#64748b;margin:3px 0}.ws-eq-bar-bg{height:3px;background:rgba(255,255,255,.06);border-radius:2px;margin-top:4px}.ws-eq-bar-fill{height:100%;border-radius:2px;transition:width .6s}.ws-eq-summary{display:flex;align-items:center;gap:20px;padding:8px 12px;background:rgba(255,255,255,.03);border-radius:6px}.ws-eq-summary-item{flex:1;text-align:center}.ws-eq-summary-val{font-size:20px;font-weight:700;color:#60a5fa}.ws-eq-summary-label{font-size:10px;color:#64748b;margin-top:2px}.ws-alert-list{flex:1;overflow-y:auto;max-height:130px}.ws-alert-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;margin-bottom:6px;background:rgba(255,255,255,.02);border-left:3px solid transparent}.ws-alert-item:last-child{margin-bottom:0}.ws-alert-item.warning{border-left-color:#f59e0b;background:rgba(245,158,11,.06)}.ws-alert-item.info{border-left-color:#3b82f6;background:rgba(59,130,246,.05)}.ws-alert-item.critical{border-left-color:#ef4444;background:rgba(239,68,68,.06)}.ws-alert-time{font-size:11px;color:#64748b;flex-shrink:0;width:40px}.ws-alert-device{font-size:12px;color:#cbd5e1;flex-shrink:0;width:80px}.ws-alert-type{font-size:12px;color:#94a3b8;flex:1}.ws-alert-status{font-size:10px;padding:2px 8px;border-radius:3px;flex-shrink:0}.ws-alert-status.processing{background:rgba(245,158,11,.15);color:#fbbf24}.ws-alert-status.done{background:rgba(16,185,129,.15);color:#34d399}.ws-wh-body{display:flex;flex-direction:column;gap:14px;flex:1}.ws-wh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ws-wh-card{border-radius:8px;padding:14px 12px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);position:relative;overflow:hidden}.ws-wh-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%}.ws-wh-card.c-raw::before{background:linear-gradient(180deg,#3b82f6,#60a5fa)}.ws-wh-card.c-semi::before{background:linear-gradient(180deg,#8b5cf6,#a78bfa)}.ws-wh-card.c-fin::before{background:linear-gradient(180deg,#10b981,#34d399)}.ws-wh-card.c-wip::before{background:linear-gradient(180deg,#f59e0b,#fbbf24)}.ws-wh-card-name{font-size:11px;color:#94a3b8;margin-bottom:6px}.ws-wh-card-stock{font-size:20px;font-weight:700;color:#f1f5f9;margin-bottom:2px}.ws-wh-card-unit{font-size:11px;color:#64748b;font-weight:400}.ws-wh-bar-wrap{height:4px;background:rgba(255,255,255,.06);border-radius:2px;margin-top:8px;overflow:hidden}.ws-wh-bar-fill{height:100%;border-radius:2px;transition:width .6s}.ws-wh-bar-fill.blue{background:linear-gradient(90deg,#2563eb,#60a5fa)}.ws-wh-bar-fill.purple{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.ws-wh-bar-fill.green{background:linear-gradient(90deg,#059669,#34d399)}.ws-wh-bar-fill.orange{background:linear-gradient(90deg,#d97706,#fbbf24)}.ws-wh-card-info{font-size:10px;color:#64748b;margin-top:6px;display:flex;justify-content:space-between}.ws-wh-io{display:flex;gap:14px}.ws-wh-io-card{flex:1;border-radius:8px;padding:14px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);display:flex;align-items:center;gap:12px}.ws-wh-io-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0}.ws-wh-io-icon.in{background:rgba(16,185,129,.12);color:#34d399}.ws-wh-io-icon.out{background:rgba(245,158,11,.12);color:#fbbf24}.ws-wh-io-label{font-size:11px;color:#94a3b8;margin-bottom:2px}.ws-wh-io-val{font-size:20px;font-weight:700;color:#f1f5f9}@keyframes ws-pulse{0%,100%{opacity:1}50%{opacity:.6}}.ws-refreshing{animation:1s ease-in-out ws-pulse}.ws-fade-in{animation:.5s ws-fadeIn}@keyframes ws-fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ws-page:-webkit-full-screen,.ws-page:fullscreen{min-height:100vh;padding:0;overflow:auto}.ws-page:-webkit-full-screen .ws-main-grid,.ws-page:fullscreen .ws-main-grid{grid-template-columns:1fr 1fr;gap:16px;padding:0 32px 24px}.ws-page:-webkit-full-screen .ws-kpi-row,.ws-page:fullscreen .ws-kpi-row{padding:18px 32px;gap:18px}.ws-page:-webkit-full-screen .ws-header,.ws-page:fullscreen .ws-header{padding:14px 32px}