#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bam-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:bam-fadeIn .15s ease}@keyframes bam-fadeIn{0%{opacity:0}to{opacity:1}}.bam-modal{background:#fff;border-radius:14px;width:92%;max-width:560px;height:70vh;display:flex;flex-direction:column;box-shadow:0 24px 48px -12px #0000002e;animation:bam-slideUp .2s ease}@keyframes bam-slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bam-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #f0f2f5}.bam-header h2{margin:0;font-size:17px;font-weight:700;color:#111827}.bam-batch-name{margin:4px 0 0;font-size:13px;color:#4f545e;font-weight:400}.bam-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:8px;color:#9ca3af;cursor:pointer;transition:all .15s;flex-shrink:0}.bam-close:hover{background:#f3f4f6;color:#374151}.bam-note{padding:7px 24px;font-size:12px;color:#4f46e5;background:#eef2ff;border-bottom:1px solid #e0e7ff}.bam-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 0;color:#4f545e;font-size:14px}.bam-toolbar{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid #f0f2f5}.bam-search{display:flex;align-items:center;gap:8px;flex:1;padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;transition:all .15s}.bam-search:focus-within{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f114}.bam-search svg{flex-shrink:0;color:#9ca3af}.bam-search input{flex:1;border:none;outline:none;background:transparent;font-size:13px;color:#374151}.bam-search input::placeholder{color:#9ca3af}.bam-stats{display:flex;align-items:center;gap:8px;flex-shrink:0}.bam-stat{font-size:12px;color:#4f545e;white-space:nowrap}.bam-stat strong{color:#6366f1;font-weight:700}.bam-act{border:none;background:none;color:#6366f1;font-size:12px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:5px;transition:all .12s}.bam-act:hover{background:#eef2ff;color:#4f46e5}.bam-body{flex:1;overflow-y:auto;padding:16px 24px}.bam-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;color:#9ca3af;text-align:center}.bam-empty p{margin:0;font-size:14px;font-weight:500;color:#4f545e}.bam-empty span{font-size:12px;color:#9ca3af}.bam-empty-sm{padding:40px 20px;text-align:center;color:#9ca3af;font-size:13px}.bam-tabs{display:flex;gap:8px;padding:10px 24px 0}.bam-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:none;border-bottom:2px solid transparent;background:transparent;color:#4f545e;font-size:13px;font-weight:600;cursor:pointer;border-radius:6px 6px 0 0;transition:all .12s}.bam-tab:hover{color:#4f46e5;background:#f5f3ff}.bam-tab.active{color:#4f46e5;border-bottom-color:#6366f1}.bam-tab-count{min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:#f3f4f6;color:#4f545e;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;transition:all .12s}.bam-tab.active .bam-tab-count{background:#eef2ff;color:#4f46e5}.bam-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bam-card{display:flex;align-items:center;gap:10px;padding:5px 10px;border:1.5px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .15s;background:#fff;position:relative}.bam-card:hover{border-color:#c7d2fe;background:#fafbff}.bam-card.selected{border-color:#6366f1;background:#f5f3ff}.bam-card.assigned:not(.selected){border-color:#d1d5db;border-style:solid}.bam-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#4f545e;background:#f3f4f6;flex-shrink:0;transition:all .15s}.bam-avatar.sel{background:#6366f1;color:#fff}.bam-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.bam-card-name{font-size:13px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bam-card-user{font-size:11px;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bam-badge{padding:2px 7px;background:#e0e7ff;color:#4338ca;border-radius:4px;font-size:10px;font-weight:600;flex-shrink:0;white-space:nowrap;margin-right:10px}.bam-check{position:absolute;top:16px;right:3px;width:13px;height:13px;border-radius:50%;border:1.5px solid #d1d5db;display:flex;align-items:center;justify-content:center;transition:all .12s;background:#fff}.bam-check.on{border-color:#6366f1;background:#6366f1}.bam-footer{display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;border-top:1px solid #f0f2f5}.bam-btn-ghost{padding:9px 20px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s}.bam-btn-ghost:hover{background:#f9fafb;border-color:#d1d5db}.bam-btn-danger{padding:9px 20px;border:1px solid #fecaca;border-radius:8px;background:#fff;color:#dc2626;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s}.bam-btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.bam-btn-danger:disabled{opacity:.5;cursor:not-allowed}.bam-btn-primary{padding:9px 24px;border:none;border-radius:8px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #6366f140;transition:all .15s}.bam-btn-primary:hover:not(:disabled){box-shadow:0 4px 14px #6366f159;transform:translateY(-1px)}.bam-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 500px){.bam-grid{grid-template-columns:1fr}.bam-toolbar{flex-direction:column;align-items:stretch}.bam-stats{justify-content:space-between}}.nf-bell{position:relative}@media (max-width: 768px){.nf-bell-btn{width:24px;height:24px;padding:2px}.nf-bell-badge{min-width:14px;height:14px;font-size:9px;line-height:1}}.nf-bell-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;border-radius:8px;cursor:pointer;color:#4f545e;transition:background .15s,color .15s}.nf-bell-btn:hover{background:#f3f4f6;color:#1f2937}.nf-bell-badge{position:absolute;top:0;right:-2px;min-width:16px;height:16px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;background:#ef4444;color:#fff;font-size:10px;font-weight:600;line-height:1;border-radius:8px;box-sizing:border-box;pointer-events:none}.nf-panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 24px #0000001f;z-index:200;overflow:hidden}.nf-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #f3f4f6}.nf-panel-title{font-size:14px;font-weight:600;color:#1f2937}.nf-mark-all{border:none;background:none;cursor:pointer;font-size:12px;color:#5c5bed;padding:2px 4px;border-radius:4px}.nf-mark-all:hover{background:#f5f5ff}.nf-panel-list{max-height:360px;overflow-y:auto}.nf-empty{padding:32px 0;text-align:center;font-size:13px;color:#9ca3af}.nf-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid #f9fafb;transition:background .15s}.nf-item:last-child{border-bottom:none}.nf-item:hover{background:#f9fafb}.nf-item.unread{background:#f5f5ff}.nf-item.unread:hover{background:#eef}.nf-item-title{font-size:13px;color:#374151;font-weight:400}.nf-item.unread .nf-item-title{font-weight:600;color:#1f2937}.nf-item-body{margin-top:2px;font-size:12px;color:#4f545e;line-height:1.4;word-break:break-all}.nf-item-time{margin-top:4px;font-size:11px;color:#9ca3af}.user-menu{position:relative;display:flex;align-items:center;gap:4px}@media (max-width: 768px){.user-menu-trigger{padding:4px;gap:2px}.user-menu-name,.user-menu-arrow{display:none}}.user-menu-trigger{display:flex;align-items:center;gap:8px;border:none;background:none;padding:4px 6px;border-radius:8px;cursor:pointer;transition:background .15s}.user-menu-trigger:hover{background:#f3f4f6}.user-menu-name{font-size:14px;font-weight:500;color:#1f2937}.user-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:600;letter-spacing:.5px;flex-shrink:0;-webkit-user-select:none;user-select:none}@media (max-width: 768px){.user-menu{gap:0}.notification-bell{width:24px;height:24px;padding:2px}.user-avatar{width:28px;height:28px;min-width:28px;font-size:12px}.user-menu-trigger{border-radius:6px}}.user-menu-arrow{color:#4f545e;transition:transform .15s}.user-menu-arrow.open{transform:rotate(180deg)}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:240px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:6px;z-index:200}.user-menu-profile{display:flex;align-items:center;gap:12px;padding:12px 10px}.user-menu-profile-info{min-width:0}.user-menu-profile-name{font-size:15px;font-weight:600;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-profile-meta{display:flex;align-items:center;gap:8px;margin-top:4px}.user-menu-username{font-size:13px;color:#9ca3af;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-role-badge{font-size:12px;color:#374151;border:1px solid #d1d5db;border-radius:4px;padding:1px 6px;flex-shrink:0}.user-menu-divider{height:1px;background:#f0f0f2;margin:4px 0}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;padding:10px;border-radius:8px;font-size:14px;color:#374151;cursor:pointer;transition:background .15s}.user-menu-item svg{color:#4f545e;flex-shrink:0}.user-menu-item:hover{background:#f3f4f6}.user-menu-item.danger:hover{background:#fef2f2;color:#dc2626}.user-menu-item.danger:hover svg{color:#dc2626}.dataset-page{box-sizing:border-box;height:100vh;min-height:100vh;padding:2px 20px;overflow:hidden;background:#f8f9fa}.dataset-workspace{display:grid;grid-template-columns:250px minmax(0,1fr);height:calc(100vh - 100px);min-height:0;margin-top:14px;border-top:1px solid #edf0f4}.dataset-workspace.collapsed{grid-template-columns:56px minmax(0,1fr)}.dataset-sidebar{padding:18px 18px 24px 0;border-right:1px solid #edf0f4;min-width:0}.dataset-side-head{display:flex;align-items:center;gap:8px;margin-bottom:20px}.dataset-new-btn{flex:1;height:38px;border:1px solid #dfe3e8;border-radius:6px;background:#fff;color:#24292f;cursor:pointer;font-size:14px}.dataset-new-btn:hover{color:#5550e9;border-color:#aaa7f5}.dataset-collapse{width:36px;height:36px;border:0;border-radius:6px;background:#f6f7f9;cursor:pointer;color:#596273}.dataset-side-label{display:block;margin-bottom:8px;font-size:12px;color:#7a8493}.dataset-sidebar select,.dataset-side-search{width:100%;box-sizing:border-box;height:38px;border:1px solid #e1e5ea;border-radius:6px;background:#fff;padding:0 10px;color:#374151;outline:none}.dataset-side-search{margin:12px 0}.dataset-sidebar select:focus,.dataset-side-search:focus{border-color:#7773ed;box-shadow:0 0 0 3px #5550e914}.dataset-file-search{position:relative;margin-bottom:12px}.dataset-file-search .dataset-side-search{margin:0}.dfs-panel{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:300px;overflow-y:auto;border:1px solid #e1e5ea;border-radius:8px;background:#fff;box-shadow:0 8px 24px #0f172a1f}.dfs-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 10px;border:0;background:transparent;cursor:pointer;text-align:left}.dfs-item:hover{background:#f6f7fb}.dfs-name{color:#374151;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dfs-ds{color:#8b95a5;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dfs-empty{padding:12px 10px;color:#8b95a5;font-size:12px;text-align:center}.dataset-tabs-title{display:flex;align-items:center;justify-content:space-between;margin:12px 0 8px;padding:8px 10px;background:#f7f8fa;border-radius:6px;color:#4b5563;font-size:13px;font-weight:600}.dataset-all-btn{padding:2px 12px;border:1px solid #dfe3ea;border-radius:999px;background:#fff;color:#596273;font-size:12px;font-weight:500;cursor:pointer}.dataset-all-btn:hover{border-color:#5550e9;color:#5550e9}.dataset-all-btn.active{background:#5550e9;border-color:#5550e9;color:#fff}.dataset-all-panel{display:flex;min-height:0;flex:1;flex-direction:column}.dataset-all-table{min-width:1080px}.dataset-all-row{cursor:pointer}.ds-status-badge{display:inline-block;padding:3px 10px;border:1px solid;border-radius:999px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.ds-status-badge.active{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.ds-status-badge.archived{background:#f3f4f6;border-color:#e5e7eb;color:#6b7280}.dataset-tabs{display:flex;flex-direction:column;gap:3px;max-height:calc(100vh - 315px);overflow-y:auto}.dataset-tabs button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px;border:0;border-radius:6px;background:transparent;color:#3f4754;cursor:pointer;text-align:left}.dataset-tabs button:hover{background:#f6f7fb}.dataset-tabs button.active{background:#eef2ff;color:#5550e9;font-weight:600}.dataset-tabs button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-tabs button b{color:#8b95a5;font-size:12px;font-weight:500}.dataset-main{display:flex;min-width:0;min-height:0;padding:18px 0 24px 20px;overflow:hidden;flex-direction:column}.dataset-detail-head{display:flex;justify-content:space-between;align-items:center;min-height:78px;padding-bottom:14px;flex-shrink:0}.dataset-breadcrumb{color:#858ea0;font-size:12px;margin-bottom:7px}.dataset-detail-head h2{margin:0 0 7px;color:#161b22;font-size:22px}.ds-type-badge{display:inline-flex;align-items:center;gap:4px;margin-left:10px;padding:4px 10px;border:1px solid;border-radius:999px;font-size:12px;font-weight:600;line-height:1;vertical-align:3px;white-space:nowrap}.ds-type-badge.image{background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.ds-type-badge.image-sequence{background:#e0f2fe;border-color:#bae6fd;color:#0369a1}.ds-type-badge.pointcloud{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.ds-type-badge.pointcloud-sequence{background:#ecfeff;border-color:#a5f3fc;color:#0e7490}.ds-type-badge.audio{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.dataset-meta{color:#8992a2;font-size:12px}.dataset-head-actions{display:flex;gap:8px}.dataset-detail-tabs{display:flex;gap:30px;height:48px;border-bottom:1px solid #e8ebef;flex-shrink:0}.dataset-detail-tabs button{padding:0 2px;border:0;border-bottom:2px solid transparent;background:transparent;color:#4b5563;cursor:pointer;font-size:14px}.dataset-detail-tabs button.active{color:#5550e9;border-bottom-color:#5550e9;font-weight:600}.dataset-data-panel{display:flex;min-height:0;padding-top:14px;overflow:hidden;flex:1;flex-direction:column}.dataset-toolbar{display:flex;align-items:center;gap:12px;min-height:44px;margin-bottom:10px;flex-shrink:0}.dataset-toolbar input{width:260px;height:36px;padding:0 12px;border:1px solid #e1e5ea;border-radius:6px;outline:none}.dataset-toolbar span{color:#8b95a5;font-size:13px}.dataset-toolbar-spacer{flex:1}.ds-folderbar{display:flex;align-items:center;gap:12px;min-height:34px;margin-bottom:6px;flex-shrink:0}.ds-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px;flex:1;min-width:0;font-size:13px}.ds-crumb{padding:3px 7px;border:none;border-radius:5px;background:none;color:#5550e9;font-size:13px;cursor:pointer}.ds-crumb:hover{background:#f0f0ff}.ds-crumb.current{color:#101112;font-weight:600;cursor:default}.ds-crumb.current:hover{background:none}.ds-crumb-item{display:inline-flex;align-items:center;gap:2px;min-width:0}.ds-crumb-sep{color:#c3c9d4;-webkit-user-select:none;user-select:none}.ds-newfolder-btn{flex-shrink:0;padding:6px 12px;font-size:13px}.ds-folder-row{cursor:pointer}.ds-folder-row:hover{background:#f5f5ff}.ds-folder-row td{display:flex;align-items:center;gap:8px}.ds-folder-icon{display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;flex-shrink:0}.ds-folder-icon svg{display:block}.ds-folder-name{font-weight:600;color:#1c1e21;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-folder-count{color:#8b95a5;font-size:12px;flex-shrink:0}.ds-folder-more-wrap{position:relative;margin-left:auto;flex-shrink:0}.ds-folder-more{display:inline-flex;align-items:center;justify-content:center;width:28px;height:22px;padding:0;border:none;border-radius:5px;background:transparent;color:#8b95a5;font-size:15px;line-height:1;cursor:pointer;transition:background .1s,color .1s}.ds-folder-more:hover,.ds-folder-more.open{background:#f0f0ff;color:#5550e9}.ds-folder-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;min-width:92px;padding:4px;background:#fff;border:1px solid #edf0f3;border-radius:8px;box-shadow:0 6px 20px #0f172a1f}.ds-folder-menu button{padding:7px 10px;border:none;border-radius:6px;background:none;color:#374151;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s,color .1s}.ds-folder-menu button:hover{background:#f3f4f8;color:#5550e9}.ds-folder-menu button.danger:hover{background:#fef2f2;color:#e5484d}.ds-item-folderpath{margin-top:2px;color:#9aa3b2;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-table-wrap{min-height:0;overflow:auto;border:1px solid #edf0f3;border-radius:8px;flex:1}.dataset-table{width:100%;border-collapse:collapse;min-width:900px;font-size:13px}.dataset-table th{position:sticky;top:0;z-index:1;height:44px;padding:0 12px;background:#fafbfc;color:#4b5563;text-align:left;font-weight:600;white-space:nowrap}.dataset-table td{height:48px;padding:0 12px;border-top:1px solid #f0f2f4;color:#0a0c0d}.dataset-table tbody tr:hover{background:#fafbff}.dataset-table .mono{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#101112;font-family:Consolas,monospace}.dataset-pagination{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:14px 0;color:#737d8c;font-size:13px;flex-shrink:0}.dataset-pagination button{padding:6px 12px;border:1px solid #e0e4e9;border-radius:6px;background:#fff;cursor:pointer}.dataset-pagination button:disabled{opacity:.45;cursor:default}.dataset-empty{padding:90px 20px;color:#9aa3b2;text-align:center}.dataset-events,.dataset-settings{min-height:0;padding:20px 0;overflow-y:auto;flex:1}.dataset-events>div{display:flex;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #edf0f3;color:#000;font-size:14px;font-weight:500;font-family:等线}.dataset-events span{color:#919aa8;font-size:12px}.dataset-settings{display:grid;grid-template-columns:minmax(300px,600px) minmax(300px,600px);gap:18px}.dataset-setting-card{padding:20px;border:1px solid #e8ebef;border-radius:10px;background:#fff}.dataset-setting-card h3{margin:0 0 18px;font-size:15px}.dataset-setting-card label{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;color:#596273;font-size:12px}.dataset-setting-card input,.dataset-setting-card textarea,.dataset-setting-card select{box-sizing:border-box;width:100%;padding:9px 11px;border:1px solid #e1e5ea;border-radius:6px;font-family:inherit}.dataset-setting-card textarea{min-height:90px;resize:vertical}.dataset-grant{display:grid;grid-template-columns:minmax(190px,1fr) 110px auto;align-items:start;gap:8px;margin-bottom:14px}.dataset-page .dataset-setting-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.dataset-page .dataset-setting-title h3{margin:0}.dataset-page .dataset-setting-title>span{color:#8b95a5;font-size:12px}.dataset-page .dataset-permission-list{max-height:250px;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#d6dae1 transparent}.dataset-page .dataset-permission-empty{padding:20px 0;border-top:1px solid #eef0f3;color:#9aa3b2;font-size:12px;text-align:center}.dataset-permission-row{display:grid;grid-template-columns:1fr 70px auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #eef0f3;font-size:13px}.dataset-permission-row b{color:#5550e9;font-size:12px}.dataset-permission-row button{border:0;background:none;color:#ef4444;cursor:pointer}.dataset-page .dataset-setting-danger{border-color:#f5d7d7;background:#fffcfc}.dataset-page .dataset-setting-danger h3{color:#b91c1c}.dataset-page .dataset-setting-danger p{margin:0 0 14px;color:#8b95a5;font-size:12px;line-height:1.7}.dataset-page .dataset-delete-modal{width:420px}.dataset-page .dataset-delete-modal .modal-body{padding:22px 24px 8px}.dataset-page .ddm-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.dataset-page .ddm-warn{display:flex;width:26px;height:26px;border-radius:50%;background:#f59e0b;color:#fff;font-size:15px;font-weight:700;align-items:center;justify-content:center;flex-shrink:0}.dataset-page .ddm-head h3{margin:0;font-size:16px;font-weight:700;color:#161b22}.dataset-page .ddm-text{margin:0 0 8px;color:#374151;font-size:13px;line-height:1.7}.dataset-page .ddm-text b{color:#111827}.dataset-page .ddm-sub{margin:0 0 14px;color:#98a1b0;font-size:12px;line-height:1.7}.dataset-picker-modal{width:700px!important}.dpm-tabs{display:flex;gap:0;border-bottom:1px solid #e8ebef;margin-bottom:16px}.dpm-tab{padding:8px 20px;border:none;border-bottom:2px solid transparent;background:none;color:#6b7280;font-size:14px;font-family:inherit;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-1px}.dpm-tab:hover{color:#4338ca}.dpm-tab.active{color:#5550e9;border-bottom-color:#5550e9;font-weight:600}.dpm-bulk-tip{margin:0 0 12px;padding:9px 12px;border-radius:8px;background:#f7f8fa;color:#7a8493;font-size:12px;line-height:1.6}.dpm-bulk-list{display:flex;flex-direction:column;gap:2px;max-height:320px;overflow-y:auto;border:1px solid #edf0f3;border-radius:8px;padding:6px;margin-bottom:10px}.dpm-bulk-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;cursor:pointer;transition:background .1s;font-size:13px;color:#3d4652}.dpm-bulk-item:hover{background:#f6f7fb}.dpm-bulk-item.checked{background:#f3f3fe}.dpm-bulk-check{width:15px;height:15px;flex-shrink:0;accent-color:#5550e9;cursor:pointer}.dpm-bulk-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.dpm-bulk-item.checked .dpm-bulk-name{color:#4338ca;font-weight:600}.dpm-bulk-count{flex-shrink:0;color:#919aa8;font-size:12px}.dpm-bulk-desc{padding:8px 12px;border-radius:8px;background:#f0f0ff;color:#4b5563;font-size:12px;line-height:1.6;margin-bottom:10px}.dpm-bulk-desc b{color:#4338ca}.dpm-bulk-desc-text{color:#8b95a5}.dpm-bulk-summary{padding:8px 12px;border:1px solid #c7d2fe;border-radius:8px;background:#eef2ff;color:#374151;font-size:13px}.dpm-bulk-summary b{color:#5550e9;font-weight:700}.dpm-scope-label{margin-bottom:6px;font-size:12px;font-weight:600;color:#596273}.dpm-scope-list{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto;border:1px solid #edf0f3;border-radius:8px;padding:5px;margin-bottom:10px}.dpm-scope-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;border-radius:6px;background:transparent;color:#3d4652;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s;box-sizing:border-box}.dpm-scope-item:hover{background:#f6f7fb}.dpm-scope-item.selected{background:#f3f3fe}.dpm-scope-radio{display:block;width:14px;height:14px;border:2px solid #c5cad6;border-radius:50%;flex-shrink:0;background:transparent;transition:border-color .12s,background .12s}.dpm-scope-item.selected .dpm-scope-radio{border-color:#5550e9;background:#5550e9;box-shadow:inset 0 0 0 3px #fff}.dpm-scope-icon{display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;flex-shrink:0}.dpm-scope-icon svg{display:block}.dpm-scope-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dpm-scope-item.selected .dpm-scope-name{color:#4338ca;font-weight:600}.dpm-scope-count{flex-shrink:0;color:#919aa8;font-size:12px}.dpm-scope-empty{padding:14px 12px;color:#9aa3b2;font-size:12px;text-align:center}.dpm-file-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:0;padding:4px 2px 8px;font-size:12px;color:#7a8493}.dpm-file-crumb{padding:2px 6px;border:none;background:none;color:#5a6478;font-size:12px;font-family:inherit;cursor:pointer;border-radius:5px;transition:background .1s,color .1s;white-space:nowrap}.dpm-file-crumb:hover{background:#f0f2ff;color:#5550e9}.dpm-file-crumb.current{color:#5550e9;font-weight:600;cursor:default}.dpm-file-crumb.current:hover{background:none}.dpm-file-crumb-item{display:flex;align-items:center}.dpm-file-crumb-sep{color:#c8cdd6;padding:0 1px;-webkit-user-select:none;user-select:none}.dpm-file-folder-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;border-radius:8px;background:#f8f9fb;color:#374151;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s;margin-bottom:2px;box-sizing:border-box}.dpm-file-folder-row:hover{background:#eef0ff;color:#4338ca}.dpm-file-folder-icon{display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;flex-shrink:0}.dpm-file-folder-icon svg{display:block}.dpm-file-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.dpm-file-folder-count{flex-shrink:0;color:#919aa8;font-size:12px}.dpm-file-folder-enter{flex-shrink:0;color:#b0b8c5;font-size:16px;line-height:1;margin-left:4px}.dataset-page .ds-select{position:relative}.dataset-page .ds-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;box-sizing:border-box;width:100%;min-height:38px;padding:8px 12px;border:1px solid #e1e5ea;border-radius:8px;background:#fff;color:#111827;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s}.dataset-page .ds-select-trigger:hover{border-color:#c8cdd6}.dataset-page .ds-select.open .ds-select-trigger{border-color:#7773ed;box-shadow:0 0 0 3px #5550e917}.dataset-page .ds-select-trigger .placeholder{color:#b7bec9}.dataset-page .ds-select-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-page .ds-select-arrow{flex-shrink:0;color:#8b95a5;transition:transform .15s}.dataset-page .ds-select.open .ds-select-arrow{transform:rotate(180deg)}.dataset-page .ds-select-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:1100;border:1px solid #e8ebef;border-radius:10px;background:#fff;box-shadow:0 12px 32px #0f172a1f;overflow:hidden;animation:ds-select-pop .14s ease-out}@keyframes ds-select-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dataset-page .ds-select-search{box-sizing:border-box;width:100%;height:34px;padding:0 12px;border:0;border-bottom:1px solid #f0f2f5;font-size:13px;outline:none}.dataset-page .ds-select-list{max-height:248px;overflow-y:auto;padding:5px}.dataset-page .ds-select-option{position:relative;display:flex;flex-direction:column;gap:2px;width:100%;box-sizing:border-box;padding:8px 26px 8px 10px;border:0;border-radius:7px;background:transparent;cursor:pointer;text-align:left;transition:background .1s}.dataset-page .ds-select-option:hover{background:#f4f5fb}.dataset-page .ds-select-option.active{background:#f3f3fe}.dataset-page .ds-select-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#24292f}.dataset-page .ds-select-option.active .ds-select-option-label{color:#4338ca;font-weight:600}.dataset-page .ds-select-option-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#98a1b0}.dataset-page .ds-select-check{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:#5550e9;font-size:12px;font-weight:700}.dataset-page .ds-select-none{padding:18px 10px;color:#9aa3b2;font-size:12px;text-align:center}.dataset-page .ds-multi-select .ds-select-panel{min-width:280px}.dataset-page .ds-multi-all{display:flex;align-items:center;gap:8px;box-sizing:border-box;width:100%;padding:8px 10px;border:0;border-bottom:1px solid #f0f2f5;background:#fafbfc;color:#596273;font-family:inherit;font-size:12px;text-align:left;cursor:pointer}.dataset-page .ds-multi-all small{margin-left:auto;color:#98a1b0}.dataset-page .ds-multi-option{flex-direction:row;align-items:center;gap:9px;padding-right:10px}.dataset-page .ds-multi-check{display:inline-flex;width:16px;height:16px;border:1px solid #cfd5de;border-radius:4px;background:#fff;color:#fff;font-size:11px;font-weight:700;align-items:center;justify-content:center;flex-shrink:0}.dataset-page .ds-multi-check.checked{border-color:#5550e9;background:#5550e9}.dataset-page .ds-multi-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.dataset-page .dataset-grant .btn:disabled{opacity:.5;cursor:not-allowed}.dataset-page .dataset-dialog{padding:0;border-radius:14px;overflow:visible}.dataset-page .dataset-create-modal{width:800px}.dataset-page .dataset-addbatch-modal{width:480px}.dataset-page .dataset-dialog .modal-header{padding:18px 24px 14px;border-bottom:1px solid #f0f2f5;cursor:default}.dataset-page .dataset-dialog .modal-header:hover,.dataset-page .dataset-dialog .modal-header:active{background:none}.dataset-page .dataset-dialog .modal-header h2{margin:0;font-size:16px;font-weight:700;color:#161b22;letter-spacing:-.2px}.dataset-page .dataset-dialog .modal-close{display:flex!important;width:28px;height:28px;border:0;border-radius:7px;background:#f4f5f7;color:#4f545e;font-size:16px;line-height:1;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.dataset-page .dataset-dialog .modal-close:hover{background:#eceef1;color:#1f2937}.dataset-page .dataset-dialog .modal-body{padding:18px 24px 6px;overflow:visible;z-index:auto}.dataset-page .dcm-field{margin-bottom:18px}.dataset-page .dcm-field label{display:block;margin-bottom:8px;font-size:13px;font-weight:600;color:#374151}.dataset-page .dcm-field label em{color:#ef4444;font-style:normal}.dataset-page .dcm-field input,.dataset-page .dcm-field textarea,.dataset-page .dcm-field select{box-sizing:border-box;width:100%;padding:9px 12px;border:1px solid #e1e5ea;border-radius:8px;font-size:13px;color:#111827;background:#fff;font-family:inherit;transition:border-color .12s,box-shadow .12s;outline:none}.dataset-page .dcm-field select{height:40px;cursor:pointer}.dataset-page .dcm-field input::placeholder,.dataset-page .dcm-field textarea::placeholder{color:#b7bec9}.dataset-page .dcm-field input:focus,.dataset-page .dcm-field textarea:focus,.dataset-page .dcm-field select:focus{border-color:#7773ed;box-shadow:0 0 0 3px #5550e917}.dataset-page .dcm-field textarea{min-height:76px;resize:vertical}.dataset-page .dcm-type-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px}.dataset-page .dcm-type-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;border:1px solid #e1e5ea;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:all .15s}.dataset-page .dcm-type-card:hover{border-color:#aaa7f5;background:#fbfbff}.dataset-page .dcm-type-card.active{border-color:#5550e9;background:#f3f3fe;box-shadow:0 0 0 3px #5550e914}.dataset-page .dcm-type-icon{font-size:18px;line-height:1}.dataset-page .dcm-type-name{font-size:13px;font-weight:600;color:#24292f}.dataset-page .dcm-type-card.active .dcm-type-name{color:#4338ca}.dataset-page .dcm-type-desc{font-size:11px;color:#8b95a5}.dataset-page .dcm-tip{margin:2px 0 14px;padding:10px 12px;border-radius:8px;background:#f7f8fa;color:#7a8493;font-size:12px;line-height:1.6}.dataset-page .dab-summary{margin-bottom:16px;padding:10px 12px;border-radius:8px;background:#f3f3fe;color:#5a5f6d;font-size:12px;line-height:1.7}.dataset-page .dab-summary b{color:#4338ca}.dataset-page .dab-empty{padding:12px;border:1px dashed #e1e5ea;border-radius:8px;background:#fafbfc;color:#8b95a5;font-size:12px;line-height:1.7}.dataset-page .dab-loading{display:flex;align-items:center;gap:8px;padding:12px;border:1px dashed #e1e5ea;border-radius:8px;background:#fafbfc;color:#8b95a5;font-size:12px}.dataset-page .dab-spinner{display:inline-block;width:14px;height:14px;border:2px solid #d1d5db;border-top-color:#5550e9;border-radius:50%;animation:dab-spin .7s linear infinite;flex-shrink:0}@keyframes dab-spin{to{transform:rotate(360deg)}}.dsa-allbar{display:flex;align-items:center;gap:10px;padding:7px 12px;margin-bottom:8px;border-radius:8px;font-size:12px}.dsa-allbar-hint{background:#f5f3ff;border:1px solid #ddd6fe;color:#5b21b6}.dsa-allbar-active{background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3}.dsa-allbar b{color:#4f46e5;font-weight:700}.dsa-allbar button{margin-left:auto;padding:3px 10px;border:1px solid #c7d2fe;border-radius:6px;background:#fff;color:#5550e9;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s}.dsa-allbar button:hover{background:#f0f0ff}.dataset-page .dataset-dialog .modal-footer{padding:14px 24px;border-top:1px solid #f0f2f5;background:#fafbfc;border-radius:0 0 14px 14px}.dataset-page .dataset-dialog .modal-footer .btn.primary:disabled{opacity:.5;cursor:not-allowed}.dataset-picker-tools{display:flex;gap:10px;margin-bottom:12px}.dataset-picker-tools .ds-select{position:relative;flex:1;min-width:0}.dataset-picker-search{flex:1;min-width:0;box-sizing:border-box;height:38px;padding:0 12px;border:1px solid #e1e5ea;border-radius:8px;font-size:13px;outline:none;transition:border-color .12s,box-shadow .12s}.dataset-picker-search:focus{border-color:#7773ed;box-shadow:0 0 0 3px #5550e917}.dataset-picker-actions{display:flex;align-items:center;gap:12px;margin-bottom:8px}.dataset-picker-all{display:flex;align-items:center;gap:6px;font-size:13px;color:#3d4652;cursor:pointer}.dataset-picker-all input{width:14px;height:14px;cursor:pointer;accent-color:#5550e9}.dataset-picker-allbtn{margin-left:auto;padding:5px 12px;border:1px solid #c7d2fe;border-radius:6px;background:#eef2ff;color:#5550e9;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s}.dataset-picker-allbtn:hover:not(:disabled){background:#e0e7ff}.dataset-picker-allbtn:disabled{opacity:.5;cursor:not-allowed}.dataset-picker-allbar{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:8px 12px;border:1px solid #c7d2fe;border-radius:8px;background:#eef2ff;font-size:13px;color:#374151}.dataset-picker-allbar b{color:#5550e9}.dataset-picker-allbar button{padding:3px 10px;border:1px solid #d3d8f5;border-radius:6px;background:#fff;color:#596273;font-size:12px;cursor:pointer}.dataset-picker-allbar button:hover{background:#f5f6ff}.dataset-picker-allbar button:first-of-type{margin-left:auto}.dataset-picker-list{display:flex;flex-direction:column;gap:2px;max-height:400px;overflow-y:auto;border:1px solid #edf0f3;border-radius:8px;padding:6px}.dataset-picker-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;font-size:13px;color:#3d4652;cursor:pointer;transition:background .1s}.dataset-picker-item:hover{background:#f6f7fb}.dataset-picker-item.checked{background:#f3f3fe}.dataset-picker-item input{width:14px;height:14px;flex-shrink:0;cursor:pointer;accent-color:#5550e9}.dataset-picker-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-picker-item.checked .dataset-picker-name{color:#4338ca;font-weight:600}.dataset-picker-item small{margin-left:auto;color:#919aa8;white-space:nowrap}.dataset-picker-none{padding:24px 10px;color:#9aa3b2;font-size:12px;text-align:center}.dataset-picker-list--loading{pointer-events:none;opacity:.6}.dataset-picker-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px 10px;color:#9aa3b2;font-size:12px}.dataset-picker-pages{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0 0;font-size:13px;color:#737d8c}.dataset-picker-pages button{padding:5px 12px;border:1px solid #e0e4e9;border-radius:6px;background:#fff;cursor:pointer}.dataset-picker-pages button:disabled{opacity:.45;cursor:default}.dataset-picker-modal .ds-select{position:relative}.dataset-picker-modal .ds-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;box-sizing:border-box;width:100%;min-height:38px;padding:8px 12px;border:1px solid #e1e5ea;border-radius:8px;background:#fff;color:#111827;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s}.dataset-picker-modal .ds-select-trigger:hover{border-color:#c8cdd6}.dataset-picker-modal .ds-select.open .ds-select-trigger{border-color:#7773ed;box-shadow:0 0 0 3px #5550e917}.dataset-picker-modal .ds-select-trigger .placeholder{color:#b7bec9}.dataset-picker-modal .ds-select-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dataset-picker-modal .ds-select-arrow{flex-shrink:0;color:#8b95a5;transition:transform .15s}.dataset-picker-modal .ds-select.open .ds-select-arrow{transform:rotate(180deg)}.dataset-picker-modal .ds-select-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:1100;border:1px solid #e8ebef;border-radius:10px;background:#fff;box-shadow:0 12px 32px #0f172a1f;overflow:hidden;animation:ds-select-pop .14s ease-out}.dataset-picker-modal .ds-select-search{box-sizing:border-box;width:100%;height:34px;padding:0 12px;border:0;border-bottom:1px solid #f0f2f5;font-size:13px;outline:none}.dataset-picker-modal .ds-select-list{max-height:248px;overflow-y:auto;padding:5px}.dataset-picker-modal .ds-select-option{position:relative;display:flex;flex-direction:column;gap:2px;width:100%;box-sizing:border-box;padding:8px 26px 8px 10px;border:0;border-radius:7px;background:transparent;cursor:pointer;text-align:left;transition:background .1s}.dataset-picker-modal .ds-select-option:hover{background:#f4f5fb}.dataset-picker-modal .ds-select-option.active{background:#f3f3fe}.dataset-picker-modal .ds-select-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#24292f}.dataset-picker-modal .ds-select-option.active .ds-select-option-label{color:#4338ca;font-weight:600}.dataset-picker-modal .ds-select-option-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#98a1b0}.dataset-picker-modal .ds-select-check{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:#5550e9;font-size:12px;font-weight:700}.dataset-picker-modal .ds-select-none{padding:18px 10px;color:#9aa3b2;font-size:12px;text-align:center}@media (max-width: 900px){.dataset-page{padding:18px 16px}.dataset-workspace{grid-template-columns:210px minmax(0,1fr)}.dataset-settings,.dataset-grant{grid-template-columns:1fr}}.batch-data-page{display:flex;flex-direction:column;gap:16px}.batch-data-header{display:flex;align-items:center;gap:14px}.batch-data-header-actions{margin-left:auto;display:flex;gap:8px}.batch-data-header h1{margin:0;font-size:20px;color:#1f2937;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-data-subtitle{font-size:13px;color:#909399}.batch-data-filter{display:flex;gap:8px;flex-wrap:wrap}.batch-data-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.batch-data-toolbar .data-search-input{width:240px;height:34px;padding:0 12px;border:1px solid #dcdfe6;border-radius:6px;font-size:13px;color:#374151;outline:none;transition:border-color .15s}.batch-data-toolbar .data-search-input:focus{border-color:#5550e9}.batch-data-toolbar .data-filter-select{height:34px;padding:0 10px;border:1px solid #dcdfe6;border-radius:6px;font-size:13px;color:#374151;background:#fff;cursor:pointer;outline:none}.batch-data-toolbar .data-filter-select:hover,.batch-data-toolbar .data-filter-select:focus{border-color:#5550e9}.batch-data-toolbar .data-filter-reset{height:34px;padding:0 14px;font-size:13px}.batch-data-table-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:auto}.batch-data-table{width:100%;border-collapse:collapse;font-size:14px}.batch-data-table th,.batch-data-table td{padding:4px 14px;text-align:left;border-bottom:1px solid #f0f0f0;color:#374151;white-space:nowrap}.batch-data-table tbody td{height:48px;box-sizing:border-box}.batch-data-table th{background:#f9fafb;font-weight:600;color:#4f545e;font-size:13px}.th-sortable{white-space:nowrap;-webkit-user-select:none;user-select:none}.th-sort-label.active{cursor:pointer;color:#4f46e5;border-bottom:1px dashed #4f46e5}.th-sort-arrows{display:inline-flex;flex-direction:column;margin-left:4px;vertical-align:middle;line-height:1;gap:1px}.th-sort-arrow{border:none;background:none;padding:0;margin:0;cursor:pointer;font-size:9px;line-height:1;color:#c0c4cc;transition:color .15s}.th-sort-arrow:hover,.th-sort-arrow.active{color:#4f46e5}.batch-data-table tbody tr:last-child td{border-bottom:none}.batch-data-table tbody tr:hover{background:#f9fafb}.data-thumb{width:56px;height:33px;object-fit:cover;border-radius:4px;border:1px solid #e5e7eb;background:#f3f4f6;display:block}.data-thumb-audio{display:flex;align-items:center;justify-content:center;color:#5550e9;background:#eef2ff;border-color:#e0e7ff}.data-filename{max-width:320px;overflow:hidden;text-overflow:ellipsis}.data-remark{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-remark-empty{color:#b0b3bb}.data-op-col{white-space:nowrap}.data-view-btn{padding:4px;border-radius:6px;background:transparent;border:none;color:#5550e9;font-size:13px;cursor:pointer;transition:all .2s}.data-view-btn:hover{color:#0800f2}.data-status-badge{display:inline-block;font-size:12px;line-height:18px}.data-check-col{width:36px;text-align:center}.data-check-col input[type=checkbox]{width:15px;height:15px;cursor:pointer;vertical-align:middle}.batch-data-table tbody tr.selected{background:#ecf5ff}.data-delete-btn{margin-left:8px}.batch-data-filter .data-status-select{height:34px;padding:0 10px;border:1px solid #dcdfe6;border-radius:6px;font-size:13px;color:#374151;background:#fff;cursor:pointer;outline:none}.batch-data-filter .data-status-select:hover,.batch-data-filter .data-status-select:focus{border-color:#5550e9}.page-size-select{height:32px;padding:0 8px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;color:#606266;font-size:13px;cursor:pointer;outline:none}.page-size-select:hover{border-color:#c0c4cc}@media (max-width: 768px){.batch-data-page{gap:10px}.batch-data-header{flex-wrap:wrap;gap:8px}.batch-data-header h1{font-size:15px;order:-1;flex-basis:100%}.batch-data-header-actions{margin-left:0;flex-wrap:wrap;gap:6px}.batch-data-header-actions .btn{font-size:12px;padding:6px 10px}.batch-data-toolbar{gap:6px}.batch-data-toolbar .data-search-input{width:100%;flex:1 1 100%}.batch-data-toolbar .data-filter-select{flex:1;min-width:0;font-size:12px;padding:0 6px}.batch-data-toolbar .data-filter-reset{font-size:12px;padding:0 10px}.batch-data-filter{flex-wrap:wrap;gap:4px}.batch-data-filter .filter-btn{padding:5px 10px;font-size:12px}.batch-data-table{font-size:12px}.batch-data-table th,.batch-data-table td{padding:4px 8px}.data-filename{max-width:140px}.data-remark{max-width:100px}.batch-pagination{flex-wrap:wrap;gap:6px;padding:12px 0}.batch-pagination .pagination-btn{padding:6px 10px;font-size:12px}.batch-pagination .pagination-page{min-width:30px;height:30px;font-size:12px}.batch-pagination .page-size-select{font-size:12px}.batch-pagination .pagination-info{width:100%;text-align:center;margin-left:0;margin-top:4px;font-size:11px}}.project-list-page{min-height:100vh;padding:2px 20px;position:relative;background:#f8f9fa}.Dacora-AI{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,#5a6ad2,#007adf);background-clip:text;-webkit-text-fill-color:transparent;-webkit-background-clip:text}.brand-logo{width:34px;height:34px;object-fit:contain}.project-list-page .global-nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;padding:4px;border-radius:9px;background:#f8f9fa}.project-list-page .global-nav-item{padding:8px 18px;border-radius:7px;color:#4f545e;font-size:14px;font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;transition:color .15s,background .15s,box-shadow .15s}.project-list-page .global-nav-item:hover{color:#4f46e5}.project-list-page .global-nav-item.active{color:#4f46e5;background:#fff;font-weight:600;box-shadow:0 1px 3px #0f172a1f}.project-hero{position:relative;border-radius:12px;overflow:hidden;background-color:#b7ffed;padding:46px 56px;margin-top:16px;height:265px}.project-hero-bg{position:absolute;top:0;right:0;bottom:0;width:1440px;background-image:url(/project-banner.png);background-size:auto 100%;background-position:right center;background-repeat:no-repeat;pointer-events:none}@media (max-width: 1349px){.project-hero-bg{display:none}}.project-hero-text{position:relative;z-index:1}.project-hero-text h2{margin:0;font-size:28px;font-weight:700;color:#1f2937}.hero-highlight{color:#0ac5a8}.project-hero-text p{max-width:560px;margin:14px 0 28px;font-size:14px;line-height:1.8;color:#5f6b7a}.hero-create-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 26px;height:42px;border:none;border-radius:8px;background:#0ac5a8;color:#fff;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 6px 16px #0ac5a859;transition:background .2s,transform .2s}.hero-create-btn:hover{background:#09b298;transform:translateY(-1px)}.hero-create-arrow{display:inline-flex;align-items:center;transition:transform .2s}.hero-create-arrow svg{margin-top:3px;width:16px;height:16px}.hero-create-btn:hover .hero-create-arrow{transform:translate(3px)}.project-section-title{margin-top:28px;font-size:18px;font-weight:600;color:#1f2937}.project-list-page .project-section-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:8px;border-bottom:1px solid #e5e7eb}.project-list-page .project-bar-left{display:flex;align-items:flex-end;gap:16px}.project-list-page .project-filter-tabs{display:flex;gap:28px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.project-list-page .project-filter-tabs::-webkit-scrollbar{display:none}.project-list-page .project-filter-tab{background:none;border:none;padding:6px 2px 16px;font-size:16px;font-weight:500;color:#4b5563;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;white-space:nowrap;flex-shrink:0}.project-list-page .project-filter-tab:hover{color:#5550e9}.project-list-page .project-filter-tab.active{color:#5550e9;font-weight:600;border-bottom-color:#5550e9}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:20px}.project-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s,transform .2s;cursor:pointer}.project-card:hover{box-shadow:0 8px 24px #00000014;transform:translateY(-2px)}.project-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-card-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.project-card-title{font-size:17px;font-weight:600;color:#1f2937;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-type-tag{flex-shrink:0;font-size:12px;padding:2px 10px;border-radius:10px;font-weight:500}.project-type-tag.ocr{background:#ecf5ff;color:#409eff}.project-type-tag.ocr{background:#e6f7ff;color:#1677ff}.project-type-tag.rectangle{background:#fff7e6;color:#fa8c16}.project-type-tag.voice{background:#f0fff4;color:#00b42a}.project-type-tag.long-voice{background:#f9f0ff;color:#722ed1}.project-type-tag.video{background:#fff1f0;color:#f5222d}.project-type-tag.general-ocr{background:#fff2e8;color:#fa541c}.project-type-tag.rectangle-sequence{background:#fef0f7;color:#c41d7f}.project-type-tag.segmentation{background:#e8fffb;color:#08979c}.project-type-tag.pointcloud{background:#fffde6;color:#d48806}.project-type-tag.pointcloud-sequence{background:#f0f5ff;color:#2378dd}.project-card-description{font-size:13px;color:#4f545e;margin:0;min-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-period{font-size:13px;color:#4f545e;display:flex;align-items:center;gap:6px}.project-card-stats{display:flex;gap:24px;padding:5px 0;border-top:1px solid #f3f4f6}.project-stat{display:flex;flex-direction:column;gap:2px}.project-stat-value{font-size:18px;font-weight:600;color:#1f2937}.project-stat-label{font-size:12px;color:#9ca3af}.project-card-actions{display:flex;gap:8px}.project-card-actions .btn{flex:1;border-radius:10px;padding:9px 0;font-size:14px;transition:all .2s ease}.project-card-actions .btn.primary,.toolbar-group .btn.primary{background:linear-gradient(135deg,#319554,#46a76a);color:#fff;border:none;box-shadow:0 2px 6px #3e8e5a40}.task-card-actions .btn.primary{background:linear-gradient(135deg,#319554,#46a76a)}.project-card-actions .btn.primary:hover{box-shadow:0 4px 10px #3e8e5a61;transform:translateY(-1px)}.project-card-actions .btn.danger{background:#fff5f5;color:#e05c5c;border:1px solid #fcd4d4;box-shadow:0 2px 6px #dc5a5a14}.project-card-actions .btn.danger:hover{background:#feecec;border-color:#f6b6b6;box-shadow:0 4px 10px #dc5a5a29;transform:translateY(-1px)}.project-empty{text-align:center;padding:80px 0;color:#9ca3af;font-size:15px}.project-list-page .project-section-actions{display:flex;align-items:center;gap:12px;margin-bottom:8px}.project-search-box{position:relative;display:flex;align-items:center}.creator-filter-drop{position:relative;margin-bottom:8px}.creator-filter-btn{display:flex;align-items:center;gap:5px;height:36px;padding:0 12px;border:1px solid #e5e7eb00;border-radius:20px;background:#f9fafb;font-size:13px;color:#374151;cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s,box-shadow .15s}.creator-filter-btn:hover{border-color:#c4b5fd;background:#fff}.creator-filter-btn.active{color:#5550e9}.creator-filter-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:160px;max-height:260px;overflow-y:auto;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 4px 16px #0000001a;z-index:200;padding:6px 0}.creator-filter-clear{display:block;width:calc(100% - 16px);margin:0 8px 4px;padding:5px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb;font-size:12px;color:#4f545e;cursor:pointer;text-align:center;transition:background .12s}.creator-filter-clear:hover{background:#f3f4f6;color:#374151}.creator-filter-item{display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:13px;color:#374151;cursor:pointer;transition:background .1s}.creator-filter-item:hover{background:#f5f3ff}.creator-filter-item input[type=checkbox]{width:14px;height:14px;accent-color:#5550E9;cursor:pointer;flex-shrink:0}.project-search-icon{position:absolute;left:10px;color:#9ca3af;pointer-events:none}.project-search-input{width:260px;height:36px;padding:0 12px 0 32px;border:1px solid #e5e7eb;border-radius:20px;background:#f9fafb;font-size:13px;color:#111827;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.project-search-input::placeholder{color:#9ca3af}.project-search-input:focus{border-color:#5550e9;background:#fff;box-shadow:0 0 0 3px #5550e91f}.project-view-toggle{display:flex;gap:4px;background:#f3f4f6;border-radius:8px;padding:3px}.view-toggle-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:#9ca3af;cursor:pointer;transition:all .15s}.view-toggle-btn:hover:not(.active){color:#4b5563;background:#e5e7eb}.view-toggle-btn.active{background:#fff;color:#5550e9;box-shadow:0 1px 4px #0000001f}.project-table-wrap{margin-top:16px;background:#fff;border:1px solid #e5e7eb;border-radius:12px}.project-table{width:100%;border-collapse:collapse;font-size:14px}.project-table thead tr{background:#f9fafb}.project-table th{padding:11px 16px;text-align:left;font-size:12px;font-weight:600;color:#4f545e;letter-spacing:.04em;border-bottom:1px solid #e5e7eb;white-space:nowrap}.project-table tbody tr{border-bottom:1px solid #f3f4f6}.project-table tbody tr:last-child{border-bottom:none}.project-table-row{cursor:pointer;transition:background .12s}.project-table-row:hover{background:#f5f3ff}.project-table td{padding:12px 16px;vertical-align:middle}.table-cell-muted{color:#9ca3af;font-size:13px;white-space:nowrap}.xmtm-jz{text-align:center!important;vertical-align:middle!important}.table-cell-num{color:#374151;font-weight:500;text-align:center}.table-row-creator{display:block;font-size:12px;color:#9ca3af;margin-top:2px}.list-row-name{font-size:15px;color:#606266}.project-category-badge{font-size:12px;padding:2px 9px;border-radius:20px;font-weight:500}.project-category-badge.practice{background:#f3f4f6;color:#4f545e}.project-category-badge.test{background:#eff6ff;color:#2563eb}.project-category-badge.trial{background:#fffbeb;color:#d97706}.project-category-badge.formal{background:#ecfdf5;color:#059669}.project-status-badge{font-size:12px;padding:2px 9px;border-radius:20px;font-weight:500;margin-left:8px}.project-status-badge.closed{background:#f3f4f6;color:#9ca3af}.project-closed-banner{background:#fffbeb;color:#b45309;border:1px solid #fde68a;border-radius:8px;padding:10px 16px;font-size:14px;margin-bottom:16px}.list-row-actions{display:flex;gap:8px}.list-row-actions .btn{padding:6px 14px;font-size:13px;border-radius:8px;display:none}.project-layout{display:flex;min-height:100vh;background:#f5f7fa}.project-sidebar{width:220px;flex-shrink:0;background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;padding:16px 12px;gap:4px}.project-sidebar-back{display:flex;align-items:center;gap:8px;padding:10px 12px;margin-bottom:8px;border:none;background:none;color:#4f545e;font-size:14px;cursor:pointer;border-radius:8px;text-align:left}.project-sidebar-back:hover{background:#f3f4f6;color:#1f2937}.project-sidebar-title{font-size:15px;font-weight:600;color:#1f2937;padding:0 12px 12px;border-bottom:1px solid #f3f4f6;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-menu-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border:none;background:none;color:#4b5563;font-size:14px;cursor:pointer;border-radius:8px;text-align:left;width:100%;transition:background .15s,color .15s}.project-menu-item:hover{background:#f3f4f6;color:#1f2937}.project-menu-item.active{background:#eef2ff;color:#4f46e5;font-weight:600}.project-menu-item svg{flex-shrink:0}.project-content{flex:1;min-width:0;display:flex;flex-direction:column}.project-breadcrumb{display:flex;align-items:center;gap:8px;padding:16px 28px;font-size:14px;color:#4f545e;background:#fff;border-bottom:1px solid #e5e7eb}.project-breadcrumb .crumb-link{color:#4f545e;cursor:pointer}.project-breadcrumb .crumb-link:hover{color:#4f46e5}.project-breadcrumb .crumb-current{color:#1f2937;font-weight:500}.project-page-body{flex:1;padding:24px 28px;overflow-y:auto;display:flex;flex-direction:column}.project-page-body .modal-content{width:450px}.placeholder-page{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 0;color:#9ca3af;gap:16px}.placeholder-page .placeholder-icon{font-size:48px}.placeholder-page h2{font-size:18px;color:#4f545e;margin:0}.placeholder-page p{font-size:14px;margin:0}.ps-page{max-width:1200px;margin:0 auto;padding:8px 0 40px}.ps-tabs{display:flex;align-items:center;gap:4px;padding-bottom:16px;border-bottom:1px solid #edf0f3;margin-bottom:24px}.ps-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:7px;border:1px solid transparent;background:transparent;color:#4f545e;font-size:14px;font-weight:500;cursor:pointer;transition:all .12s}.ps-tab:hover:not(.active){color:#374151;background:#f3f4f6}.ps-tab.active{color:#3730a3;background:#eef2ff;border-color:#c7d2fe;font-weight:600}.ps-tab-hint{margin-left:auto;font-size:11px;color:#b0b8c4;display:flex;align-items:center;gap:3px}.ps-tab-hint kbd{display:inline-block;padding:1px 5px;border:1px solid #e5e7eb;border-radius:3px;background:#f9fafb;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:10px;color:#4f545e}.ps-card{background:#fff;border:1px solid #e8ebef;border-radius:10px;padding:24px 28px}.ps-card-head{display:flex;align-items:baseline;gap:10px;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid #f0f2f5}.ps-card-head h2{font-size:15px;font-weight:600;color:#111827;margin:0}.ps-card-desc{font-size:12px;color:#9ca3af}.ps-section-desc{font-size:13px;color:#4f545e;margin:0 0 16px;line-height:1.5}.ps-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}.ps-field{display:flex;flex-direction:column;gap:6px}.ps-field-full{grid-column:1 / -1}.ps-field label{font-size:12px;font-weight:600;color:#374151}.ps-req{color:#ef4444}.ps-field input,.ps-field textarea,.ps-field select{width:100%;padding:9px 12px;border:1px solid #e5e7eb;border-radius:7px;font-size:13px;color:#111827;background:#fff;box-sizing:border-box;transition:border-color .12s,box-shadow .12s;font-family:inherit;resize:vertical}.ps-field input:disabled{background:#f5f6f8;color:#9ca3af;cursor:not-allowed}.ps-field input::placeholder,.ps-field textarea::placeholder{color:#c0c4cc}.ps-field input:focus,.ps-field textarea:focus,.ps-field select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f114}.ps-hint{font-size:11px;color:#b0b8c4;margin-top:2px}.ps-foot{display:flex;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid #f0f2f5}.ps-save-btn{padding:9px 22px;border-radius:7px;border:none;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 1px 4px #3e8e5a33;transition:all .15s}.ps-save-btn:hover:not(:disabled){box-shadow:0 3px 10px #3e8e5a4d;transform:translateY(-1px)}.ps-save-btn:disabled{opacity:.5;cursor:not-allowed}.ps-label-item{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:14px;border:1px solid #ebeef5;border-radius:8px;background:#fafbfc}.ps-label-row{display:flex;gap:8px;align-items:center}.ps-label-handle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin-left:-4px;color:#c4c9d4;cursor:grab;transition:color .12s}.ps-label-item:hover .ps-label-handle{color:#9ca3af}.ps-label-handle:active{cursor:grabbing}.ps-label-item.dragging{opacity:.45}.ps-label-item.drag-over{border-color:#6366f1;background:#eef2ff}.ps-label-row input[type=text]{flex:1;padding:8px 12px;border:1px solid #dcdfe6;border-radius:6px;outline:none;font-size:13px;transition:border-color .12s}.ps-label-row input[type=text]:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f10f}.ps-label-row select{width:110px;padding:8px 10px;border:1px solid #dcdfe6;border-radius:6px;outline:none;font-size:13px}.ps-remove-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:#f4f4f5;border:1px solid #dcdfe6;border-radius:6px;cursor:pointer;color:#909399;font-size:16px;transition:all .12s}.ps-remove-btn:hover{color:#dc2626;border-color:#fca5a5;background:#fef2f2}.ps-option-list{display:flex;flex-direction:column;gap:8px;padding-left:18px}.ps-option-row{display:flex;align-items:center;gap:8px}.ps-option-dot{flex-shrink:0;width:12px;height:12px;border-radius:3px}.ps-option-row input[type=text]{flex:1;max-width:320px;padding:7px 10px;border:1px solid #dcdfe6;border-radius:5px;outline:none;font-size:13px;transition:border-color .12s}.ps-option-row input[type=text]:focus{border-color:#6366f1}.ps-option-delete{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:5px;cursor:pointer;color:#909399;transition:all .12s}.ps-option-delete:hover{color:#dc2626;background:#fef2f2}.ps-add-option{align-self:flex-start;margin-top:2px;padding:5px 10px;background:#fff;border:1px dashed #dcdfe6;border-radius:5px;cursor:pointer;color:#606266;font-size:12px;transition:all .12s}.ps-add-option:hover{color:#6366f1;border-color:#c7d2fe}.ps-add-label{margin-top:4px;padding:10px 16px;background:#fff;border:1px dashed #dcdfe6;border-radius:7px;cursor:pointer;color:#606266;width:100%;font-size:13px;transition:all .12s}.ps-add-label:hover{color:#6366f1;border-color:#c7d2fe}.ps-tool-attrs{margin-top:10px;padding-left:14px;border-left:3px solid}.ps-tool-item{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;padding:14px;border:1px solid #ebeef5;border-radius:8px;background:#fafbfc}.ps-sub-title{font-size:13px;font-weight:600;color:#374151;margin:18px 0 10px}.ps-empty{text-align:center;padding:24px;color:#9ca3af;font-size:13px}.ps-empty-sm{text-align:center;padding:12px;color:#9ca3af;font-size:12px}.ps-split{display:flex;gap:20px;align-items:flex-start;min-height:420px}.ps-sidebar{flex:0 0 210px;border:1px solid #ebeef5;border-radius:8px;background:#fafbfc;overflow:hidden}.ps-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:600;color:#374151}.ps-badge{background:#eef2ff;color:#3730a3;font-size:11px;font-weight:700;padding:1px 7px;border-radius:10px;min-width:18px;text-align:center}.ps-tool-list{padding:6px;display:flex;flex-direction:column;gap:2px}.ps-tool-row{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:6px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:13px;color:#4b5563;transition:all .12s;width:100%;text-align:left}.ps-tool-row:hover:not(.active){background:#f0f2f5}.ps-tool-row.active{background:#eef2ff;border-color:#c7d2fe;color:#3730a3;font-weight:500}.ps-tool-icon{flex-shrink:0;display:inline-block}.ps-tool-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-tool-row.active .ps-tool-icon{opacity:1}.ps-tool-copy{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:5px;background:transparent;color:#9ca3af;cursor:pointer;opacity:0;transition:all .12s}.ps-tool-row:hover .ps-tool-copy,.ps-tool-row.active .ps-tool-copy{opacity:1}.ps-tool-copy:hover{background:#e0e7ff;color:#4f46e5}.ps-tool-handle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin-left:-3px;color:#c4c9d4;cursor:grab;transition:color .12s}.ps-tool-row:hover .ps-tool-handle{color:#9ca3af}.ps-tool-handle:active{cursor:grabbing}.ps-tool-row.dragging{opacity:.45}.ps-tool-row.drag-over{border-color:#6366f1;background:#eef2ff}.ps-sidebar-add{display:flex;align-items:center;justify-content:center;gap:5px;margin:6px;padding:7px 10px;border:1px dashed #b8dcc5;border-radius:6px;background:transparent;color:#6366f1;font-size:12px;font-weight:500;cursor:pointer;transition:all .12s}.ps-sidebar-add:hover{background:#f0f9f3;border-style:solid}.ps-detail{flex:1;min-width:0;border:1px solid #ebeef5;border-radius:8px;background:#fff;padding:20px 22px}.ps-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:80px 0;color:#9ca3af;font-size:13px}.ps-detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.ps-detail-head h3{font-size:15px;font-weight:600;color:#111827;margin:0}.ps-delete-tool{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:1px solid #fca5a5;border-radius:6px;background:#fff;color:#b91c1c;font-size:12px;cursor:pointer;transition:all .12s}.ps-delete-tool:hover{background:#fef2f2;border-color:#f87171}.ps-form-section{margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid #f0f2f5}.ps-form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.ps-form-section-head{display:flex;align-items:center;gap:8px;margin-bottom:14px}.ps-form-section h4{font-size:13px;font-weight:600;color:#374151;margin:0 0 14px}.ps-form-section-head h4{margin:0}.ps-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.ps-form-grid .ps-field label{font-size:11px;font-weight:600;color:#4f545e;text-transform:uppercase;letter-spacing:.03em}.ps-form-grid input,.ps-form-grid select{padding:8px 11px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;color:#111827;background:#fff;transition:border-color .12s,box-shadow .12s;box-sizing:border-box;width:100%}.ps-form-grid input:focus,.ps-form-grid select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #3e8e5a14}.ps-color-row{display:flex;align-items:center;gap:10px}.ps-attr-count{font-size:11px;font-weight:700;color:#9ca3af;background:#f3f4f6;padding:1px 6px;border-radius:8px}.ps-attr-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.ps-tab-badge{background:#eef2ff;color:#6366f1;font-size:10px;font-weight:700;padding:0 6px;border-radius:8px;min-width:16px;text-align:center;line-height:16px}.ps-creator-row{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:7px;color:#6366f1;font-size:13px;font-weight:500;margin-bottom:16px}.ps-manager-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.ps-manager-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #ebeef5;border-radius:8px;background:#fafbfc;cursor:pointer;transition:all .12s}.ps-manager-row:hover{background:#f5f7fa;border-color:#d1d5db}.ps-manager-row.selected{background:#eef2ff;border-color:#c7d2fe}.ps-manager-row input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1;cursor:pointer;flex-shrink:0}.ps-manager-avatar{width:32px;height:32px;border-radius:50%;background:#e5e7eb;color:#4b5563;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.ps-manager-row.selected .ps-manager-avatar{background:#e9eaec;color:#6366f1}.ps-manager-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ps-manager-name{font-size:13px;font-weight:500;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-manager-username{font-size:11px;color:#9ca3af}.ps-manager-role{font-size:11px;font-weight:500;padding:2px 8px;border-radius:4px;flex-shrink:0}.ps-manager-role.super-admin{background:#fef3c7;color:#92400e}.ps-manager-role.admin{background:#e0e7ff;color:#3730a3}@media (max-width: 700px){.ps-split{flex-direction:column}.ps-sidebar{flex:none;width:100%}.ps-form-grid{grid-template-columns:1fr}}@media (max-width: 600px){.ps-form{grid-template-columns:1fr}.ps-page{padding:8px 0 24px}.ps-card{padding:18px}}.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:15px}.task-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:10px}.task-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-card-title{font-size:16px;font-weight:600;color:#1f2937;margin:10px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.5;min-height:3em}.task-project-tag{flex-shrink:0;font-size:12px;padding:2px 10px;border-radius:10px;background:#f3f4f6;color:#4f545e}.task-card-info{display:flex;justify-content:space-between;font-size:13px;color:#4f545e;margin:5px 0}.task-progress-track{height:6px;background:#f3f4f6;border-radius:3px;overflow:hidden}.task-progress-bar{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);border-radius:3px;transition:width .3s}.task-card-users{font-size:12px;color:#9ca3af;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-card-actions{display:flex;gap:8px}.task-card-actions .btn,.task-card-actions .cssbuttons-io-button{flex:1}.task-card-actions .btn{border-radius:.8em}.cssbuttons-io-button{background:#46a76a;color:#fff;font-family:inherit;padding:.35em 1.2em;font-size:14px;font-weight:500;border-radius:.8em;border:none;letter-spacing:.05em;display:flex;align-items:center;box-shadow:inset 0 0 1.6em -.6em #46a76a;overflow:hidden;position:relative;height:2.8em;cursor:pointer;white-space:nowrap}.cssbuttons-io-button .icon{background:#fff;margin-left:1em;position:absolute;top:4px;display:flex;align-items:center;justify-content:center;height:2.2em;width:2.2em;border-radius:.6em;box-shadow:.1em .1em .6em .2em #46a76a;right:.3em;transition:all .3s}.cssbuttons-io-button:hover .icon{width:calc(100% - .6em)}.cssbuttons-io-button .icon svg{width:1.1em;transition:transform .3s;color:#46a76a}.cssbuttons-io-button:hover .icon svg{transform:translate(.1em)}.cssbuttons-io-button:active .icon{transform:scale(.95)}.task-empty{text-align:center;padding:80px 0;color:#9ca3af;font-size:15px}.my-tasks-page{min-height:100vh;padding:24px 32px}.perf-page{display:flex;flex-direction:column;gap:20px;padding-bottom:32px}.perf-header{display:flex;align-items:baseline;gap:12px}.perf-header h1{margin:0;font-size:20px;font-weight:700;color:#111827}.perf-subtitle{font-size:13px;color:#9ca3af}.perf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.perf-stat{background:#fff;border:1px solid #e8ebef;border-radius:10px;padding:16px 20px;display:flex;flex-direction:column;gap:4px}.perf-stat-value{font-size:22px;font-weight:700;color:#111827;font-family:SF Mono,Fira Code,Consolas,monospace;line-height:1.2}.perf-stat-label{font-size:12px;color:#4f545e;font-weight:500}.perf-card{background:#fff;border:1px solid #e8ebef;border-radius:10px;padding:20px 24px}.perf-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f0f2f5}.perf-card-head h2{font-size:15px;font-weight:600;color:#111827;margin:0}.perf-card-head-actions{display:flex;align-items:center;gap:10px}.perf-filter{display:flex;gap:10px;margin-bottom:16px;align-items:center;flex-wrap:wrap}.perf-select{padding:7px 12px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;color:#374151;background:#fff;cursor:pointer;outline:none;transition:border-color .12s;min-width:130px}.perf-select:hover{border-color:#9ca3af}.perf-select:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f114}.perf-select-sm{min-width:160px;padding:6px 10px;font-size:12px}.perf-date-group{display:flex;align-items:center;gap:6px}.perf-date{padding:7px 10px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;color:#374151;background:#fff;outline:none;transition:border-color .12s;font-family:SF Mono,Fira Code,Consolas,monospace}.perf-date:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f114}.perf-date-sep{font-size:12px;color:#9ca3af}.perf-btn-ghost{padding:7px 14px;border:1px solid #d1d5db;border-radius:7px;background:#fff;color:#4f545e;font-size:13px;cursor:pointer;transition:all .12s}.perf-btn-ghost:hover{border-color:#9ca3af;color:#374151}.perf-btn-export{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border:none;border-radius:7px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 1px 4px #6366f133;transition:all .15s;margin-left:auto}.perf-btn-export:hover{box-shadow:0 3px 10px #3e8e5a4d;transform:translateY(-1px)}.performance-empty{text-align:center;color:#9ca3af;padding:48px 0!important;font-size:13px}.performance-total-row td{background:#eef2ff!important;font-weight:600;color:#1f2937;border-top:2px solid #c7d2fe!important}@media (max-width: 700px){.perf-stats{grid-template-columns:repeat(2,1fr)}.perf-filter{flex-direction:column;align-items:stretch}.perf-select{min-width:100%}.perf-date-group{flex-wrap:wrap}.perf-btn-export{margin-left:0}}.settings-color-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:30px;height:30px;padding:0;border:none;border-radius:20%;background:none;cursor:pointer;flex-shrink:0}.settings-color-input::-webkit-color-swatch-wrapper{padding:0}.settings-color-input::-webkit-color-swatch{border:2px solid #fff;border-radius:20%;box-shadow:0 0 0 1px #0000001f,0 1px 3px #00000026}.settings-color-input::-moz-color-swatch{border:2px solid #fff;border-radius:20%}.create-project-modal{max-width:720px;width:92%}.create-project-modal .type-category-tabs{display:flex;gap:24px;border-bottom:1px solid #e5e7eb;margin-bottom:14px}.create-project-modal .type-category-tab{background:none;border:none;padding:8px 2px 10px;font-size:14px;color:#4b5563;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.create-project-modal .type-category-tab:hover{color:#5550e9}.create-project-modal .type-category-tab.active{color:#5550e9;font-weight:600;border-bottom-color:#5550e9}.create-project-modal .type-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.create-project-modal .type-card{border:1px solid #e5e7eb;border-radius:8px;padding:14px 16px;cursor:pointer;background:#fff;transition:border-color .15s,box-shadow .15s}.create-project-modal .type-card:hover{border-color:#a5a3f3}.create-project-modal .type-card.selected{border-color:#5550e9;box-shadow:0 0 0 2px #5550e91f}.create-project-modal .type-card-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#1f2937;margin-bottom:6px}.create-project-modal .type-card-icon{display:inline-flex;color:#5550e9}.create-project-modal .type-card-desc{font-size:13px;color:#4f545e;line-height:1.6}.export-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid #e5e7eb}.export-tab{padding:8px 24px;font-size:14px;font-weight:600;color:#4f545e;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all .15s ease;margin-bottom:-2px}.export-tab:hover{color:#374151}.export-tab.active{color:#4f46e5;border-bottom-color:#4f46e5}.export-config-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px 24px;margin-bottom:20px;box-shadow:0 1px 3px #0000000a}.export-config-row{display:flex;align-items:flex-start;gap:32px;flex-wrap:wrap}.export-config-field{display:flex;flex-direction:column;gap:8px;flex:1;min-width:180px}.export-config-scope{min-width:200px;flex:.5}.export-config-label{font-size:11px;font-weight:600;color:#4f545e;text-transform:uppercase;letter-spacing:.04em}.export-format-pills{display:flex;flex-direction:column;gap:6px}.export-format-pill{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1.5px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left}.export-format-pill:hover{border-color:#c7d2fe;background:#fafbff}.export-format-pill.active{border-color:#6366f1;background:#eef2ff;color:#312e81}.export-format-desc{font-size:11px;color:#9ca3af;font-weight:400}.export-format-pill.active .export-format-desc{color:#6366f1}.export-scope-group{display:flex;border:1.5px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#f9fafb}.export-scope-pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.export-scope-pill{padding:5px 12px;font-size:12px;font-weight:500;color:#4f545e;background:#f3f4f6;border:1.5px solid #e5e7eb;border-radius:16px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.export-scope-pill:hover:not(.active){background:#e5e7eb;color:#374151}.export-scope-pill.active{background:#eef2ff;color:#4f46e5;border-color:#c7d2fe}.export-scope-sep{display:inline-block;width:1px;height:20px;background:#d1d5db;margin:0 4px;vertical-align:middle}.export-scope-divider{display:inline-flex;align-items:center}.export-scope-hint{font-size:11px;color:#9ca3af;font-weight:400}.export-scope-btn{flex:1;padding:8px 12px;font-size:13px;font-weight:500;color:#4f545e;background:transparent;border:none;cursor:pointer;transition:all .15s ease;border-right:1.5px solid #e5e7eb}.export-scope-btn:last-child{border-right:none}.export-scope-btn:hover:not(.active){background:#f3f4f6;color:#374151}.export-scope-btn.active{background:#6366f1;color:#fff}.export-config-action{display:flex;flex-direction:column;align-items:flex-end;gap:6px;align-self:flex-end}.export-main-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 22px;border-radius:10px;border:none;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #6366f147;transition:all .2s ease;white-space:nowrap}.export-main-btn:hover:not(:disabled){box-shadow:0 4px 14px #6366f161;transform:translateY(-1px)}.export-main-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.export-hint{font-size:12px;color:#9ca3af}.export-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:60px 0;color:#9ca3af}.export-empty p{font-size:14px}.export-batch-list{display:flex;flex-direction:column;gap:4px;max-height:650px;overflow:hidden}.export-list-header{display:flex;align-items:center;padding:0 4px 10px;border-bottom:1px solid #f0f0f0;margin-bottom:4px}.export-select-all{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#4f545e;-webkit-user-select:none;user-select:none}.export-select-all input[type=checkbox]{width:15px;height:15px;accent-color:#6366f1;cursor:pointer}.export-batch-card{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#fff;border:1.5px solid #f0f0f0;border-radius:10px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.export-batch-card:hover{border-color:#d1d5db;background:#fafafa}.export-batch-card.selected{border-color:#6366f1;background:#eef2ff;box-shadow:0 1px 4px #3e8e5a1a}.export-batch-check{flex-shrink:0}.export-batch-check input[type=checkbox]{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}.export-batch-info{flex:1;min-width:0}.export-batch-name{font-size:14px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-batch-desc{font-size:12px;color:#9ca3af;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-batch-stats{display:flex;gap:24px;flex-shrink:0}.export-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.export-stat-num{font-size:16px;font-weight:700;color:#374151;font-variant-numeric:tabular-nums}.export-stat-approved{color:#059669}.export-stat-label{font-size:11px;color:#9ca3af;letter-spacing:.02em}.export-batch-time{flex-shrink:0;font-size:12px;color:#b0b8c4;min-width:80px;text-align:right}.ps-staffing-split{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;align-items:stretch}.ps-staff-col{display:flex;flex-direction:column;min-width:0;border:1px solid #ebeef5;border-radius:8px;background:#fafbfc;overflow:hidden}.ps-staff-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #ebeef5;background:#fff}.ps-staff-title{font-size:13px;font-weight:600;color:#374151}.ps-staff-link{margin-left:auto;padding:0;border:none;background:transparent;color:#6366f1;font-size:12px;cursor:pointer;transition:color .12s}.ps-staff-link:hover{color:#4f46e5;text-decoration:underline}.ps-staff-link:disabled{color:#c0c4cc;cursor:not-allowed;text-decoration:none}.ps-staff-search{padding:8px 10px;border-bottom:1px solid #ebeef5;background:#fff}.ps-staff-search input{width:100%;padding:6px 10px;border:1px solid #dcdfe6;border-radius:6px;font-size:12px;outline:none;transition:border-color .12s;box-sizing:border-box}.ps-staff-search input:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f114}.ps-staff-list{flex:1;overflow-y:auto;max-height:460px;min-height:280px;padding:8px;display:flex;flex-direction:column;gap:4px}.ps-staff-batch{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:all .12s}.ps-staff-batch:hover{background:#f0f2f5}.ps-staff-batch.selected{background:#eef2ff;border-color:#c7d2fe}.ps-staff-batch-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ps-staff-batch-name{font-size:13px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-staff-batch-meta{font-size:11px;color:#9ca3af}.ps-staff-new-badge{flex-shrink:0;font-size:11px;font-weight:600;color:#059669;background:#d1fae5;padding:1px 7px;border-radius:10px}.ps-staff-check{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid #d1d5db;background:#fff;display:inline-flex;align-items:center;justify-content:center;transition:all .12s}.ps-staff-check.on{background:#6366f1;border-color:#6366f1}.ps-staff-role-tabs{display:flex;align-items:center;gap:4px;padding:6px 8px 0;border-bottom:1px solid #ebeef5;background:#fff}.ps-staff-role-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:none;background:transparent;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:13px;font-weight:500;color:#4f545e;cursor:pointer;transition:all .12s}.ps-staff-role-tab:hover{color:#4f46e5}.ps-staff-role-tab.active{color:#4f46e5;font-weight:600;border-bottom-color:#6366f1}.ps-staff-role-count{font-size:11px;font-weight:700;color:#3730a3;background:#eef2ff;padding:0 6px;border-radius:9px;line-height:16px}.ps-staff-role-tabs .ps-staff-link{margin-left:auto;padding-bottom:7px}.ps-staff-user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.ps-staff-user{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:6px;border:1px solid #ebeef5;background:#fff;cursor:pointer;transition:all .12s}.ps-staff-user:hover{border-color:#c7d2fe}.ps-staff-user.selected{background:#eef2ff;border-color:#6366f1}.ps-staff-avatar{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#a5b4fc,#6366f1);color:#fff;font-size:13px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.ps-staff-user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}.ps-staff-user-name{font-size:12.5px;font-weight:500;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-staff-user-username{font-size:11px;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ps-staff-summary{margin-right:auto;align-self:center;font-size:12px;color:#4f545e}@media (max-width: 900px){.ps-staffing-split{grid-template-columns:1fr}}.project-doc-page{padding:20px 4px;max-width:720px}.project-doc-header h2{margin:0 0 6px;font-size:18px;font-weight:600;color:#111827}.project-doc-header p{margin:0 0 18px;font-size:13px;color:#4f545e;line-height:1.6}.doc-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000d}.doc-field{display:block;margin-bottom:16px}.doc-field-label{display:block;margin-bottom:8px;font-size:13px;color:#374151}.doc-input{width:100%;height:40px;padding:0 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb;font-size:13px;color:#111827;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.doc-input:focus{border-color:#5550e9;background:#fff;box-shadow:0 0 0 3px #5550e91f}.doc-actions{display:flex;gap:10px}.doc-save-btn{background:#5550e9;color:#fff;border:none}.doc-save-btn:hover:not(:disabled){background:#4440d0}.doc-save-btn:disabled{opacity:.6;cursor:not-allowed}.doc-open-btn{display:inline-flex;align-items:center;background:#fff;color:#5550e9;border:1px solid #5550E9;text-decoration:none}.doc-open-btn:hover{background:#f0efff}.doc-entry{display:flex;flex-direction:column;align-items:center;gap:8px;padding:36px 24px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;color:#5550e9;text-decoration:none;text-align:center;transition:box-shadow .15s,transform .15s,border-color .15s}.doc-entry:hover{border-color:#5550e9;box-shadow:0 6px 18px #5550e926;transform:translateY(-1px)}.doc-entry-title{font-size:15px;font-weight:600;color:#111827}.doc-entry-url{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#4f545e}.doc-entry-hint{font-size:12px;color:#5550e9}.doc-empty{padding:48px 0;text-align:center;font-size:13px;color:#9ca3af;background:#fff;border:1px dashed #e5e7eb;border-radius:12px}.ps-ls-actions{display:flex;gap:8px;margin-bottom:14px}.ps-ls-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid #e0e7ff;background:#eef2ff;color:#4f46e5;font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .15s}.ps-ls-btn:hover{background:#e0e7ff;border-color:#c7d2fe}.psls-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:psls-fadeIn .15s ease}@keyframes psls-fadeIn{0%{opacity:0}to{opacity:1}}.psls-modal{background:#fff;border-radius:14px;width:92%;max-width:560px;max-height:76vh;display:flex;flex-direction:column;box-shadow:0 24px 48px -12px #0000002e;animation:psls-slideUp .2s ease}@keyframes psls-slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.psls-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;border-bottom:1px solid #f0f2f5}.psls-header h2{margin:0;font-size:16px;font-weight:700;color:#111827}.psls-close{width:30px;height:30px;border:none;background:transparent;border-radius:8px;color:#9ca3af;font-size:18px;cursor:pointer;transition:all .15s}.psls-close:hover{background:#f3f4f6;color:#374151}.psls-note{padding:8px 24px;font-size:12px;color:#4f46e5;background:#eef2ff;border-bottom:1px solid #e0e7ff;line-height:1.5}.psls-body{flex:1;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column;gap:12px}.psls-empty{padding:40px 20px;text-align:center;font-size:13px;color:#9ca3af;line-height:1.6}.psls-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:10px;transition:border-color .15s,box-shadow .15s}.psls-item:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.psls-item-main{flex:1;min-width:0}.psls-item-name{font-size:14px;font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.psls-item-desc{margin-top:2px;font-size:12px;color:#4f545e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.psls-item-meta{margin-top:4px;font-size:11px;color:#9ca3af}.psls-import-btn{flex-shrink:0;padding:6px 16px;border:none;background:#5550e9;color:#fff;font-size:13px;font-weight:600;border-radius:7px;cursor:pointer;transition:background .15s}.psls-import-btn:hover{background:#4641d6}.psls-import-btn:disabled{opacity:.6;cursor:not-allowed}.psls-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.psls-type-item{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;color:#374151;cursor:pointer;transition:all .12s}.psls-type-item:hover{border-color:#c7d2fe}.psls-type-item input{accent-color:#5550E9;width:13px}.psls-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px 18px;border-top:1px solid #f0f2f5}.psls-cancel{padding:8px 18px;border:1px solid #e5e7eb;background:#fff;color:#4f545e;font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .15s}.psls-cancel:hover{background:#f9fafb;color:#374151}.psls-confirm{padding:8px 18px;border:none;background:#5550e9;color:#fff;font-size:13px;font-weight:600;border-radius:8px;cursor:pointer;transition:background .15s}.psls-confirm:hover{background:#4641d6}.psls-confirm:disabled{opacity:.6;cursor:not-allowed}.ps-page .ps-import-confirm{width:420px}.ps-page .ps-import-confirm .modal-body{padding:22px 24px 8px}.ps-page .ddm-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.ps-page .ddm-warn{display:flex;width:26px;height:26px;border-radius:50%;background:#f59e0b;color:#fff;font-size:15px;font-weight:700;align-items:center;justify-content:center;flex-shrink:0}.ps-page .ddm-head h3{margin:0;font-size:16px;font-weight:700;color:#161b22}.ps-page .ddm-text{margin:0 0 8px;color:#374151;font-size:13px;line-height:1.7}.ps-page .ddm-text b{color:#111827}.ps-page .ddm-sub{margin:0 0 14px;color:#98a1b0;font-size:12px;line-height:1.7}.project-list-page .pl-batch-bar{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:8px 14px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px}.project-list-page .pl-batch-bar-info{margin-right:4px;font-size:13px;color:#374151}.project-list-page .pl-batch-bar-info b{color:#5550e9}.project-list-page .pl-batch-btn{padding:5px 12px;font-size:13px;border:1px solid #c7d2fe;border-radius:6px;background:#fff;color:#5550e9;cursor:pointer;transition:background .15s}.project-list-page .pl-batch-btn:hover:not(:disabled){background:#e0e7ff}.project-list-page .pl-batch-btn.danger{border-color:#fecaca;color:#dc2626}.project-list-page .pl-batch-btn.danger:hover:not(:disabled){background:#fee2e2}.project-list-page .pl-batch-btn:disabled{opacity:.6;cursor:not-allowed}.project-list-page .pl-batch-bar-clear{margin-left:auto;padding:5px 10px;font-size:13px;color:#4f545e;background:transparent;border:none;cursor:pointer}.project-list-page .pl-batch-bar-clear:hover{color:#374151}.project-list-page .pl-th-check{width:36px}.project-list-page .pl-th-check,.project-list-page .pl-td-check{text-align:center}.project-list-page .pl-th-check input,.project-list-page .pl-td-check input{width:15px;height:15px;cursor:pointer;accent-color:#5550E9}.project-list-page .pl-th-filter{position:relative}.project-list-page .pl-hf-btn{display:inline-flex;align-items:center;gap:3px;padding:0;background:none;border:none;font-size:12px;font-weight:600;letter-spacing:.04em;color:#4f545e;cursor:pointer}.project-list-page .pl-hf-btn:hover{color:#374151}.project-list-page .pl-hf-btn.active{color:#5550e9}.project-list-page .pl-hf-drop{position:absolute;top:calc(100% - 2px);left:8px;z-index:30;min-width:148px;max-height:264px;overflow-y:auto;padding:6px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 6px 18px #0000001f;text-align:left;font-weight:400;letter-spacing:normal}.project-list-page .pl-hf-empty{padding:8px;font-size:12px;color:#9ca3af}.project-list-page .pl-hf-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#374151;cursor:pointer}.project-list-page .pl-hf-item:hover{background:#f3f4f6}.project-list-page .pl-hf-item input{width:14px;height:14px;cursor:pointer;accent-color:#5550E9}.project-list-page .pl-hf-opt{display:flex;align-items:center;width:100%;padding:6px 8px;border:none;border-radius:6px;background:none;font-size:13px;color:#374151;text-align:left;cursor:pointer}.project-list-page .pl-hf-opt:hover{background:#f3f4f6}.project-list-page .pl-hf-opt.active{color:#5550e9;font-weight:600;background:#eef2ff}.project-list-page .pl-hf-foot{margin-top:4px;padding:6px 8px 2px;border-top:1px solid #f0f0f0}.project-list-page .pl-hf-clear{padding:0;background:none;border:none;font-size:12px;color:#dc2626;cursor:pointer}.project-list-page .pl-hf-clear:hover{color:#b91c1c}.project-list-page .pl-empty-row td{padding:36px 16px;text-align:center;font-size:13px;color:#9ca3af}.pcp-members-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.pcp-members-search{width:240px;height:34px;padding:0 12px;border:1px solid #dcdfe6;border-radius:6px;font-size:13px;color:#374151;outline:none;transition:border-color .15s}.pcp-members-search:focus{border-color:#6366f1;box-shadow:0 0 0 2px #6366f114}.pcp-role-filter{display:flex;gap:6px}.pcp-role-btn{padding:6px 14px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#4f545e;font-size:13px;cursor:pointer;transition:all .12s}.pcp-role-btn:hover{border-color:#6366f1;color:#4f46e5}.pcp-role-btn.active{background:#eef2ff;border-color:#c7d2fe;color:#4f46e5;font-weight:600}.pcp-members-table{border:1px solid #ebeef5;border-radius:8px;overflow:hidden}.pcp-members-thead{display:grid;grid-template-columns:1fr 1fr 80px 120px;padding:10px 16px;background:#f9fafb;font-size:12px;font-weight:600;color:#6b7280;border-bottom:1px solid #ebeef5}.pcp-members-row{display:grid;grid-template-columns:1fr 1fr 80px 120px;padding:10px 16px;align-items:center;border-bottom:1px solid #f3f4f6;font-size:13px;transition:background .12s}.pcp-members-row:last-child{border-bottom:none}.pcp-members-row:hover{background:#f9fafb}.pcp-member-name{display:flex;align-items:center;gap:8px;color:#1f2937;font-weight:500}.pcp-member-username{color:#9ca3af;font-size:12px}.pcp-member-ops{display:flex;align-items:center;gap:6px}.pcp-remove-btn{padding:3px 10px;border:1px solid #f87171;border-radius:5px;background:transparent;color:#ef4444;font-size:12px;cursor:pointer;transition:all .12s;white-space:nowrap}.pcp-remove-btn:hover{background:#fef2f2;border-color:#ef4444}.pcp-remove-confirm{padding:3px 8px;border:none;border-radius:5px;background:#ef4444;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s;white-space:nowrap}.pcp-remove-confirm:hover{background:#dc2626}.pcp-remove-cancel{padding:3px 8px;border:1px solid #e5e7eb;border-radius:5px;background:transparent;color:#6b7280;font-size:12px;cursor:pointer;transition:all .12s;white-space:nowrap}.pcp-remove-cancel:hover{background:#f3f4f6;color:#374151}.pcp-remove-loading{font-size:12px;color:#9ca3af}.pcp-page{width:100%;padding:8px 0 40px;box-sizing:border-box}.pcp-page .ps-tabs{padding-bottom:16px;border-bottom:1px solid #edf0f3;margin-bottom:24px}.pcp-page .ps-card{width:100%;box-sizing:border-box}.pcp-page .ps-staffing-split{grid-template-columns:1fr 1.4fr}.pcp-page .ps-staff-list{max-height:none;min-height:320px}@media (max-width: 800px){.pcp-page .ps-staffing-split{grid-template-columns:1fr}}@media (max-width: 768px){.project-sidebar{width:52px;padding:10px 6px;gap:2px}.project-sidebar-back{justify-content:center;padding:8px;margin-bottom:4px;gap:0;font-size:0}.project-sidebar-back svg{flex-shrink:0}.project-sidebar-title{display:none}.project-menu-item{justify-content:center;padding:10px;gap:0;font-size:0}.project-menu-item svg{width:20px;height:20px}.project-breadcrumb{padding:10px 14px;font-size:12px;gap:4px}.project-page-body{padding:14px 12px}.batch-embedded .batch-header{flex-direction:column;align-items:flex-start;gap:10px;padding:0}.batch-embedded .batch-header h1{font-size:18px}.batch-embedded .header-actions{width:100%}.batch-embedded .header-actions .btn.primary{width:100%;text-align:center;justify-content:center;padding:10px 16px;font-size:14px}.batch-embedded .batch-filter-bar{flex-direction:column;gap:10px;padding:0;margin-bottom:16px}.batch-embedded .filter-search{max-width:100%;width:100%}.batch-embedded .filter-buttons{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;justify-content:flex-start;padding:3px;gap:4px}.batch-embedded .filter-btn{padding:6px 12px;font-size:13px}.batch-embedded .batch-grid{grid-template-columns:1fr;gap:12px;padding:0;margin-bottom:20px}.batch-embedded .batch-pagination{flex-wrap:wrap;gap:6px;padding:16px 0}.batch-embedded .pagination-btn{padding:8px 12px;font-size:13px}.batch-embedded .pagination-page{min-width:34px;height:34px;font-size:13px}.batch-embedded .pagination-info{width:100%;text-align:center;margin-left:0;margin-top:4px;font-size:12px}}.um-page{height:100vh;background:#f7f8fa;display:flex;flex-direction:column;overflow:hidden}.um-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:56px;background:#fff;border-bottom:1px solid #ebeef2;flex-shrink:0}.um-modal{width:500px}.um-back-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;color:#374151;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.um-back-btn:hover{background:#f3f4f6;border-color:#d1d5db}.um-topbar-right{display:flex;align-items:center;gap:10px}.um-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:24px 32px 0}.um-stat-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 12px;border:1.5px solid;border-radius:12px;transition:transform .15s,box-shadow .15s}.um-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.um-stat-count{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.um-stat-label{font-size:12px;color:#4f545e;font-weight:500}.um-toolbar{display:flex;align-items:center;justify-content:space-between;padding:24px 32px 0}.um-title{font-size:22px;font-weight:700;color:#111827;margin:0;letter-spacing:-.02em}.um-toolbar-actions{display:flex;align-items:center;gap:10px}.um-search-wrap{position:relative}.um-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#9ca3af;pointer-events:none}.um-search{width:220px;padding:8px 12px 8px 32px;border:1.5px solid #e5e7eb;border-radius:9px;font-size:13px;color:#374151;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.um-search::placeholder{color:#c0c4cc}.um-search:focus{border-color:#6366f1;box-shadow:0 0 0 3px #3e8e5a1a}.um-create-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:9px;border:none;background:linear-gradient(135deg,#319554,#46a76a);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #3e8e5a47;transition:all .2s}.um-create-btn:hover{box-shadow:0 4px 14px #3e8e5a61;transform:translateY(-1px)}.um-filter-bar{display:flex;gap:6px;padding:16px 32px 0}.um-filter-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border:1.5px solid #e5e7eb;border-radius:8px;background:#fff;color:#4f545e;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.um-filter-btn:hover:not(.active){border-color:#d1d5db;color:#374151;background:#f9fafb}.um-filter-btn.active{background:#5550e9;color:#fff;border-color:#524ebc}.um-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:11px;font-weight:600;background:#00000014}.um-filter-btn.active .um-filter-count{background:#fff3;color:#fff}.um-batch-bar{display:flex;align-items:center;gap:10px;margin:14px 32px 0;padding:10px 16px;background:#eef2ff;border:1.5px solid #c7d2fe;border-radius:10px;font-size:13px}.um-batch-count{font-weight:600;color:#3730a3;margin-right:4px}.um-batch-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:1.5px solid;transition:all .15s}.um-batch-btn:disabled{opacity:.55;cursor:not-allowed}.um-batch-disable{color:#b45309;border-color:#fcd9a5;background:#fffbeb}.um-batch-disable:hover:not(:disabled){background:#fef3c7;border-color:#fbbf24}.um-batch-enable{color:#0a9a84;border-color:#a7f3d0;background:#ecfdf5}.um-batch-enable:hover:not(:disabled){background:#d1fae5;border-color:#6ee7b7}.um-batch-delete{color:#dc2626;border-color:#fecaca;background:#fff5f5}.um-batch-delete:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.um-batch-clear{color:#4f545e;border-color:#e5e7eb;background:#fff}.um-batch-clear:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.um-table-wrap{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;padding:16px 32px 24px}.um-table-scroll{flex:1;min-height:0;overflow:auto;background:#fff;border:1.5px solid #ebeef2;border-radius:12px}.um-table{width:100%;border-collapse:collapse;font-size:13px}.um-table thead th{position:sticky;top:0;z-index:1;background:#f9fafb;color:#4f545e;font-size:12px;font-weight:600;text-align:left;padding:12px 16px;border-bottom:1.5px solid #ebeef2;white-space:nowrap}.um-table tbody td{padding:12px 16px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle;white-space:nowrap}.um-table tbody tr:last-child td{border-bottom:none}.um-table tbody tr:hover td{background:#f9fafb}.um-table tbody tr.um-row-selected td{background:#eef2ff}.um-table tbody tr.um-row-disabled td{opacity:.62}.um-col-check{width:44px;text-align:center}.um-col-check input[type=checkbox]{width:15px;height:15px;cursor:pointer;vertical-align:middle}.um-cell-strong{font-weight:600;color:#111827}.um-cell-strong .um-badge-me{margin-left:6px;vertical-align:1px}.um-cell-dim{color:#c0c4cc}.um-badge-active{padding:1px 7px;border-radius:5px;border:1px solid #a7f3d0;background:#ecfdf5;color:#0a9a84;font-size:11px;font-weight:600}.um-table-actions{display:flex;gap:6px}.um-table-actions .um-action-btn{padding:5px 11px;font-size:12px}.um-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;font-size:13px;color:#4f545e}.um-page-btn{min-width:56px;padding:6px 10px;border:1.5px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:13px;cursor:pointer;transition:all .15s}.um-page-btn:hover:not(:disabled){border-color:#d1d5db;background:#f9fafb}.um-page-btn:disabled{opacity:.4;cursor:not-allowed}.um-page-size{padding:6px 8px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:13px;color:#374151;background:#fff;cursor:pointer}.um-badge-me{padding:1px 7px;border-radius:5px;background:#0a9a84;color:#fff;font-size:10px;font-weight:600;letter-spacing:.03em}.um-badge-disabled{padding:1px 7px;border-radius:5px;border:1px solid #fca5a5;background:#fef2f2;color:#dc2626;font-size:10px;font-weight:600;letter-spacing:.03em}.um-card-role{display:inline-block;padding:2px 8px;border-radius:6px;border:1px solid;font-size:11px;font-weight:600;white-space:nowrap}.um-action-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:7px;font-size:13px;font-weight:500;cursor:pointer;border:1.5px solid;transition:all .15s}.um-action-edit{color:#374151;border-color:#e5e7eb;background:#fff}.um-action-edit:hover{background:#f3f4f6;border-color:#d1d5db}.um-action-delete{color:#dc2626;border-color:#fecaca;background:#fff5f5;padding:6px 9px}.um-action-delete:hover{background:#fee2e2;border-color:#fca5a5}.um-action-disable{color:#b45309;border-color:#fcd9a5;background:#fffbeb}.um-action-disable:hover{background:#fef3c7;border-color:#fbbf24}.um-action-enable{color:#0a9a84;border-color:#a7f3d0;background:#ecfdf5}.um-action-enable:hover{background:#d1fae5;border-color:#6ee7b7}.um-card-me-tag{font-size:12px;color:#0a9a84;font-weight:500}.um-card-noop{color:#d1d5db;font-size:16px}.um-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:72px 0;color:#9ca3af}.um-empty p{font-size:14px}.um-modal{border-radius:14px}.um-modal-sm{max-width:400px}.um-required{color:#ef4444}.um-form-hint{font-size:12px;color:#9ca3af;margin-top:5px}.um-delete-warn{color:#dc2626;margin-top:10px;font-size:13px}.um-modal .form-group input,.um-modal .form-group select{width:100%;padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;box-sizing:border-box;background:#fff;color:#374151;transition:border-color .15s,box-shadow .15s}.um-modal .form-group input:focus,.um-modal .form-group select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #3e8e5a1a}.um-modal .form-group label{font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}@media (max-width: 900px){.um-stats{grid-template-columns:repeat(3,1fr)}.um-toolbar{flex-direction:column;align-items:flex-start;gap:12px}.um-search{width:100%}}@media (max-width: 600px){.um-stats{grid-template-columns:repeat(2,1fr)}.um-topbar,.um-toolbar,.um-filter-bar,.um-list,.um-stats{padding-left:16px;padding-right:16px}.um-card{padding:12px 14px;gap:10px}.um-avatar{width:36px;height:36px;font-size:14px}}.um-modal-wide{width:720px;max-width:92vw}.um-create-tabs{display:flex;gap:0;padding:0 24px;border-bottom:1px solid #f0f2f5}.um-create-tab{padding:10px 18px;border:none;background:none;font-size:13px;font-weight:600;color:#9ca3af;cursor:pointer;border-bottom:2px solid transparent;transition:all .12s}.um-create-tab:hover:not(.active){color:#4f545e}.um-create-tab.active{color:#111827;border-bottom-color:#111827}.um-batch-body{padding:20px 24px;max-height:55vh;overflow-y:auto}.um-batch-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.um-batch-field{display:flex;flex-direction:column;gap:6px}.um-batch-field:first-child{grid-column:1 / -1}.um-batch-field label{font-size:12px;font-weight:600;color:#4f545e}.um-batch-field input,.um-batch-field select{padding:9px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14px;color:#374151;background:#fff;outline:none;transition:border-color .12s,box-shadow .12s}.um-batch-field input:focus,.um-batch-field select:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f114}.um-batch-field input[type=number]{-moz-appearance:textfield}.um-batch-field-hint{font-size:11px;color:#6366f1;font-weight:500}.um-batch-preview{margin-top:18px;padding:14px 16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.um-batch-preview-title{font-size:12px;font-weight:600;color:#4f545e;margin-bottom:10px}.um-batch-preview-list{display:flex;flex-wrap:wrap;gap:6px}.um-batch-preview-tag{padding:4px 10px;background:#eef2ff;color:#4338ca;border-radius:6px;font-size:12px;font-weight:600;font-family:SF Mono,Fira Code,Consolas,monospace}.um-batch-preview-more{padding:4px 8px;font-size:12px;color:#9ca3af}.um-batch-results{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.um-batch-results-head{display:grid;grid-template-columns:1fr 80px 1fr;gap:8px;padding:8px 12px;background:#f9fafb;font-size:11px;font-weight:600;color:#4f545e;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e7eb}.um-batch-result-row{display:grid;grid-template-columns:1fr 80px 1fr;gap:8px;padding:8px 12px;font-size:13px;border-bottom:1px solid #f5f5f5;align-items:center}.um-batch-result-row:last-child{border-bottom:none}.um-batch-result-user{font-weight:600;color:#1f2937}.um-batch-result-status{padding:2px 8px;border-radius:5px;font-size:11px;font-weight:700;text-align:center}.um-batch-result-status.success{background:#ecfdf5;color:#047857}.um-batch-result-status.failed{background:#fef2f2;color:#dc2626}.um-batch-result-err{color:#9ca3af;font-size:12px}.um-batch-result-row.failed .um-batch-result-err{color:#dc2626}.as-page{height:100vh;background:#fafbfc;overflow-y:auto}.as-topbar{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 32px;background:#fff;border-bottom:1px solid #edf0f3}.as-back{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:6px;border:1px solid #e5e7eb;background:transparent;color:#4b5563;font-size:13px;font-weight:500;cursor:pointer;transition:all .12s}.as-back:hover{background:#f3f4f6;color:#111827}.as-main{max-width:1040px;width:100%;margin:0 auto;padding:40px 24px 64px}.as-title{font-size:24px;font-weight:700;color:#111827;margin:0 0 6px;letter-spacing:-.02em}.as-subtitle{font-size:13px;color:#9ca3af;margin:0 0 32px}.as-section{background:#fff;border:1px solid #e8ebef;border-radius:10px;padding:24px 28px;margin-bottom:20px}.as-section-head{display:flex;align-items:baseline;gap:10px;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid #f0f2f5}.as-section-head h2{font-size:15px;font-weight:600;color:#111827;margin:0}.as-section-desc{font-size:12px;color:#9ca3af}.as-avatar-row{display:flex;align-items:center;gap:14px;margin-bottom:24px}.as-avatar-circle{width:48px;height:48px;border-radius:50%;background:#eef2ff;border:1.5px solid #6366f1;color:#6366f1;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:-.02em}.as-avatar-meta{display:flex;flex-direction:column;gap:4px}.as-display-name{font-size:15px;font-weight:600;color:#111827}.as-role-tag{display:inline-block;align-self:flex-start;padding:1px 8px;border:1px solid #6366f1;border-radius:4px;font-size:11px;color:#6366f1;background:#eef2ff;font-weight:500;letter-spacing:.02em}.as-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}.as-field{display:flex;flex-direction:column;gap:6px}.as-field-full{grid-column:1 / -1}.as-field label{font-size:12px;font-weight:600;color:#374151;letter-spacing:.01em}.as-req{color:#ef4444}.as-field input,.as-field textarea{width:100%;padding:9px 12px;border:1px solid #e5e7eb;border-radius:7px;font-size:13px;color:#111827;background:#fff;box-sizing:border-box;transition:border-color .12s,box-shadow .12s;font-family:inherit;resize:vertical}.as-field input::placeholder,.as-field textarea::placeholder{color:#c0c4cc}.as-field input:focus,.as-field textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #3e8e5a14}.as-hint{font-size:11px;color:#b0b8c4;margin-top:2px}.as-foot{display:flex;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid #f0f2f5}.as-btn-primary{padding:9px 22px;border-radius:7px;border:none;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 1px 4px #3e8e5a33;transition:all .15s}.as-btn-primary:hover:not(:disabled){box-shadow:0 3px 10px #3e8e5a4d;transform:translateY(-1px)}.as-btn-primary:disabled{opacity:.5;cursor:not-allowed}.as-footer{display:flex;flex-direction:column;gap:0;padding:16px 0;margin-top:8px}.as-footer-line{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f2f5}.as-footer-line:last-child{border-bottom:none}.as-footer-label{font-size:12px;color:#9ca3af}.as-mono{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px;color:#4b5563;background:#f5f6f8;padding:2px 8px;border-radius:4px;letter-spacing:.01em}@media (max-width: 600px){.as-form-grid{grid-template-columns:1fr}.as-main{padding:24px 16px 48px}.as-section{padding:20px}}.al-page{min-height:100vh;background:#f5f6f8;padding-bottom:40px}.al-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#fff;border-bottom:1px solid #e5e7eb}.al-back-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;transition:all .15s}.al-back-btn:hover{background:#f9fafb;border-color:#9ca3af}.al-topbar-right{display:flex;align-items:center}.al-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;max-width:1280px;margin:20px auto 0;padding:0 24px}.al-title{font-size:20px;font-weight:600;color:#111827;margin:0}.al-toolbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.al-select{height:34px;padding:0 10px;font-size:13px;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;cursor:pointer}.al-select:focus{border-color:#5c5bed}.al-date{height:34px;padding:0 8px;font-size:13px;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none}.al-date:focus{border-color:#5c5bed}.al-date-sep{font-size:13px;color:#9ca3af}.al-search-wrap{position:relative}.al-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#9ca3af;pointer-events:none}.al-search{height:34px;width:230px;padding:0 10px 0 32px;font-size:13px;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none}.al-search:focus{border-color:#5c5bed}.al-table-wrap{max-width:1280px;margin:16px auto 0;padding:0 24px;height:780px;overflow:auto}.al-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;table-layout:fixed}.al-table th{padding:10px 12px;font-size:12px;font-weight:600;color:#4f545e;text-align:left;background:#f9fafb;border-bottom:1px solid #e5e7eb;white-space:nowrap}.al-table td{padding:9px 12px;font-size:13px;color:#374151;border-bottom:1px solid #f3f4f6;vertical-align:top}.al-table tbody tr:last-child td{border-bottom:none}.al-table tbody tr:hover{background:#fafbff}.al-cell-time{color:#4f545e;white-space:nowrap;font-variant-numeric:tabular-nums}.al-cell-user{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.al-action-badge{display:inline-block;padding:2px 8px;font-size:12px;font-weight:500;color:#374151;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;white-space:nowrap}.al-action-badge.danger{color:#be123c;background:#fff1f2;border-color:#fecdd3}.al-cell-target{overflow:hidden}.al-target-type{display:inline-block;margin-right:6px;padding:1px 6px;font-size:11px;color:#5c5bed;background:#f0f0ff;border-radius:4px;white-space:nowrap}.al-target-name{font-size:13px;color:#111827;word-break:break-all}.al-cell-detail{color:#4f545e;font-size:12.5px;word-break:break-all}.al-cell-ip{color:#9ca3af;font-size:12px;font-variant-numeric:tabular-nums;word-break:break-all}.al-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:80px 0;color:#9ca3af;font-size:14px;background:#fff;border:1px solid #e5e7eb;border-radius:10px}.al-pagination{display:flex;align-items:center;justify-content:center;gap:12px;max-width:1280px;margin:16px auto 0;padding:0 24px}.al-pagination-info{font-size:13px;color:#9ca3af;margin-right:auto}.al-page-btn{padding:6px 14px;font-size:13px;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;transition:all .15s}.al-page-btn:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.al-page-btn:disabled{opacity:.45;cursor:not-allowed}.al-page-indicator{font-size:13px;color:#4f545e;font-variant-numeric:tabular-nums}.global-nf-bell{position:fixed;top:12px;right:18px;z-index:150}.global-nf-bell .nf-bell-btn{width:36px;height:36px;border-radius:50%;color:#4b5563}.global-nf-bell .nf-bell-btn:hover{background:#f9fafb;color:#1f2937}.global-nf-bell .nf-panel{z-index:260}.upload-progress-toast{position:fixed;right:24px;bottom:24px;z-index:3000;display:flex;align-items:center;gap:14px;min-width:280px;padding:16px 20px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 12px 32px #00000024;animation:upload-toast-in .3s cubic-bezier(.22,1,.36,1)}.upload-progress-toast.finished{animation:upload-toast-in .3s cubic-bezier(.22,1,.36,1),upload-toast-out .4s ease 1.4s forwards}@keyframes upload-toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes upload-toast-out{to{opacity:0;transform:translateY(12px) scale(.96)}}.upload-progress-ring{position:relative;width:64px;height:64px;flex-shrink:0}.upload-ring-track{stroke:#eef1f5}.upload-ring-bar{stroke:#0ac5a8;transition:stroke-dashoffset .25s ease,stroke .3s ease}.upload-ring-bar.success{stroke:#10b981}.upload-ring-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#1f2937;font-variant-numeric:tabular-nums}.upload-ring-text i{font-style:normal;font-size:10px;font-weight:600;color:#9ca3af;margin-left:1px}.upload-ring-text.success{color:#10b981;animation:upload-check-pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes upload-check-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.upload-progress-info{flex:1;min-width:0}.upload-progress-title{font-size:14px;font-weight:600;color:#1f2937}.upload-progress-detail{margin-top:3px;font-size:12px;color:#4f545e;font-variant-numeric:tabular-nums}.upload-progress-track{margin-top:8px;height:4px;background:#f3f4f6;border-radius:2px;overflow:hidden}.upload-progress-bar{position:relative;height:100%;background:linear-gradient(90deg,#0ac5a8,#34d399);border-radius:2px;transition:width .25s ease;overflow:hidden}.upload-progress-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:upload-bar-shine 1.2s linear infinite}@keyframes upload-bar-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.login-page{position:relative;display:flex;min-height:100vh;background:#e6eaf7}.login-left{display:flex;align-items:center;justify-content:center;flex-shrink:0;position:absolute;left:0%;top:50%;transform:translateY(-50%)}.login-illustration{width:1280px;height:auto;object-fit:contain;-webkit-mask-image:radial-gradient(ellipse 76% 72% at 44% 50%,#000 58%,transparent 93%);mask-image:radial-gradient(ellipse 76% 72% at 44% 50%,#000 58%,transparent 93%)}.login-right{z-index:1;flex:1;display:flex;align-items:center;padding:40px 80px;position:absolute;right:130px;transform:translateY(-50%);top:50%}.login-form-container{margin:auto;width:460px;background:#fff;border-radius:16px;padding:24px;box-sizing:border-box;box-shadow:0 24px 64px #0f0c3266,0 4px 16px #0f0c323d;animation:login-card-in .45s ease-out}@keyframes login-card-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.form-header{margin-bottom:20px}.app-title{display:flex;align-items:center;gap:12px;font-size:36px;font-weight:700;color:#5c5bed;margin:0 0 12px;letter-spacing:-.5px}.app-logo{width:44px;height:44px;object-fit:contain}.welcome-title{font-size:14px;font-weight:500;color:#6b7280;margin:0}.login-form{width:100%}.error-message{padding:12px 16px;background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:14px;margin-bottom:20px}.force-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.force-modal{width:460px;max-width:calc(100vw - 48px);background:#fff;border-radius:8px;box-shadow:0 12px 40px #0003;padding:20px 24px 24px}.force-modal-header{display:flex;align-items:center;justify-content:space-between}.force-modal-title{font-size:18px;font-weight:600;color:#333}.force-modal-close{border:none;background:none;color:#9ca3af;font-size:18px;line-height:1;padding:4px;cursor:pointer;transition:color .15s}.force-modal-close:hover:not(:disabled){color:#4b5563}.force-modal-close:disabled{opacity:.5;cursor:not-allowed}.force-modal-body{padding:36px 8px 40px;color:#555;font-size:15px;line-height:1.7}.force-modal-footer{display:flex;justify-content:flex-end;gap:12px}.force-cancel{padding:9px 20px;border:1px solid #e0e0e0;border-radius:6px;background:#fff;color:#333;font-size:14px;cursor:pointer;transition:all .2s}.force-cancel:hover:not(:disabled){background:#f5f5f5}.force-confirm{padding:9px 22px;border:none;border-radius:6px;background:#5c5bed;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.force-confirm:hover:not(:disabled){background:#4949e7}.force-cancel:disabled,.force-confirm:disabled{opacity:.6;cursor:not-allowed}.login-page .form-group{margin-bottom:24px}.login-page .form-group label{display:block;font-size:14px;font-weight:500;color:#333;margin-bottom:8px}.login-page .form-group input{width:100%;padding:10px 12px;border:1px solid #d7dcef;border-radius:8px;font-size:14px;color:#111827;transition:all .2s;background:#e8ecf9}.login-page .form-group input:hover{border-color:#b9c1e6}.login-page .form-group input:focus{outline:none;border-color:#5c5bed;background:#fff;box-shadow:0 0 0 3px #5c5bed26}.login-page .form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.login-tabs{position:relative;display:flex;gap:28px;border-bottom:1px solid #e5e7eb;margin:0 0 24px}.login-tab{position:relative;padding:10px 2px;border:none;background:none;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:color .15s}.login-tab:hover{color:#374151}.login-tab.active{color:#5c5bed;font-weight:600}.login-tabs .tab-indicator{position:absolute;left:0;bottom:-1px;height:2px;border-radius:2px;background:#5c5bed;pointer-events:none}.login-tabs .tab-indicator.ready{transition:transform .25s ease,width .25s ease}.input-wrap{position:relative}.input-wrap input{padding-right:42px}.pwd-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;padding:6px;border:none;background:none;color:#9aa3b8;cursor:pointer;transition:color .15s}.pwd-toggle:hover{color:#5c5bed}.sms-row{display:flex;gap:10px}.sms-row input{flex:1}.sms-btn{flex-shrink:0;padding:0 16px;border:1px solid #c7cbf5;border-radius:8px;background:#eef0ff;color:#5c5bed;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.sms-btn:hover:not(:disabled){background:#e0e3ff}.sms-btn:disabled{opacity:.6;cursor:not-allowed}.form-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;font-size:14px}.remember-me{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.remember-me input[type=checkbox]{width:16px;height:16px;margin-right:6px;cursor:pointer;accent-color:#5C5BED}.remember-me span{color:#666}.forgot-password{color:#666;text-decoration:none;transition:color .2s}.forgot-password:hover{color:#1a1a1a}.login-button{width:100%;padding:14px;background:#5c5bed;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.login-button:hover:not(:disabled){background:#4949e7;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background:#519723;cursor:not-allowed}.login-button.register-mode{background:#0a9a84}.login-button.register-mode:hover:not(:disabled){background:#08826f}.login-button.register-mode:disabled{background:#7cc3b6}.divider{position:relative;text-align:center;margin:28px 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e0e0e0}.divider span{position:relative;display:inline-block;padding:0 16px;background:#fff;color:#999;font-size:14px}.oauth-button{width:100%;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;color:#333;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.oauth-button:hover{background:#fafafa;border-color:silver}.oauth-icon{font-size:18px}.login-footer{text-align:center;margin-top:32px;font-size:14px;color:#666}.login-footer a{color:#1a1a1a;text-decoration:none;font-weight:500;margin-left:4px}.login-footer a:hover{text-decoration:underline}.form-agreement{display:flex;align-items:flex-start;gap:8px;margin:4px 0 20px;font-size:12px;color:#4b5563;line-height:1.6;cursor:pointer;-webkit-user-select:none;user-select:none}.form-agreement input[type=checkbox]{width:15px;height:15px;margin-top:3px;accent-color:#5C5BED;cursor:pointer;flex-shrink:0}.form-agreement a{color:#5c5bed;text-decoration:none;white-space:nowrap}.form-agreement a:hover{text-decoration:underline}.login-tip{margin:16px 0 0;text-align:center;font-size:12px;color:#9ca3af}.agreement-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1500;animation:fadeIn .2s ease-out}.agreement-modal{position:relative;display:flex;flex-direction:column;width:640px;max-width:calc(100vw - 48px);max-height:calc(100vh - 80px);background:#fff;border-radius:10px;box-shadow:0 12px 40px #0003;padding:24px 32px 12px}.agreement-header h3{margin:0 0 16px;text-align:center;font-size:18px;font-weight:700;color:#111827}.agreement-close{position:absolute;top:14px;right:16px;border:none;background:none;color:#9ca3af;font-size:18px;line-height:1;padding:4px;cursor:pointer;transition:color .15s}.agreement-close:hover{color:#4b5563}.agreement-body{overflow-y:auto;padding-right:6px;font-size:13px;color:#555;line-height:1.8}.agreement-body h4{margin:18px 0 10px;font-size:15px;font-weight:700;color:#333}.agreement-body p{margin:0 0 8px}.agreement-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 48px 8px;flex-shrink:0}.agreement-decline{border:none;background:none;color:#666;font-size:14px;padding:6px 10px;cursor:pointer;transition:color .15s}.agreement-decline:hover{color:#333}.agreement-accept{border:none;background:none;color:#5c5bed;font-size:14px;font-weight:600;padding:6px 10px;cursor:pointer;transition:color .15s}.agreement-accept:hover{color:#4949e7}@media (max-width: 1024px){.login-right{width:100%}}@media (max-width: 768px){.login-left{display:none}.login-right{position:static;padding:32px 24px;transform:none;top:auto;right:auto}.login-form-container{margin:auto;width:100%;max-width:460px}}@media (max-width: 640px){.login-right{padding:24px 16px}.login-form-container{padding:32px 24px}.form-header h1{font-size:24px}}.force-logout-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}.force-logout-modal{width:460px;max-width:calc(100vw - 48px);background:#fff;border-radius:8px;box-shadow:0 12px 40px #0003;padding:20px 24px 24px}.force-logout-header{display:flex;align-items:center;justify-content:space-between}.force-logout-title{font-size:18px;font-weight:600;color:#333}.force-logout-body{padding:36px 8px 40px;color:#555;font-size:15px;line-height:1.7}.force-logout-footer{display:flex;justify-content:flex-end}.force-logout-confirm{padding:9px 22px;border:none;border-radius:6px;background:#5c5bed;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.force-logout-confirm:hover{background:#4949e7}.overview-page{display:flex;flex-direction:column;gap:20px;font-size:13px;color:#374151;padding:20px 0}.overview-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000f;border:1px solid #f3f4f6;overflow:hidden;padding:20px}.overview-card-title{font-size:15px;font-weight:500;color:#111827;margin-bottom:16px}.overview-project-info h2{margin:0 0 10px;font-size:22px;font-weight:600;color:#111827}.overview-meta-row{display:flex;align-items:center;gap:8px 16px;margin-bottom:10px;flex-wrap:wrap}.overview-chart-container{background:#fff;position:relative;margin-top:20px}.overview-tag{background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1d4ed8;padding:4px 10px;border-radius:4px;font-size:13px;font-weight:500;border:1px solid #bfdbfe}.overview-date{font-size:13px;color:#4f545e}.overview-desc{margin:8px 0 0;font-size:14px;color:#4f545e;line-height:1.6}.overview-stats-grid{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px}.overview-stats-grid::-webkit-scrollbar{height:6px}.overview-stats-grid::-webkit-scrollbar-track{background:transparent}.overview-stats-grid::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.overview-stat-card{min-width:180px;max-width:200px;background:#fff;border-radius:6px;padding:16px;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6;display:flex;flex-direction:column;gap:8px}.overview-stat-value{font-size:26px;font-weight:500;color:#111827;line-height:1.2}.overview-stat-label{font-size:12px;color:#4f545e;font-weight:400;display:flex;align-items:center;gap:4px}.overview-progress-bar{height:12px;border-radius:6px;overflow:hidden;background:#f3f4f6}.overview-progress-fill{height:100%;background:linear-gradient(90deg,#108ee9,#2563eb);transition:width .3s ease;border-radius:6px}.overview-batches-table th{text-align:left;padding:12px 14px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-weight:500;color:#374151;font-size:13px}.overview-batches-table td{padding:14px;border-bottom:1px solid #f3f4f6;color:#374151}.overview-batches-table .ops-cell .btn-sm{padding:6px 12px;font-size:13px;border-radius:4px;font-weight:400}.overview-chart-legend{display:flex;gap:20px;margin-top:20px;justify-content:center;flex-wrap:wrap}.overview-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#4f545e}.overview-legend-color{width:12px;height:12px;border-radius:2px}.legend-completed{background:#10b981}.legend-reviewing{background:#f59e0b}.legend-annotating{background:#6366f1}.legend-rework{background:#ef4444}.overview-main-content{display:flex;gap:20px;align-items:stretch}.overview-status-section{flex:1;min-width:0}.overview-task-progress-section{flex:1;min-width:0;background:#fff;padding:20px;min-height:400px;border-radius:8px;box-shadow:0 1px 3px #0000000f;border:1px solid #f3f4f6}.overview-status-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000000f;border:1px solid #f3f4f6;display:flex;flex-direction:column}.overview-chart-container{width:100%;display:flex;align-items:center}.svg-circle-chart{position:relative;width:320px;height:320px;flex-shrink:0;margin-left:100px}.circle-bg{fill:#f3f4f6;stroke:#f3f4f6;stroke-width:3.5}.circle-progress{fill:none;stroke-width:14px;stroke-linecap:round;transform:rotate(-90deg);transform-origin:100px 100px;transition:stroke-dashoffset .5s ease}.progress-completed{stroke:#10b981}.progress-reviewing{stroke:#f59e0b}.progress-annotating{stroke:#6366f1}.progress-rework{stroke:#ef4444}.overview-chart-stat-list{position:static;transform:none;flex:1;display:flex;flex-direction:column;align-items:flex-start;max-width:240px;margin:0 auto}.overview-chart-stat-item{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding:8px 0}.stat-dot{width:10px;height:10px;border-radius:50%}.stat-dot.completed{background:#10b981}.stat-dot.reviewing{background:#f59e0b}.stat-dot.annotating{background:#6366f1}.stat-dot.rework{background:#ef4444}.stat-label{font-size:13px;color:#4f545e}.stat-value{font-size:13px;font-weight:500;color:#111827}.overview-task-list{width:100%}.overview-task-item{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-bottom:1px solid #f3f4f6}.overview-task-item:last-child{border-bottom:none}.overview-task-name{color:#00b34a;cursor:pointer;font-size:14px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-task-progress-row{display:flex;align-items:center;gap:12px}.overview-task-progress-bar{flex:1;height:10px;border-radius:5px;background:#e5e7eb;overflow:hidden}.overview-task-progress-fill{height:100%;background:#6366f1;border-radius:5px;transition:width .3s ease}.overview-task-dual-progress{display:flex;flex-direction:column;gap:6px}.overview-task-progress-label{font-size:11px;color:#9ca3af;width:28px;flex-shrink:0}.overview-batch-progress-cell{display:flex;flex-direction:column;gap:4px}.overview-batch-progress-text{font-size:12px;color:#4f545e}.overview-task-percent{font-size:13px;color:#374151;font-weight:400;white-space:nowrap;min-width:56px;text-align:right}.overview-task-empty{padding:20px 0;text-align:center;color:#9ca3af;font-size:13px}.overview-empty{text-align:center;color:#9ca3af;padding:30px 0;margin:0;font-size:14px}.overview-batches-section{margin-top:20px}.overview-batches-table table{width:100%;border-collapse:collapse;font-size:14px}.overview-batches-table th{text-align:left;padding:14px 16px;background:#f9fafb;border-bottom:1px solid #e5e7eb;font-weight:500;color:#374151;font-size:13px}.overview-batches-table td{padding:16px;border-bottom:1px solid #f3f4f6;color:#374151}.overview-batches-table tr:hover{background:#f9fafb}.overview-batches-table .batch-name{color:#1d4ed8;cursor:pointer;text-decoration:underline;font-weight:400}.lsp-body{max-width:1200px;margin:0 auto;padding:24px 32px 48px}.lsp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.lsp-head h2{margin:0;font-size:20px;font-weight:700;color:#111827}.lsp-sub{margin:6px 0 0;font-size:13px;color:#4f545e}.lsp-head-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.lsp-search{padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;color:#374151;background:#f9fafb;width:220px;transition:all .15s}.lsp-search:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f114}.lsp-table-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.lsp-empty{padding:64px 20px;text-align:center;font-size:13px;color:#9ca3af}.lsp-table{width:100%;border-collapse:collapse;font-size:13px}.lsp-table thead th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:#4f545e;background:#f9fafb;border-bottom:1px solid #e5e7eb;white-space:nowrap}.lsp-table tbody td{padding:14px 16px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.lsp-table tbody tr:last-child td{border-bottom:none}.lsp-table tbody tr:hover{background:#fafbff}.lsp-name{font-weight:600;color:#111827}.lsp-desc{margin-top:3px;font-size:12px;color:#9ca3af;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lsp-tags{display:flex;flex-wrap:wrap;gap:4px}.lsp-tag{padding:2px 8px;background:#eef2ff;color:#4f46e5;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap}.lsp-mono{white-space:nowrap}.lsp-th-actions{text-align:right}.lsp-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.lsp-actions .btn{padding:5px 12px;font-size:12px}.lsp-modal{width:92%;max-width:920px;max-height:88vh}.lsp-modal .modal-close{display:flex!important}.lsp-modal-body{padding:16px 12px}.lsp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.lsp-editor-wrap{margin-top:8px;min-height:380px}.labelsets-page .lsp-delete-modal{width:420px}.labelsets-page .lsp-delete-modal .modal-body{padding:22px 24px 8px}.labelsets-page .ddm-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.labelsets-page .ddm-warn{display:flex;width:26px;height:26px;border-radius:50%;background:#f59e0b;color:#fff;font-size:15px;font-weight:700;align-items:center;justify-content:center;flex-shrink:0}.labelsets-page .ddm-head h3{margin:0;font-size:16px;font-weight:700;color:#161b22}.labelsets-page .ddm-text{margin:0 0 8px;color:#374151;font-size:13px;line-height:1.7}.labelsets-page .ddm-text b{color:#111827}.labelsets-page .ddm-sub{margin:0 0 14px;color:#98a1b0;font-size:12px;line-height:1.7}@media (max-width: 720px){.lsp-body{padding:16px}.lsp-head{flex-direction:column;align-items:stretch}.lsp-form-grid{grid-template-columns:1fr}}.lsp-batch-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;margin-bottom:8px;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;font-size:13px;color:#3730a3}.lsp-batch-bar b{color:#4f46e5;font-weight:700}.lsp-batch-btn{padding:4px 12px;border-radius:6px;font-size:12px;font-weight:500;border:none;cursor:pointer;background:#e5e7eb;color:#374151;transition:background .15s}.lsp-batch-btn:hover{background:#d1d5db}.lsp-batch-btn.danger{background:#fee2e2;color:#dc2626}.lsp-batch-btn.danger:hover{background:#fecaca}.lsp-batch-clear{margin-left:auto;background:none;border:none;font-size:12px;color:#6366f1;cursor:pointer;padding:2px 4px;border-radius:4px}.lsp-batch-clear:hover{background:#e0e7ff}.lsp-th-check{width:36px;padding:12px 8px 12px 16px!important}.lsp-td-check{width:36px;padding:14px 8px 14px 16px!important}.lsp-th-check input[type=checkbox],.lsp-td-check input[type=checkbox]{accent-color:#5550E9;cursor:pointer;width:15px;height:15px}.lsp-row-selected td{background:#f5f4ff}*{margin:0;padding:0;box-sizing:border-box}*::-webkit-scrollbar{width:4px;height:4px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#6f6f713b;border-radius:4px}button:focus,button:focus-visible{outline:none}.loading-fallback{display:flex;align-items:center;justify-content:center;height:100vh;font-size:16px;color:#4f545e}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:#f5f5f5}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.annotation-page{height:100vh;display:flex;flex-direction:column;background:#f8f9fa}.toolbar{display:flex;align-items:center;gap:8px;padding:6px 20px 6px 6px;background:#fff;border-bottom:1px solid #e5e7eb;flex-wrap:wrap;box-shadow:0 1px 3px #0000000d;position:relative}.toolbar .btn{padding:6px 12px;font-size:13px}.toolbar-region{position:relative;background:#fff}.toolbar-group{display:flex;align-items:center;gap:8px;padding-right:16px;border-right:1px solid #e5e7eb}.toolbar-group:last-child{border-right:none}.btn{padding:8px 16px;border:1px solid #e5e7eb;border-radius:8px;background:#5550e9;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s;color:#fff;letter-spacing:.05em}.btn:hover{background:#3630e3;transform:translateY(-1px);box-shadow:0 2px 8px #181bcc40}.btn.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:#6366f1;box-shadow:0 2px 8px #6366f140}.btn.primary{color:#fff;border:none;box-shadow:0 2px 8px #6366f140}.btn.primary:hover{box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}.btn.danger{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.btn.danger:hover{background:#fee2e2;border-color:#fca5a5}.btn-complete{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;box-shadow:0 2px 8px #10b98140;display:flex;align-items:center;gap:4px}.btn-complete:hover{box-shadow:0 4px 12px #10b98166;transform:translateY(-1px);background:linear-gradient(135deg,#059669,#047857)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-back{position:relative;display:inline-flex;align-items:center;padding:7px 14px 7px 10px;font-size:13px;font-weight:600;color:#1f2937;background:#eef2ff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;overflow:hidden;transition:all .3s;white-space:nowrap}.btn-back .back-icon-block{position:absolute;left:2px;top:2px;bottom:2px;width:26px;background:#5550e9;border-radius:6px;display:flex;align-items:center;justify-content:center;z-index:1;transition:width .3s ease}.btn-back:hover .back-icon-block{width:calc(100% - 4px)}.btn-back .back-text{position:relative;z-index:0;margin-left:30px}.main-content{display:flex;flex:1;overflow:hidden;gap:1px;background:#fff;padding:1px}.sidebar{width:250px;flex-shrink:0;background:#fff;display:flex;flex-direction:column;overflow:hidden;border-radius:8px}.main-content .sidebar-resizer{width:3px;flex-shrink:0;cursor:col-resize;background:#00000030;border-radius:3px;transition:background .15s}.main-content .sidebar-resizer:hover,.main-content .sidebar-resizer:active{background:#5550e9}.sidebar-section{flex:1;display:flex;flex-direction:column;overflow:hidden;border-bottom:1px solid #f3f4f6}.sidebar-section:last-child{border-bottom:none}.sidebar-header{padding:12px 16px;font-weight:700;font-size:14px;color:#111827;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-status-filter{flex-shrink:0;max-width:60%;padding:2px 6px;font-size:12px;font-weight:400;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;outline:none}.sidebar-status-filter:hover{border-color:#9ca3af}.sidebar-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.image-list-scroll::-webkit-scrollbar{width:6px}.image-list-scroll::-webkit-scrollbar-track{background:#f9fafb}.image-list-scroll::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.image-list-scroll::-webkit-scrollbar-thumb:hover{background:#9ca3af}.canvas-container{flex:1;background:#f3f4f6;overflow:hidden;position:relative;box-shadow:inset 0 2px 4px #0000000d}.property-panel{width:300px;background:#fff;display:flex;flex-direction:column;overflow:hidden;border-radius:8px}.property-panel-container{display:flex;flex-direction:column;height:100%}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-weight:700;font-size:14px;color:#111827;background:#f9fafb;border-bottom:1px solid #e5e7eb}.panel-header h3{margin:0;font-size:14px}.box-count{font-weight:500;color:#4f545e;font-size:13px}.panel-content{flex:1;overflow-y:auto;padding:8px}.panel-content::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track{background:#f9fafb}.panel-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.panel-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.annotation-tree{margin:0}.panel-section{padding:16px;border-bottom:1px solid #f3f4f6}.panel-title{font-weight:700;margin-bottom:12px;color:#111827;font-size:14px}.queue-workspace-wrapper .form-group:hover{background:#f4f5f7}.form-group label{display:block;margin-bottom:4px;font-size:13px;color:#374151;font-weight:500;letter-spacing:-.1px}.form-label{display:block;margin-bottom:8px;font-size:13px;color:#121314!important;font-weight:500;margin-left:-10px}.form-label-with-action{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.form-label-with-action .form-label{margin-bottom:0}.btn-ocr{padding:4px 12px;font-size:12px;font-weight:600;color:#6366f1;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;cursor:pointer;transition:all .2s}.btn-ocr:hover{background:#e0e7ff;border-color:#a5b4fc}.btn-ocr:disabled{opacity:.6;cursor:not-allowed}.btn-latex-wrap{padding:4px 12px;font-size:12px;font-weight:600;color:#059669;background:#d1fae5;border:1px solid #6ee7b7;border-radius:6px;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-latex-wrap:hover{background:#a7f3d0;border-color:#34d399;transform:translateY(-1px);box-shadow:0 2px 4px #05966933}.form-group input[type=text],.form-group input[type=number],.form-group textarea,.form-group select,.form-input,.form-textarea,.form-select{width:100%;padding:10px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;background:#fff;color:#111827;transition:all .3s}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group textarea:focus,.form-group select:focus,.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.form-group input::placeholder,.form-group textarea::placeholder,.form-input::placeholder,.form-textarea::placeholder{color:#9ca3af}.form-textarea{resize:vertical;min-height:150px;font-family:inherit}.form-select{cursor:pointer;-webkit-appearance:none;-moz-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='%236366f1' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.form-checkbox{display:flex;align-items:center;gap:10px;-webkit-user-select:none;user-select:none}.form-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#6366f1}.form-checkbox span{margin:0;color:#374151;font-size:14px;font-weight:500}.image-item{padding:10px 12px;margin:6px 8px;border-radius:8px;cursor:pointer;background:#f9fafb;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .2s;border:1px solid transparent;color:#374151;display:flex;align-items:center}.image-item:hover{background:#f3f4f6;border-color:#e5e7eb}.image-item.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:#6366f1;box-shadow:0 2px 8px #6366f140}.image-item.completed{color:#000}.image-status-badge{transition:none}@keyframes badgeShakeUp{0%{transform:translateY(0)}25%{transform:translateY(-4px)}50%{transform:translateY(-0px)}75%{transform:translateY(-4px)}to{transform:translateY(0)}}.image-item.completed:hover .image-status-badge{animation:badgeShakeUp .3s ease-out 1}.image-item.completed.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#10b981;box-shadow:0 2px 8px #10b98140}.completed-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:#10b981;color:#fff;border-radius:50%;font-size:12px;font-weight:700;margin-right:6px;flex-shrink:0}.image-item.active .completed-badge{background:#fff;color:#10b981}.image-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-status-badge{flex-shrink:0;margin-left:8px;padding:1px 8px;border:1px solid;border-radius:9px;font-size:11px;line-height:16px;background:#fff}.image-item.active .image-status-badge{background:#ffffffe6}.readonly-banner{padding:8px 16px;background:#fdf6ec;border-bottom:1px solid #f5dab1;color:#e6a23c;font-size:13px;text-align:center}.tree-item{padding:6px 8px;margin:2px 0;border-radius:6px;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none;transition:all .2s;border:1px solid transparent;color:#374151;display:flex;align-items:center;gap:6px}.tree-item-index{font-size:11px;color:#9ca3af;flex-shrink:0;min-width:22px}.tree-item-color{width:14px;height:14px;border-radius:2px;flex-shrink:0;transition:all .2s;border:solid 2px transparent}.tree-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-item-frame-count{font-size:10px;flex-shrink:0;margin-left:auto;padding:1px 6px;border-radius:8px;background:#0000000f;line-height:1.4;white-space:nowrap}.tree-item.active .tree-item-frame-count{background:#fff3;color:#fff!important}.tree-item-actions{display:flex;align-items:center;gap:2px;margin-left:auto;flex-shrink:0;opacity:0;transition:opacity .15s}.tree-item:hover .tree-item-actions{opacity:1}.tree-item-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:#9ca3af;padding:0}.tree-item-btn:hover{background:#e5e7eb;color:#374151}.tree-item-btn.hidden-rect{color:#d1d5db}.tree-item:hover .tree-item-color{transform:scale(1.15)}.tree-item-shape-polygon{flex-shrink:0;transition:transform .2s;margin-left:-2px}.tree-item:hover .tree-item-shape-polygon{transform:scale(1.15)}.tree-item:hover{background:#f3f4f6;border-color:#e5e7eb}.tree-item.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:#6366f1;box-shadow:0 1px 4px #6366f133}.tree-item.active .tree-item-color{border-color:#f8f8f8!important}.tree-item.active .tree-item-index{color:#fff9}.tree-item.active .tree-item-actions{opacity:1}.tree-item.active .tree-item-btn{color:#ffffffb3}.tree-item.active .tree-item-btn:hover{background:#ffffff26;color:#fff}.tree-item.level-0{font-weight:700}.tree-item.level-1{padding-left:24px;font-weight:600}.tree-item.level-2{padding-left:40px}.tree-item.level-3{padding-left:56px;font-style:italic;color:#4f545e}.tree-item.active.level-3{color:#fff}.tree-item.has-error{background:#fef2f2;border-color:#fecaca}.tree-item.has-error:hover{background:#fee2e2;border-color:#fca5a5}.tree-item.has-error.active{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#ef4444;box-shadow:0 1px 4px #ef44444d}.error-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;border-radius:50%;vertical-align:middle}.tree-item.active .error-badge{background:#fff;color:#ef4444}.tree-item.has-warning{background:#fffbeb;border-color:#fed7aa}.tree-item.has-warning:hover{background:#fef3c7;border-color:#fdba74}.tree-item.has-warning.active{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#f59e0b;box-shadow:0 1px 4px #f59e0b4d}.warning-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;background:#f59e0b;color:#fff;font-size:11px;font-weight:700;border-radius:50%;vertical-align:middle}.tree-item.active .warning-badge{background:#fff;color:#f59e0b}.empty-state{padding:40px 20px;text-align:center;color:#9ca3af;font-size:14px}.mode-indicator{padding:6px 14px;border-radius:8px;font-size:13px;background:#eef2ff;color:#6366f1;font-weight:600}.toolbar-right{display:flex;align-items:center;gap:4px;margin-left:auto}.hidden-input{display:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-container{position:fixed;top:80px;right:300px;z-index:1000;animation:modalSlideIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.modal-card,.modal-content{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 6px #0000000d,0 20px 40px #00000026;max-height:80vh;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out;position:relative;overflow:hidden;padding:8px 16px}.modal-card-jxk-shuxing{width:300px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 6px #0000000d,0 20px 40px #00000026;max-height:80vh;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out;position:relative;overflow:hidden;padding:3px 6px}.modal-card-ocr-shuxing{width:400px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 6px #0000000d,0 20px 40px #00000026;max-height:80vh;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out;position:relative;overflow:hidden;padding:3px 6px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:5px;border-bottom:1px solid #f3f4f6;position:relative;z-index:1;-webkit-user-select:none;user-select:none;cursor:grab;transition:background-color .15s ease}.modal-header:hover{background:#00000005}.modal-header:active{cursor:grabbing;background:#00000008}.modal-header-left{display:flex;align-items:center;gap:10px}.drag-handle{color:#9ca3af;font-size:14px;letter-spacing:-4px;opacity:.6;transition:opacity .15s ease}.modal-header:hover .drag-handle{opacity:1;color:#4f545e}.modal-title{margin:0;padding:8px;font-size:14px;font-weight:700;color:#111827;letter-spacing:-.3px}.modal-close{display:none!important;width:32px;height:32px;border:1px solid #e5e7eb;background:#fff;font-size:20px;color:#4f545e;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .3s;position:relative;z-index:1}.modal-close:hover{background:#f9fafb;border-color:#d1d5db;color:#374151}.modal-card-jxk-shuxing .modal-close{display:flex!important;width:24px;height:24px;font-size:16px;border-radius:6px;flex-shrink:0}.modal-body{flex:1;overflow-y:auto;padding:5px 6px;position:relative;z-index:1}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #f3f4f6;position:relative;z-index:1}.modal-footer .btn{min-width:80px;font-weight:600;transition:all .3s;border-radius:8px}.modal-footer .btn.primary{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;box-shadow:0 2px 8px #6366f140;color:#fff}.modal-footer .btn.primary:hover{box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}.modal-footer .btn:not(.primary){background:#f9fafb;border:1px solid #e5e7eb;color:#374151}.modal-footer .btn:not(.primary):hover{background:#f3f4f6;border-color:#d1d5db}.modal-info{margin-top:16px;padding:4px 8px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:5px;font-size:13px;color:#4f545e;line-height:1.6}.ocr-replace-overlay{display:none}.ocr-replace-inline-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026,0 0 0 9999px #0000004d;width:340px;z-index:100;animation:ocrInlineSlideIn .2s cubic-bezier(.34,1.56,.64,1) forwards;opacity:0;overflow:hidden}@keyframes ocrInlineSlideIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.ocr-replace-inline-header{padding:14px 18px;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#fef3c7,#fde68a)}.ocr-replace-inline-title{font-size:14px;font-weight:600;color:#92400e;display:flex;align-items:center;gap:6px}.ocr-replace-inline-body{padding:16px 18px;background:#fff}.ocr-replace-inline-tip{margin:0 0 12px;font-size:13px;color:#4f545e;line-height:1.5}.ocr-replace-inline-preview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:10px}.ocr-inline-preview-label{font-size:11px;font-weight:600;color:#4f545e;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.ocr-inline-preview-text{font-size:13px;color:#111827;line-height:1.5;max-height:80px;overflow-y:auto;padding:6px;background:#fff;border-radius:4px;white-space:pre-wrap;word-break:break-word}.ocr-inline-preview-text::-webkit-scrollbar{width:4px}.ocr-inline-preview-text::-webkit-scrollbar-track{background:#f3f4f6;border-radius:2px}.ocr-inline-preview-text::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.ocr-replace-inline-footer{padding:12px 18px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:10px;background:#f9fafb}.ocr-inline-btn{padding:7px 14px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;border:none;outline:none;min-width:65px}.ocr-inline-btn-cancel{background:#fff;color:#4f545e;border:1px solid #d1d5db}.ocr-inline-btn-cancel:hover{background:#f3f4f6;border-color:#9ca3af;color:#374151}.ocr-inline-btn-confirm{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 2px 6px #6366f140}.ocr-inline-btn-confirm:hover{box-shadow:0 3px 8px #6366f159;transform:translateY(-1px)}.ocr-inline-btn-confirm:active{transform:translateY(0)}.context-menu{position:fixed;background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 4px 12px #00000026;min-width:140px;z-index:1001;padding:4px 0}.context-menu-item{padding:8px 16px;font-size:14px;color:#333;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.context-menu-item:hover{background:#f5f5f5}.context-menu-item.danger{color:#d32f2f}.context-menu-item.danger:hover{background:#ffebee}.context-menu-divider{height:1px;background:#e0e0e0;margin:4px 0}.notification-container{position:fixed;top:50px;right:20px;z-index:2000;pointer-events:none}.notification{display:flex;align-items:center;gap:12px;min-width:300px;max-width:400px;padding:12px 16px;margin-bottom:12px;background:#fff;border-radius:4px;box-shadow:0 4px 12px #00000026;pointer-events:auto;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:16px;font-weight:700;flex-shrink:0}.notification-message{flex:1;font-size:14px;color:#333;word-break:break-word}.notification-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:transparent;font-size:20px;color:#999;cursor:pointer;transition:color .2s;flex-shrink:0}.notification-close:hover{color:#333}.notification-success{border-left:4px solid #67c23a}.notification-success .notification-icon{color:#67c23a}.notification-warning{border-left:4px solid #e6a23c}.notification-warning .notification-icon{color:#e6a23c}.notification-error{border-left:4px solid #f56c6c}.notification-error .notification-icon{color:#f56c6c}.notification-info{border-left:4px solid #409eff}.notification-info .notification-icon{color:#409eff}.batch-management{padding:2px 20px;height:100vh;overflow-y:auto;background:#f8f9fa;position:relative}.batch-management:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(90deg,rgba(99,102,241,.03) 1px,transparent 1px),linear-gradient(rgba(99,102,241,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}.hero-highlight{background:linear-gradient(90deg,#5a6ad2,#007adf);background-clip:text;-webkit-text-fill-color:transparent;-webkit-background-clip:text}.batch-header{display:flex;justify-content:space-between;align-items:center;padding:0 20px;position:relative;z-index:50}@media (max-width: 768px){.batch-header{padding:0 12px;min-height:48px}.batch-header h1{font-size:16px;margin:0 8px}.batch-header h1 img.brand-logo{width:24px;height:24px;margin-right:6px}.global-nav{display:none}.user-menu-name{max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.batch-header h1{font-size:32px;color:#1f2937;margin:0;font-weight:700;letter-spacing:-.5px}.batch-header .header-actions{display:flex;align-items:center;gap:10px}.batch-header .user-info{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#f8f9fa;border-radius:8px}.batch-header .user-name{font-size:14px;font-weight:600;color:#1f2937}.batch-header .user-role{font-size:12px;color:#4f545e}.batch-header .btn-logout{padding:6px 12px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;font-size:12px;font-weight:500;color:#4f545e;transition:all .2s}.batch-header .btn-logout:hover{background:#f3f4f6;color:#374151;border-color:#d1d5db}.batch-header .btn.primary{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;box-shadow:0 4px 12px #6366f140;transition:all .3s;color:#fff;padding:12px 24px;font-weight:600}.batch-header .btn.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.batch-filter-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px;padding:0 20px;position:relative;z-index:1}.filter-search{flex:1;max-width:400px;position:relative}.search-input{width:100%;padding:12px 40px 12px 16px;border:1px solid #e5e7eb;border-radius:10px;font-size:14px;color:#1f2937;background:#fff;transition:all .2s;outline:none}.search-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.search-input::placeholder{color:#9ca3af}.search-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#9ca3af;pointer-events:none;transition:color .2s}.search-input:focus~.search-icon{color:#6366f1}.filter-buttons{display:flex;gap:8px;background:#f8f9fa;padding:4px;border-radius:10px}.filter-btn{padding:8px 16px;border:none;border-radius:7px;background:transparent;color:#4f545e;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.filter-btn:hover{color:#374151;background:#fff9}.filter-btn.active{background:#fff;color:#6366f1;font-weight:600;box-shadow:0 1px 3px #0000001a}.batch-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;height:400px;color:#6366f1}.loading-spinner{width:60px;height:60px;border:4px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}.batch-empty{display:flex;justify-content:center;align-items:center;height:300px;color:#9ca3af;font-size:16px;position:relative;z-index:1}.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:24px;padding:0 20px;margin-bottom:40px;position:relative;z-index:1}.batch-grid-item{display:flex;flex-direction:column;gap:12px}.batch-pagination{display:flex;justify-content:center;align-items:center;gap:12px;padding:30px 20px;position:relative;z-index:1}.pagination-btn{padding:10px 16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.pagination-btn:hover:not(:disabled){background:#f9fafb;border-color:#6366f1;color:#6366f1}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-pages{display:flex;gap:6px;align-items:center}.pagination-page{min-width:40px;height:40px;padding:0 12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.pagination-page:hover{background:#f9fafb;border-color:#6366f1;color:#6366f1}.pagination-page.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:transparent;box-shadow:0 2px 8px #6366f14d;font-weight:600}.pagination-ellipsis{color:#9ca3af;font-size:14px;padding:0 4px}.pagination-info{margin-left:12px;color:#4f545e;font-size:14px;white-space:nowrap}.batch-card{background:#fff;border-radius:16px;padding:20px;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d,0 10px 25px #0000000d;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.batch-card:before{content:"";position:absolute;top:0;left:0;right:0;height:50px;background:linear-gradient(90deg,#6366f1,#8b5cf6,#ec48e4) 0 0 / 100% 10% no-repeat;opacity:0;transition:opacity .3s;border-radius:16px 16px 0 0}.batch-card:hover:before{opacity:1}.batch-card:hover{transform:translateY(-4px);box-shadow:0 4px 6px #0000000d,0 20px 40px #6366f126;border-color:#c7d2fe}.batch-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;position:relative;z-index:10}.batch-card-title{font-size:18px;color:#111827;margin:0;font-weight:700;letter-spacing:-.3px;line-height:1.3;min-height:2.6em;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.batch-card-status{font-size:12px;font-weight:600;padding:4px 8px;border-radius:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.batch-card-header-right{display:flex;align-items:center;gap:8px;position:relative;z-index:11}.batch-more-menu{position:relative;z-index:12}.batch-more-menu.open{z-index:10000}.batch-more-btn{background:transparent;border:none;cursor:pointer;padding:4px 6px;border-radius:6px;color:#4f545e;display:flex;align-items:center;justify-content:center;transition:all .2s;min-width:28px;min-height:28px;position:relative;z-index:13}.batch-more-btn:hover{background:#f3f4f6;color:#374151}.batch-more-btn svg{width:18px;height:18px}.batch-more-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #0003;border:1px solid #e5e7eb;overflow:hidden;min-width:140px;z-index:10000}.batch-more-item{display:block;width:100%;padding:12px 16px;background:none;border:none;text-align:left;cursor:pointer;font-size:14px;color:#374151;transition:all .2s;white-space:nowrap;font-weight:500}.batch-more-item:hover{background:#f3f4f6}.batch-more-item.danger{color:#dc2626;font-weight:600}.batch-more-item.danger:hover{background:#fef2f2;color:#b91c1c}.batch-card-description{color:#4f545e;font-size:14px;margin:0 0 20px;line-height:1.6;position:relative;z-index:1}.batch-video-thumbs{display:flex;gap:8px;position:relative;z-index:1}.batch-video-thumb{flex:1;min-width:0;height:180px;border-radius:8px;overflow:hidden;background:#0f0f0f}.batch-video-thumb video,.batch-video-thumb img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block;pointer-events:none}.batch-video-thumb.empty{display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:13px;background:#f3f4f6}.batch-card-info{display:flex;gap:20px;margin-bottom:16px;position:relative;z-index:1}.batch-info-item{display:flex;gap:6px;font-size:14px}.batch-info-label{color:#9ca3af}.batch-info-value{color:#6366f1;font-weight:700}.batch-card-progress{height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden;margin-bottom:16px;position:relative;z-index:1}.batch-card-progress-bar{height:100%;background:linear-gradient(90deg,#6366f1,#8b5cf6);transition:width .5s cubic-bezier(.4,0,.2,1);position:relative}.batch-card-progress-bar:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.batch-card-meta{display:flex;justify-content:space-between;font-size:12px;color:#9ca3af;margin-bottom:20px;position:relative;z-index:1}.batch-card-actions{display:flex;flex-direction:column;gap:10px;position:relative;z-index:1}.batch-card-actions-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.batch-card-actions .btn{transition:all .3s;border-radius:8px;padding:8px 10px;font-family:inherit}.batch-card-actions .btn.primary,.ops-cell .btn.primary{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;box-shadow:0 2px 8px #6366f140;color:#fff}.batch-card-actions .btn.primary:hover{box-shadow:0 4px 12px #6366f166;transform:translateY(-1px)}.batch-card-actions .btn:not(.primary):not(.danger){background:#f9fafb;border:1px solid #e5e7eb;color:#374151}.batch-card-actions .btn:not(.primary):not(.danger):hover{background:#f3f4f6;border-color:#d1d5db}.batch-card-actions .btn.danger{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.batch-card-actions .btn.danger:hover{background:#fee2e2;border-color:#fca5a5}.shortcuts-panel-container{position:relative}.shortcuts-btn{padding:8px 10px!important;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:5px}.shortcuts-btn:hover{background:#f3f4f6}.shortcuts-btn svg{color:#1b1919;transition:all .2s}.shortcuts-btn:hover svg{color:#0f0202!important}.merge-polygons-btn{padding:8px 10px!important;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:5px;margin-right:-6px}.merge-polygons-btn:hover:not(:disabled){background:#f3f4f6}.merge-polygons-btn svg{color:#1b1919;transition:all .2s}.merge-polygons-btn:hover:not(:disabled) svg{color:#0f0202!important}.merge-polygons-btn:disabled{cursor:not-allowed;opacity:.35}.region-op-btn.active-add{background:#22c55e26}.region-op-btn.active-add svg{color:#16a34a!important}.region-op-btn.active-sub{background:#ef444426}.region-op-btn.active-sub svg{color:#dc2626!important}.undo-btn{padding:5px 8px!important;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:5px;margin-right:-6px}.undo-btn:hover:not(:disabled){background:#f3f4f6}.undo-btn svg{color:#191a1d;transition:all .2s}.undo-btn:hover:not(:disabled) svg{color:#1b1919!important}.undo-btn:disabled{cursor:not-allowed;opacity:.35}.fill-toggle-btn{padding:5px 8px!important;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer;border-radius:5px;margin-right:-6px}.fill-toggle-btn:hover{background:#f3f4f6}.fill-toggle-btn svg{color:#191a1d;transition:all .2s}.fill-toggle-btn:hover svg{color:#0d9f6e!important}.fill-toggle-btn.active{background:#10b98126}.fill-toggle-btn.active svg{color:#0d9f6e}.shortcuts-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026;border:1px solid #e5e7eb;z-index:1000;animation:slideInDown .2s ease-out}.shortcuts-header{padding:14px 18px;border-bottom:1px solid #e5e7eb}.shortcuts-header h3{font-size:15px;font-weight:600;color:#1f2937;margin:0}.shortcuts-body{padding:10px 0}.shortcut-item{display:flex;align-items:center;justify-content:space-between;padding:8px 18px}.shortcut-item:hover{background:#f9fafb}.shortcut-key{font-family:SF Mono,Monaco,Courier New,monospace;font-size:12px;font-weight:600;color:#374151;background:#f3f4f6;padding:4px 8px;border-radius:6px;border:1px solid #e5e7eb}.shortcut-desc{font-size:13px;color:#4f545e}.settings-panel-container{position:relative;margin-left:-10px}.settings-btn{padding:8px 10px!important;display:flex;align-items:center;justify-content:center}.settings-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;background:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026;border:1px solid #e5e7eb;z-index:1000;animation:slideInDown .2s ease-out}@keyframes slideInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.settings-header{padding:16px 20px;border-bottom:1px solid #e5e7eb}.settings-header h3{font-size:16px;font-weight:600;color:#1f2937;margin:0}.settings-body{padding:12px 0;max-height:400px;overflow-y:auto}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;transition:background .2s}.setting-item:hover{background:#f9fafb}.setting-info{flex:1;display:flex;flex-direction:column;gap:4px}.setting-label{font-size:13px;color:#000}.setting-desc{font-size:12px;color:#4f545e}.setting-select{padding:6px 10px;font-size:13px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;cursor:pointer;min-width:100px;transition:border-color .2s,box-shadow .2s}.setting-select:hover{border-color:#9ca3af}.setting-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.settings-footer{padding:12px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;border-radius:0 0 12px 12px}.settings-tip{font-size:12px;color:#4f545e}.settings-asr-config{display:flex;flex-direction:column;gap:8px;padding:12px 0 4px;border-top:1px solid #e5e7eb;margin:8px}.settings-asr-title{font-size:13px;font-weight:600;color:#374151}.settings-asr-desc{font-size:12px;color:#4f545e;margin-bottom:12px;line-height:1.5}.settings-asr-desc ul{margin:4px 0;padding-left:16px}.settings-asr-config input{padding:7px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px}.settings-asr-config input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.settings-asr-config .btn{align-self:flex-end;padding:6px 14px;font-size:13px}.switch{position:relative;display:inline-block;width:40px;height:19px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#d1d5db;transition:.3s;border-radius:24px}.slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 1px 3px #0003}input:checked+.slider{background:linear-gradient(135deg,#6366f1,#4f46e5)}input:checked+.slider:before{transform:translate(20px)}.slider:hover{opacity:.9}.shared-edge-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:6px;-webkit-user-select:none;user-select:none;margin-right:-10px}.shared-edge-text{font-size:14px;font-weight:500;color:#1f2937}.shared-edge-switch{position:relative;display:inline-block;width:42px;height:20px;flex-shrink:0}.shared-edge-switch input{opacity:0;width:0;height:0}.shared-edge-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#fff;border:2px solid #1b191956;border-radius:28px;transition:.3s;box-sizing:border-box}.shared-edge-slider p{font-size:9px;margin:1px 0 0 16px;white-space:nowrap;transition:margin .3s ease-out}.shared-edge-slider:before{position:absolute;content:"";height:12px;width:12px;left:2px;top:15%;background-color:#1b191959;border-radius:50%;transition:.3s;box-sizing:border-box}input:checked+.shared-edge-slider{background-color:#22c55e;border-color:#22c55e}input:checked+.shared-edge-slider p{color:#fff;margin:1px 0 0 5px;transition:margin .3s ease-out}input:checked+.shared-edge-slider:before{background-color:#fff;transform:translate(24px);border-color:transparent}.setting-sub-item{background:#f9fafb;border-left:3px solid #6366f1;padding:12px 20px;display:block}.setting-sub-item .setting-info{margin-bottom:12px}.label-fields-group{display:flex;flex-direction:row;align-items:center;gap:16px}.label-field-option{display:flex;align-items:center;gap:8px;font-size:13px;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none}.label-field-option input[type=checkbox]{width:15px;height:15px;accent-color:#6366f1;cursor:pointer;margin:0}.setting-slider-wrapper{width:100%;display:flex;flex-direction:column;gap:8px}.setting-range{width:100%;height:6px;border-radius:3px;background:#e5e7eb;outline:none;cursor:pointer}.setting-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#4f46e5);cursor:pointer;box-shadow:0 2px 4px #0003;transition:transform .2s}.setting-range::-webkit-slider-thumb:hover{transform:scale(1.2)}.setting-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#4f46e5);cursor:pointer;border:none;box-shadow:0 2px 4px #0003;transition:transform .2s}.setting-range::-moz-range-thumb:hover{transform:scale(1.2)}.setting-range::-webkit-slider-runnable-track{width:100%;height:6px;border-radius:3px;background:#e5e7eb}.setting-range::-moz-range-track{width:100%;height:6px;border-radius:3px;background:#e5e7eb}.setting-range-labels{display:flex;justify-content:space-between;font-size:11px;color:#9ca3af;padding:0 2px}.api-config-panel-container{margin-right:-10px;position:relative}.api-config-btn{padding:8px 10px!important;display:flex;align-items:center;justify-content:center;position:relative;border:none;background:transparent;border-radius:5px;cursor:pointer;margin-left:-12px}.api-config-btn:hover{background:#f3f4f6}.api-config-btn svg{color:#1b1919;transition:all .2s}.api-config-btn:hover svg{color:#08080d}.api-config-btn.configured svg{color:#191818}.api-status-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;background:#6366f1;border-radius:50%;border:2px solid #fff;display:none}.api-config-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;background:#fff;border-radius:12px;box-shadow:0 10px 25px #00000026;border:1px solid #e5e7eb;z-index:1000;animation:slideInDown .2s ease-out}.api-config-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb}.api-config-header h3{font-size:16px;font-weight:600;color:#1f2937;margin:0}.api-status-badge{font-size:12px;font-weight:500;color:#10b981;background:#d1fae5;padding:4px 10px;border-radius:12px}.api-config-body{padding:16px 20px}.api-config-item{margin-bottom:16px}.api-config-item:last-child{margin-bottom:0}.api-config-label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:8px}.api-config-input{width:100%;padding:10px 12px;font-size:14px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#374151;transition:all .2s}.api-config-input:hover{border-color:#9ca3af}.api-config-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.api-config-input::placeholder{color:#9ca3af}.api-config-select{width:100%;padding:10px 36px 10px 12px;font-size:14px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#374151;cursor:pointer;transition:all .2s;-webkit-appearance:none;-moz-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='%236b7280' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.api-config-select:hover{border-color:#9ca3af}.api-config-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.api-config-hint{display:flex;align-items:center;gap:6px;margin-top:8px;padding:8px 10px;background:#f9fafb;border-radius:6px;font-size:12px;color:#4f545e;line-height:1.4}.api-config-hint svg{flex-shrink:0;color:#9ca3af}.api-config-hint span{word-break:break-all}.api-config-key-wrapper{position:relative;display:flex;align-items:center}.api-config-key-wrapper .api-config-input{padding-right:40px}.api-key-toggle{position:absolute;right:8px;background:none;border:none;padding:6px;cursor:pointer;color:#4f545e;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.api-key-toggle:hover{background:#f3f4f6;color:#374151}.api-config-footer{padding:12px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;border-radius:0 0 12px 12px}.api-config-tip{font-size:12px;color:#4f545e;margin:0}.frame-axis-wrapper{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;background:#fff;border-top:1px solid #e0e0e0;flex-shrink:0}.frame-axis-label{font-size:11px;color:#999;white-space:nowrap;flex-shrink:0}.frame-axis-container{display:flex;gap:3px;overflow-x:auto;flex:1;scrollbar-width:thin;scrollbar-color:#c9c9c9 transparent;padding:4px 0}.frame-axis-container::-webkit-scrollbar{height:4px}.frame-axis-container::-webkit-scrollbar-track{background:transparent}.frame-axis-container::-webkit-scrollbar-thumb{background:#c9c9c9;border-radius:2px}.frame-cell{width:24px;height:24px;flex-shrink:0;border:2px solid #e0e0e0;border-radius:4px;background:#f5f5f5;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .15s,background .15s}.frame-cell:hover{border-color:#5550e9;background:#5550e935}.frame-cell.active{border-color:#5550e9;border-width:2px;background:#5550e9}.frame-num{font-size:10px;line-height:1;color:#777;margin-top:-2px}.frame-cell:hover .frame-num{color:#5550e9}.frame-cell.active .frame-num{color:#fff}.frame-dot{position:absolute;bottom:1px;left:50%;transform:translate(-50%);width:12px;height:3px;border-radius:2px;background:#00ff37;display:block}.frame-dot.muted{background:transparent}.frame-axis-info{font-size:11px;color:#999;white-space:nowrap;flex-shrink:0;min-width:40px;text-align:right}#nprogress .bar{background:#4f46e5;height:1.5px;z-index:10000}#nprogress .peg{box-shadow:0 0 10px #4f46e5,0 0 5px #4f46e5}
