*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-sans);background:var(--bg-color);color:var(--text-color);font-size:11px;overflow:hidden}#toolbar{z-index:100;background:var(--toolbar-bg);backdrop-filter:blur(8px);border-radius:var(--radius-round);box-shadow:var(--shadow-md);white-space:nowrap;align-items:center;gap:4px;max-width:calc(100vw - 20px);padding:6px 12px;display:flex;position:fixed;top:10px;left:50%;overflow-x:auto;transform:translate(-50%)}#toolbar::-webkit-scrollbar{display:none}#toolbar{scrollbar-width:none}.tb-sep{background:var(--separator);width:1px;height:20px;margin:0 4px}.tb-btn{border-radius:var(--radius-2xl);color:var(--secondary-text);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;padding:5px 12px;font-size:12px}.tb-btn.active{background:var(--color-primary-dark);color:#fff}.tb-btn.panel-btn{background:var(--item-bg);color:var(--input-text)}.tb-btn.panel-btn.active{background:var(--color-primary-dark);color:#fff}.tb-theme{background:var(--separator);cursor:pointer;color:gold;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;display:flex}#canvas-container{position:fixed;inset:0}#canvas-container canvas{display:block}#axis-indicator{pointer-events:none;z-index:100;width:100px;height:100px;position:fixed;bottom:20px;right:20px}#axis-indicator canvas{display:block}.panel{background:var(--panel-bg);backdrop-filter:blur(8px);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--panel-border);flex-direction:column;min-width:240px;display:flex;position:fixed;overflow:hidden}.panel.hidden{display:none}.panel-header{border-bottom:1px solid var(--panel-border);cursor:move;user-select:none;white-space:nowrap;justify-content:space-between;align-items:center;padding:10px 14px 8px;display:flex}.panel-title{color:var(--text-color);font-size:11px;font-weight:600}.panel-actions{gap:4px;display:flex}.panel-icon-btn{cursor:pointer;border-radius:var(--radius-sm);width:22px;height:22px;color:var(--secondary-text);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;display:flex}.panel-icon-btn:hover{background:var(--hover-bg);color:var(--text-color)}.panel-body{flex-direction:column;flex:1;padding:12px 14px;display:flex;overflow-y:auto}#panel-file{width:298px;max-height:calc(100vh - 80px);top:60px;left:14px}#panel-file .panel-body{flex-direction:column;display:flex}#panel-file .drop-zone{flex-direction:column;flex:1;display:flex}#panel-joints{width:298px;max-height:calc(100vh - 80px);top:360px;left:14px}#panel-actuators{width:320px;max-height:calc(100vh - 80px);top:60px;left:330px}#panel-structure{width:360px;max-height:calc(50vh - 50px);top:60px;right:14px}#panel-structure .panel-body{padding:0}#panel-edit{width:280px;max-height:calc(50vh - 100px);top:calc(50vh + 20px);right:14px}#panel-edit .panel-body{flex-direction:column;display:flex}#panel-collision{width:240px;max-height:600px;top:60px;right:290px}#info-tooltip{background:var(--tooltip-bg);backdrop-filter:blur(8px);border:1px solid var(--panel-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--text-color);pointer-events:none;z-index:1000;max-width:280px;padding:10px 12px;font-size:10px;line-height:1.5;display:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}#info-tooltip.visible{display:block}#motor-hover-guide{z-index:1099;pointer-events:none;width:100vw;height:100vh;display:none;position:fixed;inset:0;overflow:visible}#motor-hover-guide.visible{display:block}.motor-hover-guide-backdrop,.motor-hover-guide-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.motor-hover-guide-backdrop{stroke:color-mix(in srgb, var(--panel-bg) 78%, transparent);stroke-width:5px}.motor-hover-guide-line{stroke:#ff7a00;stroke-width:1.5px}.motor-hover-guide-anchor{fill:var(--panel-bg);stroke:#ff7a00;stroke-width:2px;vector-effect:non-scaling-stroke}#motor-hover-tooltip{z-index:1100;border:1px solid color-mix(in srgb, #ff7a00 65%, var(--panel-border));background:var(--panel-bg);min-width:150px;max-width:260px;color:var(--text-color);box-shadow:var(--shadow-lg);pointer-events:none;border-radius:7px;padding:9px 11px;line-height:1.45;display:none;position:fixed}#motor-hover-tooltip.visible{display:block}.motor-hover-kicker{color:var(--secondary-text);letter-spacing:.08em;font-size:9px;font-weight:650}.motor-hover-model{color:#ff7a00;font:700 13px/1.3 var(--font-family-mono)}.motor-hover-joint{margin-top:4px;font-size:11px;font-weight:600}.motor-hover-variant{color:var(--secondary-text);margin-top:2px;font-size:10px}#statusbar{background:var(--panel-bg);backdrop-filter:blur(4px);border-top:1px solid var(--panel-border);height:28px;color:var(--secondary-text);z-index:50;justify-content:center;align-items:center;gap:20px;font-size:11px;display:flex;position:fixed;bottom:0;left:0;right:0}.status-item{align-items:center;gap:4px;display:flex}.status-key{color:var(--color-primary);font-weight:600}#topbar-nav{z-index:100;background:var(--toolbar-bg);backdrop-filter:var(--toolbar-blur,blur(12px));border:1px solid var(--panel-border);white-space:nowrap;border-top:none;border-radius:0 0 12px 12px;justify-content:flex-start;align-items:center;gap:2px;height:40px;padding:0 20px;display:none;position:fixed;top:0;left:0;right:0;overflow-x:auto;box-shadow:0 1px 4px #0000001f}#topbar-nav::-webkit-scrollbar{display:none}#topbar-nav{scrollbar-width:none}#topbar-nav.visible{display:flex}#topbar-nav:after{content:"";background:linear-gradient(to right, transparent, var(--toolbar-bg,#fffffff2));pointer-events:none;flex-shrink:0;width:32px;position:sticky;top:0;bottom:0;right:0}.nav-logo{color:var(--text-color);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;min-width:28px;padding:4px 10px;font-size:13px;font-weight:700;display:flex}.nav-logo-icon{flex-shrink:0;font-size:18px}.nav-logo-text{flex-shrink:1;min-width:0;overflow:hidden}.tb-sep{background:var(--separator);flex-shrink:0;width:1px;height:20px;margin:0 3px}.robot-selector{cursor:pointer;color:var(--text-color);white-space:nowrap;background:linear-gradient(135deg,#2979ff1a,#2979ff0a);border:1px solid #2979ff40;border-radius:14px;flex-shrink:1;align-items:center;gap:4px;min-width:60px;max-width:180px;padding:4px 8px 4px 6px;font-size:12px;transition:all .15s;display:flex;position:relative;overflow:hidden}.robot-selector:hover{border-color:var(--color-primary);background:linear-gradient(135deg,#2979ff29,#2979ff14)}.robot-selector-thumb{background:linear-gradient(135deg,#4b5563,#1f2937);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;display:flex}.robot-selector-info{flex-direction:column;gap:0;min-width:0;line-height:1.2;display:flex}.robot-selector-name{text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.robot-selector-meta{color:var(--secondary-text);text-overflow:ellipsis;font-size:10px;overflow:hidden}.robot-selector-arrow{color:var(--color-primary);flex-shrink:0;margin-left:4px;font-size:10px}.nav-tab{color:var(--secondary-text);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:18px;flex-shrink:0;align-items:center;gap:4px;padding:5px 8px;font-size:13px;font-weight:500;display:flex;overflow:visible}.nav-tab:hover{background:var(--hover-bg);color:var(--text-color)}.nav-tab.active{background:var(--color-primary-dark);color:#fff;box-shadow:0 2px 8px #2979ff4d}[data-theme=dark] .nav-tab.active{background:var(--color-primary);box-shadow:0 2px 8px #0e639c40}[data-theme=dark] .nav-tab{color:var(--secondary-text)}[data-theme=dark] .nav-tab:hover{color:var(--text-primary)}[data-theme=dark] .tb-btn{color:var(--secondary-text)}[data-theme=dark] .tb-btn:hover{color:var(--text-primary)}[data-theme=dark] #topbar-nav{box-shadow:0 1px 4px #0006}[data-theme=dark] .nav-logo{color:var(--text-primary)}[data-theme=dark] .robot-selector{color:var(--text-primary);border-color:#0e639c66}.nav-tab-icon{flex-shrink:0;font-size:14px}.nav-tab-label{flex-shrink:0;font-size:12px}.nav-sep{background:var(--separator);flex-shrink:0;width:1px;height:24px;margin:0 8px}.tb-badge{background:var(--color-danger);color:#fff;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:2px;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.nav-tab.active .tb-badge{color:#fff;background:#ffffff4d}.tb-btn{color:var(--secondary-text);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-radius:18px;flex-shrink:0;align-items:center;gap:4px;padding:5px 10px;font-size:13px;font-weight:500;display:flex}.tb-btn:hover{background:var(--hover-bg);color:var(--text-color)}.tb-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:auto}.tb-btn.icon-only{padding:5px 7px;font-size:14px}.user-menu-wrap{flex-shrink:0;position:relative;overflow:visible}.user-menu-btn{background:var(--item-bg);border:1px solid var(--panel-border);cursor:pointer;color:var(--text-color);white-space:nowrap;border-radius:16px;align-items:center;gap:4px;padding:4px 8px 4px 10px;font-size:12px;font-weight:500;display:flex}.user-menu-btn:hover{background:var(--hover-bg)}.user-avatar{color:#fff;background:#2979ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.user-role-tag{color:var(--color-primary);background:#2979ff26;border-radius:8px;padding:1px 6px;font-size:10px;font-weight:500}.user-dropdown{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-lg);z-index:1000;border-radius:12px;min-width:200px;padding:8px;display:none;position:fixed}.user-dropdown.visible{display:block}.user-dropdown-item{cursor:pointer;color:var(--text-color);border-radius:8px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;transition:background .12s;display:flex}.user-dropdown-item:hover{background:var(--hover-bg)}.user-dropdown-sep{background:var(--separator);height:1px;margin:4px 0}.admin-only.rbac-hidden,#panel-joints,#panel-actuators,#panel-structure,#panel-edit,#panel-collision,#panel-link-info,#info-tooltip,#statusbar,#axis-indicator{display:none!important}#viewer-iframe-container{z-index:97;display:none;position:fixed;inset:76px 0 0}#viewer-iframe-container iframe{border:none;width:100%;height:100%}#problem-list-view.mech-panel-overlay{background:var(--panel-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);z-index:98;border-radius:12px;flex-direction:column;width:380px;max-height:calc(100vh - 106px);padding:0;display:flex;inset:88px 12px auto auto;overflow:hidden;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f}#problem-list-view.mech-panel-overlay .pl-header{border-bottom:1px solid var(--panel-border);background:var(--item-bg);border-radius:12px 12px 0 0;flex-shrink:0;padding:12px 16px}#problem-list-view.mech-panel-overlay .pl-toolbar{flex-shrink:0;padding:8px 12px}#problem-list-view.mech-panel-overlay #problem-card-list{flex:1;min-height:0;padding:8px 12px;overflow-y:auto}#problem-list-view.mech-panel-overlay .pl-empty{padding:16px}#problem-modal{z-index:9998;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}#login-page{z-index:9999;background:linear-gradient(135deg,#1a1a2e 0%,var(--bg-primary) 50%,var(--color-primary-dark) 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}body.embedded-mode #toolbar,body.embedded-mode .panel,body.embedded-mode #axis-indicator,body.embedded-mode #rm-trigger,body.embedded-mode #dh-trigger,body.embedded-mode #user-bar,body.embedded-mode #topbar-nav,body.embedded-mode #problem-list-view,body.embedded-mode #login-page,body.embedded-mode #viewer-iframe-container{display:none!important}body.embedded-mode #canvas-container{display:block!important;position:fixed!important;inset:0!important}[data-theme=dark] .ace_gutter{background:var(--ace-gutter)!important;color:var(--secondary-text)!important}[data-theme=dark] .ace_scroller{background:var(--ace-bg)!important}.editor-highlight-line{z-index:20;background-color:#2979ff4d;position:absolute}.ace_changed_line{z-index:20;position:absolute;background:#6496ff4d!important}#joint-problem-panel{background:var(--panel-bg);border-style:solid;border-width:1px;border-color:var(--panel-border);border-right:1px solid var(--panel-border);z-index:9997;-webkit-backdrop-filter:blur(12px);border-radius:12px;flex-direction:column;width:400px;max-height:calc(100vh - 106px);transition:width .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,right .25s cubic-bezier(.4,0,.2,1),border-radius .25s;display:flex;position:fixed;top:88px;right:12px;overflow:hidden;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f}#joint-problem-panel.collapsed{width:32px;height:64px;min-height:64px;max-height:none;box-shadow:none;background:0 0;border:none;border-radius:0;top:50dvh;transform:translateY(-50%)}#joint-problem-panel.collapsed .panel-tab{width:32px;height:64px;min-height:64px;box-shadow:none;background:0 0;border:none;border-radius:0;justify-content:center;padding-top:0;position:relative}#joint-problem-panel.collapsed .panel-content,#joint-problem-panel.collapsed .tab-icon,#joint-problem-panel.collapsed .tab-title{display:none}#joint-problem-panel.collapsed .tab-badge{display:none!important}#joint-problem-panel.collapsed .edge-arrow{filter:drop-shadow(0 0 3px #ffffffe6)drop-shadow(0 0 1px #000c);pointer-events:none;border-top:6px solid #0000;border-bottom:6px solid #0000;border-right:8px solid #50555fe6;width:0;height:0;display:block;position:absolute;top:50%;right:4px;transform:translateY(-50%)}#joint-problem-panel.hidden{width:32px;height:64px;min-height:64px;max-height:none;box-shadow:none;cursor:pointer;z-index:9997;-webkit-backdrop-filter:none;background:0 0;border:none;border-radius:0;display:flex;top:50dvh;right:0;overflow:visible;transform:translateY(-50%)}#joint-problem-panel.hidden .panel-tab{width:32px;height:64px;min-height:64px;box-shadow:none;pointer-events:auto;z-index:9997;background:0 0;border:none;border-radius:0;justify-content:center;padding-top:0;position:relative}#joint-problem-panel.hidden:before,#joint-problem-panel.hidden .panel-tab:before{content:none}#joint-problem-panel .edge-arrow{display:none}#joint-problem-panel.hidden .edge-arrow{filter:drop-shadow(0 0 3px #ffffffe6)drop-shadow(0 0 1px #000c);pointer-events:none;z-index:9997;border-top:6px solid #0000;border-bottom:6px solid #0000;border-right:8px solid #50555fe6;width:0;height:0;display:block;position:absolute;top:50%;right:4px;transform:translateY(-50%)}#joint-problem-panel.hidden .tab-title{display:none}#joint-problem-panel.hidden .tab-icon{margin-bottom:0;display:none}#joint-problem-panel.hidden .tab-badge{display:none!important}#joint-problem-panel.hidden .panel-content{display:none}#joint-problem-panel:hover{box-shadow:0 12px 40px #0000002e,0 4px 12px #00000014}#joint-problem-panel.collapsed:hover{box-shadow:0 6px 20px #00000024,0 2px 6px #00000012}#joint-problem-panel.hidden:hover{box-shadow:none}#joint-problem-panel.hidden:hover .edge-arrow{border-right-color:#50555fe6}#joint-problem-panel .panel-tab{background:var(--panel-bg);border-right:1px solid var(--panel-border);cursor:pointer;z-index:1;border-radius:12px 0 0 12px;flex-direction:column;align-items:center;width:44px;height:100%;padding-top:12px;transition:background .15s;display:flex;position:absolute;top:0;left:0}#joint-problem-panel .panel-tab:hover{background:var(--hover-bg)}#joint-problem-panel .tab-icon{margin-bottom:8px;font-size:18px}#joint-problem-panel .tab-title{writing-mode:vertical-rl;color:var(--text-color);letter-spacing:2px;font-size:12px;font-weight:500}#joint-problem-panel .tab-badge{color:#fff;background:#f44336;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:600;display:flex;position:absolute;top:8px;right:8px}#joint-problem-panel .panel-content{flex-direction:column;flex:1;min-height:0;margin-left:44px;display:flex;overflow:hidden}#joint-problem-panel .panel-header{border-bottom:1px solid var(--panel-border);background:var(--item-bg);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}#joint-problem-panel .panel-header-title{color:var(--text-color);font-size:14px;font-weight:600}#joint-problem-panel .panel-header-joint{color:var(--primary-text);margin-left:8px;font-size:12px}#joint-problem-panel .panel-header-actions{gap:4px;display:flex}#joint-problem-panel .panel-body{flex:1;min-height:0;padding:12px;display:block;overflow-y:auto}#joint-problem-panel .panel-footer{border-top:1px solid var(--panel-border);gap:8px;padding:12px 16px;display:flex}#joint-problem-panel .panel-footer .btn{border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);border:none;flex:1;padding:10px;font-size:12px;font-weight:500}#joint-problem-panel .panel-footer .btn-primary{background:var(--color-primary);color:#fff}#joint-problem-panel .panel-footer .btn-primary:hover{background:var(--color-primary-hover)}#joint-problem-panel .panel-footer .btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text)}#joint-problem-panel .panel-footer .btn-secondary:hover{filter:brightness(1.1)}.jpp-empty-state{text-align:center;color:var(--secondary-text);padding:40px 20px}.jpp-empty-state .empty-icon{margin-bottom:12px;font-size:48px}.jpp-empty-state .empty-text{font-size:13px}.jpp-source-section{border:1px solid var(--panel-border);border-radius:var(--radius-lg);background:var(--panel-bg);position:relative;overflow:hidden}.jpp-source-section:before{content:"";z-index:1;width:4px;position:absolute;inset:0 auto 0 0}.jpp-source-section.internal-source:before{background:var(--color-primary)}.jpp-source-section.after-sales-source:before{background:var(--color-warning)}.jpp-source-section.internal-source{border-color:color-mix(in srgb, var(--color-primary) 42%, var(--panel-border))}.jpp-source-section.after-sales-source{border-color:color-mix(in srgb, var(--color-warning) 48%, var(--panel-border))}.jpp-source-section+.jpp-source-section{margin-top:10px}.jpp-source-section>summary{cursor:pointer;background:var(--item-bg);color:var(--secondary-text);padding:10px 12px 10px 15px;font-size:11px;font-weight:600;list-style:none}.jpp-source-section>summary>span{justify-content:space-between;align-items:center;gap:10px;padding-right:12px;display:flex}.jpp-source-section>summary strong{color:var(--text-color);font-size:12px;font-weight:590}.jpp-source-section>summary small{color:var(--secondary-text);font-size:10px;font-weight:510}.jpp-source-section.internal-source>summary{background:color-mix(in srgb, var(--color-primary) 8%, var(--item-bg))}.jpp-source-section.after-sales-source>summary{background:color-mix(in srgb, var(--color-warning) 10%, var(--item-bg))}.jpp-source-section>summary::-webkit-details-marker{display:none}.jpp-source-section>summary:after{content:"›";float:right;transition:transform .15s;transform:rotate(90deg)}.jpp-source-section:not([open])>summary:after{transform:rotate(0)}.jpp-source-content{padding:8px}.jpp-section-empty{text-align:center;color:var(--hint-text);padding:14px 8px;font-size:11px}.jpp-cluster-list{gap:8px;display:grid}.jpp-subsection-title{color:var(--secondary-text);padding:4px 2px 6px;font-size:10px;font-weight:590}.jpp-subsection-title small{color:var(--hint-text);font-size:9px;font-weight:510}.jpp-manual-after-sales{margin-bottom:10px}.jpp-cluster-card{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:8px;position:relative;overflow:hidden}.jpp-cluster-select{z-index:2;place-items:center;display:grid;position:absolute;top:15px;left:8px}.jpp-cluster-select input{width:15px;height:15px;accent-color:var(--color-primary)}.jpp-cluster-main{padding-left:32px!important}.jpp-binding-todos,.jpp-batch-toolbar{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:8px;align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;display:flex}.jpp-binding-todos div{flex-direction:column;min-width:0;margin-right:auto;display:flex}.jpp-binding-todos small{color:var(--secondary-text);font-size:10px}.jpp-binding-todos button,.jpp-batch-toolbar button{border:1px solid var(--panel-border);color:var(--secondary-text);cursor:pointer;background:0 0;border-radius:6px;padding:5px 8px}.jpp-batch-toolbar{z-index:3;display:none;position:sticky;top:0}.jpp-batch-toolbar.active{display:flex}.jpp-batch-toolbar span{margin-right:auto;font-size:11px}.jpp-batch-toolbar .primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.jpp-binding-todos button:disabled,.jpp-batch-toolbar button:disabled{opacity:.45;cursor:not-allowed}.jpp-cluster-card.selected{border-color:var(--color-primary)}.jpp-cluster-main{width:100%;color:var(--text-color);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;display:grid}.jpp-cluster-main:hover{background:var(--hover-bg)}.jpp-cluster-id{color:var(--primary-text);font:600 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.jpp-cluster-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.jpp-cluster-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.jpp-cluster-copy small{color:var(--secondary-text);font-size:10px}.jpp-cluster-count{color:var(--primary-text);font-size:16px;font-weight:600}.jpp-binding-status{color:var(--secondary-text);border:1px solid var(--panel-border);border-radius:999px;grid-column:2/4;justify-self:start;padding:2px 7px;font-size:9px}.jpp-binding-status.active{color:var(--color-success)}.jpp-binding-status.invalid{color:var(--color-danger)}.jpp-cluster-loading{color:var(--secondary-text);border-top:1px solid var(--panel-border);padding:10px;font-size:11px}.jpp-cluster-detail{border-top:1px solid var(--panel-border);background:var(--panel-bg);padding:9px}.jpp-cluster-binding-tools{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:7px;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:9px;padding:8px;display:flex}.jpp-cluster-binding-tools>div{gap:2px;min-width:0;display:grid}.jpp-cluster-binding-tools span{color:var(--hint-text);font-size:9px}.jpp-cluster-binding-tools strong{color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:510;overflow:hidden}.jpp-cluster-binding-tools small{color:var(--secondary-text);overflow-wrap:anywhere;font:9px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.jpp-rebind-btn{border:1px solid var(--color-primary);color:var(--primary-text);cursor:pointer;background:0 0;border-radius:5px;flex:none;padding:5px 8px;font-size:10px}.jpp-rebind-btn:hover{background:var(--hover-bg)}.jpp-cluster-summary{gap:6px;margin-bottom:8px;display:grid}.jpp-cluster-summary div,.jpp-record-detail div{gap:2px;display:grid}.jpp-cluster-summary span,.jpp-record-detail span{color:var(--hint-text);font-size:9px}.jpp-cluster-summary strong,.jpp-record-detail strong{color:var(--text-color);font-size:11px;font-weight:500;line-height:1.45}.jpp-repair-list{gap:5px;display:grid}.jpp-repair-record{border:1px solid var(--panel-border);border-radius:6px;overflow:hidden}.jpp-repair-record>button{background:var(--item-bg);width:100%;color:var(--text-color);text-align:left;cursor:pointer;border:0;flex-direction:column;gap:2px;padding:7px 8px;display:flex}.jpp-repair-record>button:hover{background:var(--hover-bg)}.jpp-repair-record>button span{font-size:11px;font-weight:500}.jpp-repair-record>button small{color:var(--secondary-text);font-size:9px}.jpp-record-detail{background:var(--panel-bg);border-top:1px solid var(--panel-border);gap:7px;padding:8px;display:grid}.step-rebind-selecting{z-index:1200;border:1px solid color-mix(in srgb, var(--color-primary) 55%, transparent);background:var(--panel-bg);max-width:calc(100vw - 32px);color:var(--text-color);box-shadow:var(--shadow-lg);border-radius:8px;align-items:center;gap:12px;padding:9px 12px;font-size:12px;display:flex;position:fixed;top:86px;left:50%;transform:translate(-50%)}.step-rebind-selecting strong{color:var(--primary-text);font-weight:590}.step-rebind-selecting button{color:var(--secondary-text);cursor:pointer;background:0 0;border:0}.step-rebind-modal{width:560px;max-width:calc(100vw - 32px)}.step-rebind-preview-body{gap:12px;padding:18px 20px;display:grid}.step-rebind-impact{color:var(--secondary-text);background:#7170ff14;border:1px solid #7170ff59;border-radius:7px;padding:10px 12px;font-size:12px}.step-rebind-impact strong{color:var(--primary-text)}.step-rebind-compare{grid-template-columns:1fr 1fr;gap:10px;display:grid}.step-rebind-card{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:7px;min-width:0;padding:11px}.step-rebind-card span{color:var(--hint-text);margin-bottom:6px;font-size:10px;display:block}.step-rebind-card strong{color:var(--text-color);font-size:12px;font-weight:510;display:block}.step-rebind-card code{color:var(--secondary-text);overflow-wrap:anywhere;white-space:normal;margin-top:5px;font-size:10px;display:block}.step-rebind-meta{color:var(--secondary-text);font-size:11px}.step-rebind-preview-error{border:1px solid var(--color-danger);color:var(--color-danger);border-radius:6px;margin:0 20px 12px;padding:8px 10px;font-size:11px;display:none}.step-rebind-actions{justify-content:flex-end;gap:8px;display:flex}.detail-panel{width:var(--detail-expanded-width,400px);background:var(--panel-bg);border-left:1px solid var(--panel-border);z-index:99;flex-direction:column;height:calc(100vh - 76px);transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:76px;right:0;overflow:hidden;box-shadow:-4px 0 20px #00000026}.detail-panel[data-position=left]{border-left:none;border-right:1px solid var(--panel-border);left:0;right:auto;box-shadow:4px 0 20px #00000026}.detail-panel.collapsed{width:var(--detail-collapsed-width,44px)}.detail-panel.collapsed .detail-panel-content{opacity:0;pointer-events:none}.detail-panel.hidden{display:none}.detail-panel:not(.collapsed):not(.hidden) .detail-panel-content{opacity:1;pointer-events:auto;transition:opacity .2s .15s}.detail-panel-tab{background:var(--panel-bg);border-right:1px solid var(--panel-border);cursor:pointer;z-index:1;flex-direction:column;flex-shrink:0;align-items:center;width:44px;height:100%;padding-top:12px;display:flex;position:absolute;top:0;left:0}.detail-panel[data-position=left] .detail-panel-tab{border-right:none;border-left:1px solid var(--panel-border);left:auto;right:0}.detail-panel-tab:hover{background:var(--hover-bg)}.detail-panel-tab-icon{margin-bottom:8px;font-size:18px}.detail-panel-tab-title{writing-mode:vertical-rl;color:var(--text-color);letter-spacing:2px;font-size:12px;font-weight:500}.detail-panel-content{opacity:1;flex-direction:column;flex:1;margin-left:44px;display:flex;overflow:hidden}.detail-panel[data-position=left] .detail-panel-content{margin-left:0;margin-right:44px}.detail-panel-header{border-bottom:1px solid var(--panel-border);background:var(--item-bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.detail-panel-header-title{color:var(--text-color);font-size:14px;font-weight:600}.detail-panel-header-actions{gap:4px;display:flex}.detail-panel-btn-icon{width:28px;height:28px;color:var(--secondary-text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.detail-panel-btn-icon:hover{background:var(--hover-bg);color:var(--text-color)}.detail-panel-body{flex:1;padding:12px;overflow-y:auto}.detail-panel-inline-form{border-top:1px solid var(--panel-border);background:var(--panel-bg);flex-shrink:0}.detail-panel-footer{border-top:1px solid var(--panel-border);flex-shrink:0;gap:8px;padding:12px 16px;display:flex}.detail-panel-footer .btn{border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);border:none;flex:1;padding:10px;font-size:12px;font-weight:500}.detail-panel-footer .btn-primary{background:var(--color-primary);color:#fff}.detail-panel-footer .btn-primary:hover{background:var(--color-primary-hover)}.detail-panel-footer .btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text)}.detail-panel-footer .btn-secondary:hover{filter:brightness(1.1)}[data-theme=dark] .detail-panel-header{background:var(--bg-elevated);border-color:var(--border-color)}[data-theme=dark] .detail-panel-header-title{color:var(--text-primary)}[data-theme=dark] .detail-panel-body{background:var(--bg-primary)}[data-theme=dark] .detail-panel-tab{background:var(--bg-surface);border-color:var(--border-color)}[data-theme=dark] .detail-panel-tab .detail-panel-tab-title{color:var(--text-primary)}[data-theme=dark] .detail-panel-footer .btn-secondary{background:var(--btn-secondary-bg);color:var(--text-primary)}[data-theme=dark] .detail-panel-footer .btn-primary{background:var(--color-primary)}.detail-field{margin-bottom:12px}.detail-field:last-child{margin-bottom:0}.detail-field-row{gap:12px;margin-bottom:12px;display:flex}.detail-field-row .detail-field{flex:1;margin-bottom:0}.detail-label{color:var(--secondary-text);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:11px;font-weight:500;display:block}.detail-value{color:var(--text-color);font-size:13px;line-height:1.5}.detail-value-title{color:var(--primary-text);font-size:15px;font-weight:600}.detail-description{color:var(--secondary-text);background:var(--item-bg);white-space:pre-wrap;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.6}.detail-severity-badge{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.detail-status-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.detail-progress-bar{background:var(--border-color);vertical-align:middle;border-radius:3px;width:80px;height:6px;margin-right:8px;display:inline-block;overflow:hidden}.detail-progress-fill{background:var(--color-primary,#2979ff);border-radius:3px;height:100%;transition:width .3s}.detail-progress-text{color:var(--secondary-text);vertical-align:middle;font-size:12px}.detail-overdue{font-weight:600;color:var(--color-danger-dark)!important}.detail-info-tag{background:var(--item-bg);color:var(--secondary-text);border:1px solid var(--border-color);border-radius:4px;padding:2px 8px;font-size:11px;display:inline-block}.detail-info-tag-link{color:var(--color-primary,#2979ff);border-color:var(--color-primary,#2979ff);background:#2979ff14}.detail-blocker-badge{background:var(--color-danger-light);color:var(--color-danger-dark);border:1px solid var(--color-danger-light);border-radius:4px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}[data-theme=dark] .detail-description{background:#2a2a2a}[data-theme=dark] .detail-info-tag{border-color:var(--text-secondary);background:#2a2a2a}[data-theme=dark] .detail-blocker-badge{background:var(--color-danger-light);color:var(--color-danger-text);border-color:var(--color-danger-light)}.rbac-disabled{opacity:.4!important;cursor:not-allowed!important;pointer-events:none!important}.rbac-hidden{display:none!important}.rbac-readonly-hint{border-radius:var(--radius-lg);color:var(--color-warning);text-align:center;background:#ff980026;margin:8px 0;padding:8px 16px;font-size:11px}[data-theme=dark] #problem-list-view,[data-theme=dark] #requirements-view{background:var(--bg-primary)!important}[data-theme=dark] #problem-list-title,[data-theme=dark] #problem-modal-title,[data-theme=dark] #req-modal-title,[data-theme=dark] #import-modal-title,[data-theme=dark] #llm-review-title{color:var(--text-primary)!important}[data-theme=dark] #problem-modal h3,[data-theme=dark] #requirement-modal h3,[data-theme=dark] #import-modal h3,[data-theme=dark] #llm-review-modal h3{color:var(--text-primary)!important}[data-theme=dark] #problem-form label,[data-theme=dark] #requirement-form label{color:var(--text-secondary)!important}[data-theme=dark] #problem-title,[data-theme=dark] #problem-description,[data-theme=dark] #problem-severity,[data-theme=dark] #problem-status,[data-theme=dark] #problem-subcategory,[data-theme=dark] #problem-due-date,[data-theme=dark] #problem-joint,[data-theme=dark] #problem-assignee,[data-theme=dark] #req-title,[data-theme=dark] #req-description,[data-theme=dark] #req-priority,[data-theme=dark] #req-source{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] #delete-problem-btn,[data-theme=dark] #delete-req-btn,[data-theme=dark] #problem-submit-btn,[data-theme=dark] #req-submit-btn,[data-theme=dark] #import-confirm-btn,[data-theme=dark] #llm-review-distribute-btn,[data-theme=dark] #add-problem-btn,[data-theme=dark] #add-requirement-btn{background:var(--color-primary)!important}[data-theme=dark] #problem-empty-state,[data-theme=dark] #req-empty-state,[data-theme=dark] #problem-empty-state p,[data-theme=dark] #req-empty-state p{color:var(--text-secondary)!important}[data-theme=dark] .jpp-problem-item{background:var(--bg-elevated)!important}[data-theme=dark] .jpp-problem-title{color:var(--text-primary)!important}[data-theme=dark] .jpp-problem-meta{color:var(--text-secondary)!important}[data-theme=dark] #joint-problem-panel .panel-footer .btn-secondary{background:var(--btn-secondary-bg)!important;color:var(--text-primary)!important}[data-theme=dark] #joint-problem-panel .panel-footer .btn-primary{background:var(--color-primary)!important}[data-theme=dark] #joint-problem-panel .panel-header{background:var(--bg-elevated)!important;border-color:var(--border-color)!important}[data-theme=dark] #joint-problem-panel .panel-header-title{color:var(--text-primary)!important}[data-theme=dark] #joint-problem-panel .panel-body{background:var(--bg-primary)!important}[data-theme=dark] #joint-problem-panel .panel-tab{background:var(--bg-surface)!important;border-color:var(--border-color)!important}[data-theme=dark] #joint-problem-panel .panel-tab .tab-title{color:var(--text-primary)!important}[data-theme=dark] #report-table table,[data-theme=dark] #gantt-table table{background:var(--bg-surface)!important}[data-theme=dark] #report-table th,[data-theme=dark] #gantt-table th{background:var(--bg-elevated)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}[data-theme=dark] #report-table td,[data-theme=dark] #gantt-table td{color:var(--text-primary)!important;border-color:var(--border-color)!important}#link-tree-panel{background:var(--panel-bg);border-style:solid;border-width:1px;border-color:var(--panel-border);z-index:9997;-webkit-backdrop-filter:blur(12px);border-left:none;border-radius:0 12px 12px 0;flex-direction:row;width:min(360px,100vw - 24px);max-height:calc(100vh - 106px);transition:width .25s cubic-bezier(.4,0,.2,1),box-shadow .25s,left .25s cubic-bezier(.4,0,.2,1),border-radius .25s;display:flex;position:fixed;top:88px;left:0;overflow:hidden;box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f}#link-tree-panel.lt-visible{border-left:1px solid var(--panel-border);border-radius:12px;width:min(360px,100vw - 24px);left:12px}#link-tree-panel.lt-collapsed{border-left:1px solid var(--panel-border);border-radius:12px;width:44px;height:auto;min-height:52px;left:12px;box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000d}#link-tree-panel.lt-collapsed .lt-tab{height:52px;min-height:52px}#link-tree-panel.lt-collapsed .lt-content{display:none}#link-tree-panel.lt-hidden{cursor:pointer;z-index:9997;width:32px;height:64px;min-height:64px;max-height:none;top:50dvh;left:0;transform:translateY(-50%);box-shadow:none!important;-webkit-backdrop-filter:none!important;background:0 0!important;border:none!important;border-radius:0!important;overflow:visible!important}#link-tree-panel.lt-hidden .lt-tab{pointer-events:auto;z-index:9997;justify-content:center;width:32px;height:64px;min-height:64px;padding-top:0;position:relative;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important}#link-tree-panel.lt-hidden .lt-tab-title,#link-tree-panel.lt-hidden .lt-tab-icon,#link-tree-panel .edge-arrow{display:none}#link-tree-panel.lt-hidden .edge-arrow{filter:drop-shadow(0 0 3px #ffffffe6)drop-shadow(0 0 1px #000c);pointer-events:none;z-index:9997;border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:8px solid #50555ff2;width:0;height:0;display:block;position:absolute;top:50%;left:4px;transform:translateY(-50%)}#link-tree-panel.lt-hidden .lt-content{display:none}#link-tree-panel:hover{box-shadow:0 12px 40px #0000002e,0 4px 12px #00000014}#link-tree-panel.lt-collapsed:hover{box-shadow:0 6px 20px #00000024,0 2px 6px #00000012}#link-tree-panel.lt-hidden:hover{box-shadow:none}#link-tree-panel .lt-tab{background:var(--item-bg);border-right:1px solid var(--panel-border);cursor:pointer;z-index:1;border-radius:12px 0 0 12px;flex-direction:column;align-items:center;width:44px;height:100%;padding-top:12px;transition:background .15s;display:flex;position:absolute;top:0;left:0}#link-tree-panel .lt-tab:hover{background:var(--hover-bg)}#link-tree-panel .lt-tab-icon{margin-bottom:8px;font-size:18px}#link-tree-panel .lt-tab-title{writing-mode:vertical-rl;color:var(--text-color);letter-spacing:2px;font-size:12px;font-weight:500}#link-tree-panel .lt-content{flex-direction:column;flex:1;margin-left:44px;display:flex;overflow:hidden}#link-tree-panel .lt-header{border-bottom:1px solid var(--panel-border);background:var(--item-bg);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}#link-tree-panel .lt-header-title{color:var(--text-color);font-size:14px;font-weight:600}#link-tree-panel .lt-header-actions{gap:4px;display:flex}#link-tree-panel .lt-body{flex:1;padding:8px 0;overflow-y:auto}.lt-link-item{cursor:pointer;color:var(--text-color);border-bottom:1px solid #0000;align-items:center;padding:6px 12px;font-size:13px;transition:background .15s;display:flex}.lt-link-item:hover{background:var(--hover-bg)}.lt-link-item.lt-selected{background:var(--selected-bg,#e3f2fd);border-left:3px solid var(--color-primary)}.lt-link-icon{flex-shrink:0;margin-right:8px;font-size:14px}.lt-link-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.lt-link-mesh-badge{background:var(--color-primary);color:#fff;border-radius:8px;flex-shrink:0;margin-left:6px;padding:1px 6px;font-size:10px}.lt-empty{text-align:center;color:var(--hint-text);padding:24px 16px;font-size:13px}#link-tree-panel .lt-footer{border-top:1px solid var(--panel-border);background:var(--item-bg);padding:10px 12px}.lt-upload-info{color:var(--text-color);word-break:break-all;margin-bottom:8px;font-size:12px}.lt-upload-info .lt-mesh-name{color:var(--color-primary);font-weight:600}.lt-upload-btn{border:1px dashed var(--panel-border);background:var(--hover-bg);width:100%;color:var(--text-color);text-align:center;cursor:pointer;border-radius:6px;padding:8px 12px;font-size:12px;transition:all .15s;display:block}.lt-upload-btn:hover{border-color:var(--color-primary);background:var(--selected-bg,#e3f2fd)}.lt-uploading{opacity:.6;pointer-events:none}[data-theme=dark] #link-tree-panel:not(.lt-hidden){background:var(--bg-primary)!important;border-color:var(--border-color)!important}[data-theme=dark] #link-tree-panel:not(.lt-hidden) .lt-tab{background:var(--bg-surface)!important;border-color:var(--border-color)!important}[data-theme=dark] #link-tree-panel .lt-tab .lt-tab-title{color:var(--text-primary)!important}[data-theme=dark] #link-tree-panel .lt-header{background:var(--bg-elevated)!important;border-color:var(--border-color)!important}[data-theme=dark] #link-tree-panel .lt-header-title{color:var(--text-primary)!important}[data-theme=dark] #link-tree-panel .lt-body{background:var(--bg-primary)!important}[data-theme=dark] .lt-link-item{color:var(--text-primary)!important}[data-theme=dark] .lt-link-item:hover{background:var(--hover-bg)!important}[data-theme=dark] .lt-link-item.lt-selected{background:var(--selected-bg)!important;border-left-color:var(--color-primary)!important}[data-theme=dark] #link-tree-panel .lt-footer{background:var(--bg-elevated)!important;border-color:var(--border-color)!important}[data-theme=dark] .lt-upload-info{color:var(--text-primary)!important}[data-theme=dark] .lt-upload-btn{background:var(--input-bg)!important;border-color:var(--input-bg)!important;color:var(--text-primary)!important}[data-theme=dark] .lt-upload-btn:hover{border-color:var(--color-primary)!important;background:var(--selected-bg)!important}[data-theme=dark] .lt-empty{color:#7a7a7a!important}[data-theme=dark] #link-tree-panel:not(.lt-hidden),[data-theme=dark] #joint-problem-panel,[data-theme=dark] #problem-list-view.mech-panel-overlay{-webkit-backdrop-filter:blur(16px);background:#1e1e28eb!important}[data-theme=dark] #link-tree-panel.lt-hidden{-webkit-backdrop-filter:none!important;box-shadow:none!important;background:0 0!important;border:none!important;overflow:visible!important}[data-theme=dark] #link-tree-panel.lt-hidden .lt-tab{box-shadow:none!important;background:0 0!important;border:none!important}[data-theme=dark] #joint-problem-panel.hidden{-webkit-backdrop-filter:none;background:0 0!important}[data-theme=dark] #joint-problem-panel.hidden .panel-tab{background:0 0!important}[data-theme=dark] #joint-problem-panel.hidden .edge-arrow,[data-theme=dark] #joint-problem-panel.collapsed .edge-arrow{border-right-color:#dce1ebe6!important}[data-theme=dark] #link-tree-panel.lt-hidden .edge-arrow{border-left-color:#dce1ebe6!important}.lt-step-node{cursor:pointer;user-select:none;align-items:center;height:22px;padding-right:6px;display:flex}.lt-step-node:hover{background:var(--hover-bg)}.lt-step-node.lt-step-selected{background:var(--selected-bg)}.lt-step-node.lt-step-hidden{opacity:.4}.lt-step-arrow{color:#888;text-align:center;flex-shrink:0;width:14px;min-width:14px;font-size:10px;display:inline-block}.lt-step-arrow.lt-step-leaf{color:#bbb;font-size:11px}[data-theme=dark] .lt-step-arrow{color:#666}[data-theme=dark] .lt-step-arrow.lt-step-leaf{color:var(--text-secondary)}.lt-step-check{text-align:center;color:#888;cursor:pointer;flex-shrink:0;width:16px;min-width:16px;font-size:11px;display:inline-block}.lt-step-check:hover{color:var(--text-color)}.lt-step-name{color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;flex:1;padding-left:2px;font-size:12px;line-height:22px;overflow:hidden}.problem-card{background:var(--item-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:12px;margin-bottom:10px;padding:14px;transition:transform .15s,box-shadow .15s,border-color .15s;position:relative}.problem-card:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.problem-card-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.problem-card-title{color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:13px;font-weight:600;overflow:hidden}.problem-card-blocker{font-size:16px;position:absolute;top:8px;right:8px}.problem-card-desc{color:var(--secondary-text);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 10px;font-size:11px;display:-webkit-box;overflow:hidden}.problem-card-tags{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.problem-card-tag{white-space:nowrap;border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:10px;font-weight:500;display:inline-flex}.problem-card-footer{align-items:center;gap:6px;display:flex}.problem-card-progress-bg{background:var(--separator-color);border-radius:3px;flex:1;height:5px;overflow:hidden}.problem-card-progress-bar{border-radius:3px;height:100%}.problem-card-progress-text{color:var(--secondary-text);white-space:nowrap;font-size:10px}.problem-card-assignee{color:var(--hint-text);white-space:nowrap;margin-left:auto;font-size:10px}.problem-card-meta{border-top:1px solid var(--separator,#e5e7eb);align-items:center;gap:8px;margin-top:6px;padding-top:6px;display:flex}[data-theme=dark] .problem-card-meta{border-color:var(--border-color)}[data-theme=dark] .problem-card{background:var(--bg-elevated);border-color:var(--border-color);box-shadow:0 1px 4px #0000004d}[data-theme=dark] .problem-card:hover{border-color:var(--color-primary);box-shadow:0 4px 16px #0006}[data-theme=dark] .problem-card-title{color:var(--text-primary)}[data-theme=dark] .problem-card-desc{color:var(--text-secondary)}[data-theme=dark] .problem-card-progress-bg{background:var(--input-bg)}[data-theme=dark] label{color:var(--text-primary)!important}[data-theme=dark] .requirement-card{background:var(--bg-elevated)!important;border-color:var(--border-color)!important}[data-theme=dark] .requirement-card h4,[data-theme=dark] .requirement-card span{color:var(--text-primary)!important}[data-theme=dark] button[style*="background:#e3f2fd"],[data-theme=dark] button[style*="background:rgb(227, 242, 253)"]{background:var(--color-primary-light)!important;color:var(--color-info)!important;border:1px solid var(--color-primary-light)!important}[data-theme=dark] button[style*="background:#ffebee"],[data-theme=dark] button[style*="background:rgb(255, 235, 238)"]{background:var(--color-danger-light)!important;color:var(--color-danger-text)!important;border:1px solid var(--color-danger-light)!important}[data-theme=dark] span[style*="background:#f3e5f5"],[data-theme=dark] span[style*="background:rgb(243, 229, 245)"]{color:var(--color-embedded)!important;background:#9c27b026!important}[data-theme=dark] #import-upload-btn{background:var(--color-primary-light)!important;border-color:var(--color-primary)!important;color:var(--color-info)!important}[data-theme=dark] #problem-error,[data-theme=dark] #import-error,[data-theme=dark] #req-error{background:var(--color-danger-light)!important;border-color:var(--color-danger)!important;color:var(--color-danger-text)!important}[data-theme=dark] #import-success{background:var(--color-success-light)!important;border-color:var(--color-success)!important;color:var(--color-success-text)!important}[data-theme=dark] #problem-modal-title,[data-theme=dark] #req-modal-title,[data-theme=dark] #problem-list-title{color:var(--text-primary)!important}[data-theme=dark] button[onclick*="openProblemModal()"][style*="background:#2979ff"]{background:var(--color-primary)!important}[data-theme=dark] #gantt-chart text{fill:#ccc!important}[data-theme=dark] #gantt-chart .gantt-bar-text{fill:#fff!important}[data-theme=dark] #report-view,[data-theme=dark] #report-view h2,[data-theme=dark] #report-view h3,[data-theme=dark] #report-view h4,[data-theme=dark] #report-view p,[data-theme=dark] #report-view span,[data-theme=dark] #report-view td,[data-theme=dark] #report-view th,[data-theme=dark] #gantt-view,[data-theme=dark] #gantt-view h2,[data-theme=dark] #gantt-view h3,[data-theme=dark] #gantt-view h4,[data-theme=dark] #requirements-view h2,[data-theme=dark] .modal-content h3{color:var(--text-primary)!important}[data-theme=dark] #joint-problem-panel span,[data-theme=dark] #joint-problem-panel div{color:var(--text-primary)}[data-theme=dark] #login-page{background:var(--login-gradient)!important}[data-theme=dark] #login-card{background:var(--login-card-bg)!important;box-shadow:var(--shadow-xl)!important}[data-theme=dark] #login-card h1{color:var(--text-primary)!important}[data-theme=dark] #login-card label{color:var(--text-secondary)!important}[data-theme=dark] #login-card input{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] #login-error{background:var(--color-danger-light)!important;border-color:var(--color-danger)!important;color:var(--color-danger-text)!important}[data-theme=dark] #login-btn{background:linear-gradient(135deg,#0e639c 0%,#094771 100%)!important}[data-theme=dark] #login-card span[onclick*=quickFill]{background:var(--bg-elevated)!important;color:var(--text-primary)!important}[data-theme=dark] #login-card span[onclick*=quickFill]:hover{background:var(--input-bg)!important}[data-theme=dark] #statusbar{background:var(--color-primary)!important;color:var(--text-inverse)!important}[data-theme=dark] #statusbar span{color:var(--text-inverse)!important}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] h5,[data-theme=dark] h6,[data-theme=dark] p{color:var(--text-primary)!important}[data-theme=dark] .user-dropdown{background:var(--bg-surface)!important;border-color:var(--border-color)!important;box-shadow:0 8px 24px #0006!important}[data-theme=dark] .user-dropdown-header{background:var(--bg-elevated)!important;border-color:var(--border-color)!important}[data-theme=dark] .user-dropdown-name{color:var(--text-primary)!important}[data-theme=dark] .user-dropdown-role{color:var(--text-secondary)!important}[data-theme=dark] .user-dropdown-item{color:var(--text-primary)!important}[data-theme=dark] .user-dropdown-item:hover{background:var(--hover-bg)!important}[data-theme=dark] .user-dropdown-sep{border-color:var(--border-color)!important}[data-theme=dark] .user-role-tag{background:var(--selected-bg)!important;color:var(--color-info)!important}[data-theme=dark] .user-avatar{background:var(--color-primary)!important;color:var(--text-inverse)!important}[data-theme=dark] .user-menu-btn{color:var(--text-primary)!important}[data-theme=dark] .robot-selector-dropdown{background:var(--bg-surface)!important;border-color:var(--border-color)!important;box-shadow:0 8px 24px #0006!important}[data-theme=dark] .robot-selector-dropdown .rs-item{color:var(--text-primary)!important}[data-theme=dark] .robot-selector-dropdown .rs-item:hover{background:var(--hover-bg)!important}[data-theme=dark] .robot-selector-dropdown .rs-item.rs-selected{background:var(--selected-bg)!important}[data-theme=dark] .robot-mgmt-modal{background:var(--bg-surface)!important;color:var(--text-primary)!important}[data-theme=dark] .robot-mgmt-modal h3{color:var(--text-primary)!important}[data-theme=dark] .robot-mgmt-modal input,[data-theme=dark] .robot-mgmt-modal select{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] .robot-mgmt-modal button{color:var(--text-primary)!important}[data-theme=dark] .robot-mgmt-modal .rm-robot-card{background:var(--bg-elevated)!important;border-color:var(--border-color)!important}[data-theme=dark] .robot-mgmt-modal .rm-robot-card span{color:var(--text-primary)!important}[data-theme=dark] #dingtalk-modal{background:var(--bg-surface)!important;color:var(--text-primary)!important}[data-theme=dark] #dingtalk-modal h3{color:var(--text-primary)!important}[data-theme=dark] #dingtalk-modal input{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}#problem-list-view{background:var(--bg-color);z-index:98;padding:20px 28px;display:none;position:fixed;inset:76px 0 0;overflow-y:auto}#problem-list-view.active{display:block}.pl-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.pl-title{color:var(--text-color);align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.pl-subtitle{color:var(--secondary-text);margin-top:4px;font-size:13px}.pl-actions{align-items:center;gap:8px;display:flex}.pl-toolbar{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;display:flex}.pl-search{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);border-radius:8px;outline:none;width:240px;padding:7px 12px;font-family:inherit;font-size:13px}.pl-search:focus{border-color:var(--color-primary,#2979ff)}.pl-search::placeholder{color:var(--hint-text)}.pl-filter-select{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);cursor:pointer;border-radius:8px;outline:none;padding:6px 10px;font-size:11px}.pl-filter-select:focus{border-color:var(--color-primary,#2979ff)}.pl-count{color:var(--secondary-text);margin-left:auto;font-size:11px}.pl-vscroll-info{color:var(--color-primary,#2979ff);white-space:nowrap;background:#2979ff14;border-radius:10px;margin-left:8px;padding:2px 8px;font-size:10px}[data-theme=dark] .pl-vscroll-info{background:#64b4ff1f}.problem-table{border-collapse:separate;border-spacing:0;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;width:100%;font-size:12px;overflow:hidden}.problem-table thead th{background:var(--item-bg);text-align:left;color:var(--secondary-text);border-bottom:1px solid var(--panel-border);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}.problem-table tbody td{border-bottom:1px solid var(--separator);color:var(--text-color);vertical-align:middle;padding:10px 12px}.problem-table tbody tr:hover{background:var(--item-bg)}.problem-table tbody tr.problem-overdue{background:#ef44440a}.ptd-title-wrap{align-items:center;gap:6px;display:flex}.ptd-title-text{text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-size:13px;font-weight:500;overflow:hidden}.ptd-blocker{flex-shrink:0;font-size:14px}.ptd-assignee{color:var(--secondary-text)}.ptd-due{white-space:nowrap}.ptd-due.overdue{color:var(--color-danger-dark)}[data-theme=dark] .ptd-due.overdue{color:var(--color-danger-text)}.pl-status-badge{white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.pl-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.pl-status-badge.open{background:var(--color-critical-bg);color:var(--color-critical-text)}.pl-status-badge.in_progress{background:var(--color-major-bg);color:var(--color-major-text)}.pl-status-badge.resolved{background:var(--color-success-light);color:var(--color-success-dark)}.pl-status-badge.closed{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}[data-theme=dark] .pl-status-badge.open{color:var(--color-danger-text);background:#ef444433}[data-theme=dark] .pl-status-badge.in_progress{color:var(--color-warning-text);background:#f9731633}[data-theme=dark] .pl-status-badge.resolved{color:var(--color-success-text);background:#22c55e33}[data-theme=dark] .pl-status-badge.closed{color:var(--color-status-closed-text);background:#9ca3af33}.pl-priority{border-radius:10px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.pl-priority.P0{background:var(--color-critical-bg);color:var(--color-critical-text)}.pl-priority.P1{background:var(--color-major-bg);color:var(--color-major-text)}.pl-priority.P2{background:var(--color-minor-bg);color:var(--color-minor-text)}.pl-priority.P3{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}[data-theme=dark] .pl-priority.P0{color:var(--color-danger-text);background:#ef444433}[data-theme=dark] .pl-priority.P1{color:var(--color-warning-text);background:#f9731633}[data-theme=dark] .pl-priority.P2{color:var(--color-minor-text);background:#f59e0b33}[data-theme=dark] .pl-priority.P3{color:var(--color-status-closed-text);background:#9ca3af26}.pl-progress-bar{background:var(--separator);vertical-align:middle;border-radius:3px;width:60px;height:6px;display:inline-block;overflow:hidden}.pl-progress-bar>span{background:var(--color-primary,#2979ff);border-radius:3px;height:100%;display:block}.pl-progress-bar.done>span{background:var(--color-success)}.pl-progress-text{color:var(--secondary-text);vertical-align:middle;margin-left:4px;font-size:10px}.pc-severity-badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.pc-severity-badge.P0{background:var(--color-critical-bg);color:var(--color-critical-text)}.pc-severity-badge.P1{background:var(--color-major-bg);color:var(--color-major-text)}.pc-severity-badge.P2{background:var(--color-minor-bg);color:var(--color-minor-text)}.pc-severity-badge.P3{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}[data-theme=dark] .pc-severity-badge.P0{color:var(--color-danger-text);background:#ef444433}[data-theme=dark] .pc-severity-badge.P1{color:var(--color-warning-text);background:#f9731633}[data-theme=dark] .pc-severity-badge.P2{color:var(--color-minor-text);background:#f59e0b33}[data-theme=dark] .pc-severity-badge.P3{color:var(--color-status-closed-text);background:#9ca3af26}.pc-status-badge{white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.pc-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.pc-status-badge.open{background:var(--color-critical-bg);color:var(--color-critical-text)}.pc-status-badge.open .pc-status-dot{background:var(--color-danger)}.pc-status-badge.in_progress{background:var(--color-major-bg);color:var(--color-major-text)}.pc-status-badge.in_progress .pc-status-dot{background:var(--color-major)}.pc-status-badge.resolved{background:var(--color-success-light);color:var(--color-success-dark)}.pc-status-badge.resolved .pc-status-dot{background:var(--color-success)}.pc-status-badge.closed{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}.pc-status-badge.closed .pc-status-dot{background:var(--color-status-closed)}[data-theme=dark] .pc-status-badge.open{color:var(--color-danger-text);background:#ef444433}[data-theme=dark] .pc-status-badge.open .pc-status-dot{background:#fca5a5}[data-theme=dark] .pc-status-badge.in_progress{color:var(--color-warning-text);background:#f9731633}[data-theme=dark] .pc-status-badge.in_progress .pc-status-dot{background:#fdba74}[data-theme=dark] .pc-status-badge.resolved{color:var(--color-success-text);background:#22c55e33}[data-theme=dark] .pc-status-badge.resolved .pc-status-dot{background:#86efac}[data-theme=dark] .pc-status-badge.closed{color:var(--color-status-closed-text);background:#9ca3af33}[data-theme=dark] .pc-status-badge.closed .pc-status-dot{background:#d1d5db}.pc-progress-bar{background:var(--separator,#e5e7eb);vertical-align:middle;border-radius:3px;width:60px;height:6px;display:inline-block;overflow:hidden}.pc-progress-fill{background:var(--color-primary,#2979ff);border-radius:3px;height:100%;transition:width .3s;display:block}.pc-progress-bar.done .pc-progress-fill{background:var(--color-success)}.pc-progress-text{color:var(--secondary-text);vertical-align:middle;margin-left:4px;font-size:10px}.pc-blocker-badge{cursor:help;flex-shrink:0;align-items:center;font-size:14px;display:inline-flex}.problem-card .pc-blocker-badge{font-size:16px;position:absolute;top:8px;right:8px}.pc-due{white-space:nowrap;font-size:12px}.pc-due.overdue{color:var(--color-danger-dark);font-weight:600}[data-theme=dark] .pc-due.overdue{color:var(--color-danger-text)}.pc-req-link{white-space:nowrap;background:var(--color-primary-light);color:var(--color-primary-dark);cursor:default;border-radius:4px;align-items:center;gap:2px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.pc-req-link.none{color:var(--hint-text,#999);background:0 0}[data-theme=dark] .pc-req-link{background:var(--color-primary-light);color:var(--color-info)}[data-theme=dark] .pc-req-link.none{color:#666;background:0 0}.pl-subchip{background:var(--item-bg);color:var(--secondary-text);border-radius:4px;padding:1px 6px;font-size:10px;font-weight:500;display:inline-block}.pl-action{border:1px solid var(--panel-border);background:var(--input-bg);color:var(--text-color);cursor:pointer;border-radius:5px;margin-right:3px;padding:4px 8px;font-size:11px;transition:all .12s}.pl-action:hover{background:var(--color-primary,#2979ff);color:#fff;border-color:var(--color-primary,#2979ff)}.pl-action.danger:hover{background:var(--color-danger);border-color:var(--color-danger)}.pl-empty{text-align:center;color:var(--hint-text);padding:60px 20px}.pl-empty-icon{margin-bottom:16px;font-size:48px}.pl-empty-text{font-size:14px}[data-theme=dark] #dingtalk-modal label{color:var(--text-primary)!important}.btn-primary{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s;display:inline-flex}.btn-primary:hover{background:var(--color-primary-hover)}[data-theme=dark] .btn-primary{background:var(--color-primary)}[data-theme=dark] .btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:12px;transition:all .15s}.btn-secondary:hover{background:var(--hover-bg)}[data-theme=dark] .btn-secondary{background:var(--btn-secondary-bg);color:var(--text-primary);border-color:var(--input-bg)}[data-theme=dark] .btn-secondary:hover{background:var(--hover-bg)}.btn-sm{cursor:pointer;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-color);border-radius:6px;padding:2px 8px;font-size:10px;transition:all .15s}.btn-sm:hover{background:var(--hover-bg)}[data-theme=dark] .btn-sm{background:var(--input-bg);color:var(--text-primary);border-color:var(--input-bg)}[data-theme=dark] .btn-sm:hover{background:var(--hover-bg)}.view-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.view-title{color:var(--text-color);align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.view-subtitle{color:var(--secondary-text);margin-top:4px;font-size:13px}[data-theme=dark] .view-title{color:var(--text-primary)}[data-theme=dark] .view-subtitle{color:var(--text-secondary)}.req-card{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-sm);cursor:pointer;border-radius:12px;margin-bottom:12px;padding:18px 20px;transition:transform .15s,box-shadow .15s;position:relative}.req-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}[data-theme=dark] .req-card{background:var(--bg-elevated);border-color:var(--border-color);box-shadow:0 1px 4px #0000004d}[data-theme=dark] .req-card:hover{box-shadow:0 4px 20px #0006}.req-card-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.req-card-title{color:var(--text-color);flex:1;align-items:center;gap:8px;min-width:0;font-size:15px;font-weight:700;display:flex}.req-card-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-theme=dark] .req-card-title{color:var(--text-primary)}.req-card-desc{color:var(--secondary-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px;font-size:13px;line-height:1.6;display:-webkit-box;overflow:hidden}[data-theme=dark] .req-card-desc{color:var(--text-secondary)}.req-card-meta{color:var(--hint-text);justify-content:space-between;align-items:center;gap:10px;font-size:11px;display:flex}.req-card-tags{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.req-card-actions{align-items:center;gap:4px;display:flex}.req-priority-badge{border-radius:10px;padding:2px 8px;font-size:10px;font-weight:700}.req-priority-badge.p0{background:var(--color-critical-bg);color:var(--color-critical-text)}.req-priority-badge.p1{background:var(--color-major-bg);color:var(--color-major-text)}.req-priority-badge.p2{background:var(--color-minor-bg);color:var(--color-minor-text)}.req-priority-badge.p3{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}[data-theme=dark] .req-priority-badge.p0{color:var(--color-danger-text);background:#ef444433}[data-theme=dark] .req-priority-badge.p1{color:var(--color-warning-text);background:#f9731633}[data-theme=dark] .req-priority-badge.p2{color:var(--color-minor-text);background:#f59e0b33}[data-theme=dark] .req-priority-badge.p3{color:var(--color-status-closed-text);background:#9ca3af26}.req-status-badge{white-space:nowrap;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.req-status-badge.pending_analysis{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}.req-status-badge.analyzing{color:#1e40af;background:#dbeafe}.req-status-badge.pending_review{background:var(--color-minor-bg);color:var(--color-minor-text)}.req-status-badge.assigned{background:var(--color-success-light);color:var(--color-success-dark)}.req-status-badge.rejected{background:var(--color-critical-bg);color:var(--color-critical-text)}[data-theme=dark] .req-status-badge.pending_analysis{color:var(--color-status-closed-text);background:#9ca3af33}[data-theme=dark] .req-status-badge.analyzing{color:#93c5fd;background:#3b82f633}[data-theme=dark] .req-status-badge.pending_review{color:var(--color-minor-text);background:#f59e0b33}[data-theme=dark] .req-status-badge.assigned{color:var(--color-success-text);background:#22c55e33}[data-theme=dark] .req-status-badge.rejected{color:var(--color-danger-text);background:#ef444433}.req-source-tag{border-radius:8px;padding:2px 8px;font-size:10px;font-weight:600}[data-theme=dark] .req-source-tag{opacity:.9}.req-dist-tag{color:#fff;border-radius:8px;padding:2px 8px;font-size:11px;font-weight:600}.filter-pill{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);cursor:pointer;white-space:nowrap;border-radius:8px;padding:6px 12px;font-size:12px;transition:all .15s}.filter-pill:hover{background:var(--hover-bg)}.filter-pill.active{background:var(--color-primary-dark);color:#fff;border-color:var(--color-primary-dark)}[data-theme=dark] .filter-pill{background:var(--input-bg);color:var(--text-primary);border-color:var(--input-bg)}[data-theme=dark] .filter-pill:hover{background:var(--hover-bg)}[data-theme=dark] .filter-pill.active{background:var(--color-primary);border-color:var(--color-primary)}.view-mode-switch{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:8px;display:inline-flex;overflow:hidden}.vms-btn{color:var(--secondary-text);cursor:pointer;border:none;border-right:1px solid var(--panel-border);background:0 0;padding:5px 10px;font-size:12px}.vms-btn:last-child{border-right:none}.vms-btn:hover{background:var(--panel-bg)}.vms-btn.active{background:var(--color-primary-dark);color:#fff;font-weight:700}[data-theme=dark] .view-mode-switch{border-color:var(--border-color);background:var(--bg-elevated)}[data-theme=dark] .vms-btn{color:var(--text-secondary);border-color:var(--border-color)}[data-theme=dark] .vms-btn:hover{background:var(--bg-primary)}[data-theme=dark] .vms-btn.active{background:var(--color-primary)}#mech-view-switch-bar,#control-view-switch-bar{z-index:100;background:var(--panel-bg);border:1px solid var(--panel-border);white-space:nowrap;border-radius:6px;flex-wrap:nowrap;align-items:center;gap:6px;max-width:calc(100vw - 40px);padding:3px 6px;display:flex;position:fixed;top:48px;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 2px 8px #00000014}#mech-view-switch-bar::-webkit-scrollbar{display:none}#control-view-switch-bar::-webkit-scrollbar{display:none}#mech-view-switch-bar,#control-view-switch-bar{scrollbar-width:none}.mech-view-label{color:var(--secondary-text);white-space:nowrap;margin-right:2px;font-size:12px}.mech-view-meta{color:var(--secondary-text);white-space:nowrap;margin-left:4px;font-size:11px}.control-policy-selection-chip{display:none!important}.control-policy-profile-label{color:var(--secondary-text);white-space:nowrap;font-size:11px}.control-simulation-scene-label{color:var(--secondary-text);white-space:nowrap;margin-left:4px;font-size:11px}.control-policy-profile-select,.control-simulation-scene-select{border:1px solid var(--panel-border);background:var(--item-bg);min-width:160px;max-width:220px;height:24px;color:var(--text-color);cursor:pointer;text-overflow:ellipsis;border-radius:4px;padding:2px 24px 2px 7px;font-size:11px}.control-simulation-scene-select{min-width:88px;max-width:108px}.control-policy-profile-select:disabled,.control-simulation-scene-select:disabled{opacity:.55;cursor:not-allowed}.control-policy-selection-notice{max-width:320px;color:var(--secondary-text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden;display:none!important}.control-policy-selection-notice.is-error{color:var(--color-danger,#c62828)}.control-policy-selection-notice.is-warning{color:var(--color-warning,#b26a00)}.control-policy-run-btn:disabled{opacity:.55;cursor:not-allowed}.control-virtual-gamepad-btn{white-space:nowrap}[data-theme=dark] #mech-view-switch-bar,[data-theme=dark] #control-view-switch-bar{box-shadow:0 2px 12px #0000004d}.mech-view-sep{color:var(--panel-border);margin:0 2px;font-size:14px}.mech-view-btn{border:1px solid var(--panel-border);background:var(--item-bg);color:var(--text-color);cursor:pointer;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px}.mech-view-btn:hover{background:var(--hover-bg,#e8eaed)}.mech-model-source-btn.active{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff;font-weight:700}.mech-model-source-btn:disabled{cursor:not-allowed;opacity:.45}.mech-model-source-btn:disabled:hover{background:var(--item-bg)}.motor-highlight-control{align-items:center;gap:4px;display:inline-flex;position:relative}.motor-highlight-trigger{align-items:center;gap:5px;display:inline-flex}.motor-highlight-swatch{border:1px solid color-mix(in srgb, var(--motor-highlight-color,#ff7a00), #000 20%);background:var(--motor-highlight-color,#ff7a00);border-radius:2px;flex:none;width:9px;height:9px;display:inline-block}.motor-highlight-panel{z-index:103;border:1px solid var(--panel-border);background:var(--panel-bg);white-space:normal;border-radius:8px;width:min(360px,100vw - 32px);height:min(520px,100vh - 112px);display:none;position:fixed;top:88px;right:16px;overflow:hidden;box-shadow:0 16px 40px #0003,0 2px 8px #00000014}.motor-highlight-panel.is-open{flex-direction:column;display:flex}body.motor-highlight-dragging{cursor:move;user-select:none}.motor-highlight-heading{border-bottom:1px solid var(--panel-border);flex:none;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.motor-highlight-drag-handle{cursor:move;touch-action:none;user-select:none}.motor-highlight-drag-handle button{cursor:pointer}.motor-highlight-heading>div:first-child{min-width:96px}.motor-highlight-heading strong{color:var(--text-color);font-size:13px;display:block}.motor-highlight-heading>div>span{color:var(--secondary-text);margin-top:3px;font-size:11px;display:block}.motor-highlight-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.motor-highlight-actions button{border:1px solid var(--panel-border);background:var(--item-bg);color:var(--text-color);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:11px}.motor-highlight-actions button:hover{border-color:var(--color-primary)}.motor-highlight-actions .motor-highlight-close{width:26px;color:var(--secondary-text);padding:2px 0;font-size:17px;line-height:1}.motor-highlight-list{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding:4px;overflow-y:auto}.motor-highlight-option{cursor:pointer;border-radius:5px;grid-template-columns:18px 10px minmax(0,1fr);align-items:center;gap:8px;padding:8px 9px;display:grid}.motor-highlight-option:hover{background:var(--hover-bg)}.motor-highlight-option input{accent-color:#ff7a00;margin:0}.motor-highlight-copy{min-width:0}.motor-highlight-copy strong,.motor-highlight-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.motor-highlight-copy strong{color:var(--text-color);font-size:12px;font-weight:600}.motor-highlight-copy span{color:var(--secondary-text);margin-top:2px;font-size:10px}.motor-highlight-copy b{color:#ff7a00;font-family:var(--font-family-mono)}.motor-highlight-optional-badge{border:1px solid color-mix(in srgb, #ff7a00 36%, var(--panel-border));background:color-mix(in srgb, #ff7a00 10%, var(--item-bg));color:#b45309;border-radius:3px;margin-left:4px;padding:1px 4px;font-style:normal;font-weight:600;display:inline-block}@media (width<=760px){.motor-highlight-panel{width:min(340px,100vw - 16px);height:min(480px,100vh - 96px);top:80px;right:8px}}.control-policy-library-view{z-index:48;background:var(--bg-color);padding:24px;position:fixed;inset:76px 0 0;overflow:auto}.cpl-shell{grid-template-columns:minmax(0,1fr) 380px;gap:16px;max-width:1280px;margin:0 auto;display:grid}.cpl-main,.cpl-detail-card{border:1px solid var(--panel-border);background:var(--panel-bg);box-shadow:var(--shadow);border-radius:14px}.cpl-main{min-height:calc(100vh - 124px);padding:18px}.cpl-detail{flex-direction:column;align-self:start;gap:12px;min-width:0;max-height:calc(100vh - 124px);display:flex;position:sticky;top:0;overflow:auto}.cpl-detail-card{padding:16px}.cpl-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.cpl-header-actions,.cpl-detail-card-header{align-items:center;gap:8px;display:flex}.cpl-detail-card-header{justify-content:space-between;margin-bottom:10px}.cpl-detail-card-header h3{margin-bottom:0}.cpl-header h2,.cpl-detail-card h3{color:var(--text-color);margin:0 0 6px;font-weight:700}.cpl-header h2{letter-spacing:-.3px;font-size:22px}.cpl-detail-card h3{font-size:15px}.cpl-header p,.cpl-help{color:var(--secondary-text);margin:0;font-size:12px;line-height:1.55}.cpl-help code{color:var(--primary-text);font-size:11px}.cpl-toolbar{grid-template-columns:minmax(220px,1fr) 150px 130px;gap:8px;margin-bottom:12px;display:grid}.cpl-toolbar input,.cpl-toolbar select,#cpl-import-json{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);border-radius:9px;outline:none;font-size:12px}.cpl-toolbar input,.cpl-toolbar select{height:34px;padding:0 10px}#cpl-import-json{resize:vertical;width:100%;min-height:180px;margin:10px 0;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.45}.cpl-primary-btn{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;cursor:pointer;white-space:nowrap;border-radius:9px;padding:8px 12px;font-size:12px;font-weight:700}.cpl-primary-btn:hover{filter:brightness(1.04)}.cpl-secondary-btn{border:1px solid var(--panel-border);background:var(--item-bg);color:var(--text-color);cursor:pointer;white-space:nowrap;border-radius:9px;padding:8px 12px;font-size:12px;font-weight:700}.cpl-secondary-btn:hover{border-color:var(--color-primary);background:var(--hover-bg)}.cpl-icon-action{border:1px solid var(--panel-border);background:var(--item-bg);width:30px;height:30px;color:var(--text-color);cursor:pointer;border-radius:6px;place-items:center;padding:0;font-size:18px;line-height:1;display:inline-grid}.cpl-icon-action:hover{border-color:var(--color-primary);background:var(--hover-bg)}.cpl-upload-actions{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 6px;display:grid}.cpl-hidden-input{display:none}.cpl-json-fallback{border-top:1px solid var(--panel-border);margin-top:12px;padding-top:10px}.cpl-json-fallback summary{color:var(--secondary-text);cursor:pointer;font-size:12px;font-weight:700}.cpl-status{background:var(--item-bg);color:var(--secondary-text);border-radius:8px;margin-bottom:12px;padding:8px 10px;font-size:12px}.cpl-status.is-error,.cpl-empty.is-error{color:var(--color-danger,#ef4444);background:#ef444414}.cpl-focus-strip{border:1px solid color-mix(in srgb, var(--color-primary) 30%, var(--panel-border));background:color-mix(in srgb, var(--color-primary) 9%, var(--panel-bg));border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:13px 14px;display:flex}.cpl-focus-strip.is-empty{background:var(--item-bg);border-color:var(--panel-border)}.cpl-focus-copy{gap:3px;min-width:0;display:grid}.cpl-focus-kicker{color:var(--primary-text);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.cpl-focus-title{color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.cpl-focus-meta,.cpl-focus-hint{color:var(--secondary-text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.cpl-focus-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.cpl-list{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.cpl-policy-card{border:1px solid var(--panel-border);background:var(--item-bg);min-height:104px;color:var(--text-color);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:6px;padding:13px;transition:border-color .15s,background .15s,transform .15s;display:flex}.cpl-policy-card:hover,.cpl-policy-card.selected{border-color:var(--color-primary);background:var(--hover-bg);transform:translateY(-1px)}.cpl-policy-card.selected{box-shadow:inset 4px 0 0 var(--color-primary), 0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent)}.cpl-policy-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.cpl-policy-card strong{min-width:0;color:var(--text-color);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.cpl-policy-card span{color:var(--secondary-text);font-size:11px;line-height:1.45}.cpl-policy-card-status{background:var(--item-bg);border-radius:999px;flex:none;padding:3px 7px;font-weight:700;color:var(--secondary-text)!important;font-size:10px!important}.cpl-policy-card-status.is-ready{background:#10b9811f;color:#047857!important}.cpl-policy-card-status.is-warning{background:#f59e0b1f;color:#92400e!important}.cpl-policy-card-meta{display:block}.cpl-policy-card-hint{margin-top:auto;font-weight:700;color:var(--primary-text)!important;font-size:10px!important}.cpl-tags{flex-wrap:wrap;gap:4px;display:flex}.cpl-tags em{color:var(--primary-text);background:#2979ff1a;border-radius:999px;padding:2px 7px;font-size:10px;font-style:normal}.cpl-detail-body{gap:8px;display:grid}.cpl-row{border-bottom:1px solid var(--panel-border);grid-template-columns:96px 1fr;gap:8px;padding-bottom:8px;display:grid}.cpl-row span{color:var(--hint-text);font-size:11px}.cpl-row strong{min-width:0;color:var(--text-color);word-break:break-all;font-size:12px;font-weight:500}.cpl-warning{white-space:pre-wrap;color:#92400e;background:#f59e0b1a;border:1px solid #f59e0b40;border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.45}.cpl-version-list{gap:4px;padding-top:4px;display:grid}.cpl-version-list h4{color:var(--text-color);margin:6px 0 2px;font-size:12px}.cpl-version-list p,.cpl-empty{color:var(--secondary-text);margin:0;font-size:12px;line-height:1.5}.cpl-version-row{border-bottom:1px solid var(--panel-border);color:var(--secondary-text);justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:11px;display:flex}.cpl-version-row:last-child{border-bottom:0}.cpl-version-row-actions{flex-wrap:wrap;gap:6px;display:inline-flex}.cpl-profile-card{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:8px;gap:8px;padding:10px;display:grid}.cpl-profile-card-head{gap:3px;display:grid}.cpl-profile-card-head strong{color:var(--text-color);font-size:12px;font-weight:700}.cpl-profile-card-head span{color:var(--secondary-text);font-size:11px}.cpl-profile-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cpl-profile-actions button:only-child{grid-column:1/-1}.cpl-profile-list{gap:8px;display:grid}.cpl-profile-card p{color:var(--secondary-text);margin:0;font-size:11px;line-height:1.45}.cpl-danger-btn{color:var(--color-danger,#dc2626)}.cpl-detail-actions{border-top:1px solid var(--panel-border);gap:8px;margin-top:4px;padding-top:12px;display:grid}.cpl-run-btn{width:100%}.cpl-run-btn:disabled{opacity:.48;cursor:not-allowed;filter:grayscale(.35)}.cpl-action-hint{color:var(--secondary-text);margin:0;font-size:11px;line-height:1.45}.cpl-empty{border:1px dashed var(--panel-border);background:var(--item-bg);text-align:center;border-radius:12px;padding:18px}.cpl-profile-editor-modal{z-index:90;background:#0f172a85;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.cpl-profile-editor-panel{border:1px solid var(--panel-border);background:var(--panel-bg);width:min(920px,100%);max-height:min(820px,100vh - 48px);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;display:flex}.cpl-profile-editor-header,.cpl-profile-editor-footer{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.cpl-profile-editor-header{border-bottom:1px solid var(--panel-border)}.cpl-profile-editor-header h3{color:var(--text-color);margin:0;font-size:16px}.cpl-profile-editor-body{gap:14px;padding:16px;display:grid;overflow:auto}.cpl-profile-editor-footer{border-top:1px solid var(--panel-border);justify-content:flex-end}.cpl-profile-editor-field{min-width:0;color:var(--secondary-text);border:0;gap:6px;margin:0;padding:0;font-size:12px;font-weight:700;display:grid}.cpl-profile-editor-field>input,.cpl-profile-editor-field>select,.cpl-profile-editor-field>textarea{box-sizing:border-box;border:1px solid var(--input-border);background:var(--input-bg);width:100%;min-width:0;color:var(--input-text);border-radius:6px;outline:none;padding:0 10px;font-size:12px}.cpl-profile-editor-field>input,.cpl-profile-editor-field>select{height:36px}.cpl-profile-editor-field>textarea{resize:vertical;min-height:76px;padding:9px 10px;line-height:1.45}.cpl-profile-editor-field>input:focus,.cpl-profile-editor-field>select:focus,.cpl-profile-editor-field>textarea:focus{border-color:var(--color-primary)}.cpl-profile-editor-field>input:disabled,.cpl-profile-editor-field>select:disabled,.cpl-profile-editor-field>textarea:disabled{opacity:.72;cursor:default}.cpl-policy-editor-panel{width:min(760px,100%)}#cpl-policy-editor-modal{z-index:1200}.cpl-policy-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.cpl-policy-editor-section{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:8px;gap:10px;padding:12px;display:grid}.cpl-policy-editor-section h4{color:var(--text-color);margin:0;font-size:13px}.cpl-profile-mode-options{border:1px solid var(--input-border);border-radius:6px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.cpl-profile-mode-option{border-right:1px solid var(--input-border);background:var(--item-bg);min-height:36px;color:var(--text-color);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:600;display:flex}.cpl-profile-mode-option:last-child{border-right:0}.cpl-profile-mode-option:has(input:checked){background:var(--hover-bg);color:var(--primary-text)}.cpl-profile-mode-option input{margin:0}.cpl-profile-slots{gap:8px;display:grid}.cpl-profile-slots-header,.cpl-profile-slot-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.cpl-profile-slots-header h4,.cpl-profile-slot-title strong{color:var(--text-color);margin:0;font-size:13px}.cpl-profile-slot{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(160px,.5fr) auto;gap:10px;padding:12px;display:grid}.cpl-profile-slot-title{grid-column:1/-1}.cpl-profile-slot-toggles{flex-wrap:wrap;align-items:end;gap:10px;padding-bottom:7px;display:flex}.cpl-profile-slot-toggles label{color:var(--secondary-text);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.cpl-profile-slot-toggles input{margin:0}.cpl-profile-slot .cpl-profile-editor-field:last-child:nth-child(5){grid-column:1/-1}.cpl-editor-message,.cpl-editor-note{border:1px solid var(--panel-border);background:var(--item-bg);color:var(--secondary-text);border-radius:6px;margin:0;padding:8px 10px;font-size:12px;line-height:1.45}.cpl-editor-message.is-error,.cpl-editor-note.is-error{color:var(--color-danger,#dc2626);background:#dc262614;border-color:#dc262657}.cpl-gamepad-settings-panel{width:min(960px,100%)}#cpl-gamepad-settings-modal{z-index:1200}.cpl-gamepad-settings-body{gap:0;padding:0 18px}.cpl-gamepad-settings-section{border-bottom:1px solid var(--panel-border);gap:10px;padding:16px 0;display:grid}.cpl-gamepad-settings-section:last-of-type{border-bottom:0}.cpl-gamepad-settings-section h4{color:var(--text-color);margin:0;font-size:13px}.cpl-gamepad-scope-options{grid-template-columns:repeat(2,minmax(0,1fr))}.cpl-gamepad-source-note{color:var(--secondary-text);margin:0;font-size:11px;line-height:1.45}.cpl-gamepad-speed-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.cpl-gamepad-axis-grid,.cpl-gamepad-chord-list{gap:8px;display:grid}.cpl-gamepad-axis-row{color:var(--secondary-text);grid-template-columns:minmax(100px,.35fr) minmax(180px,1fr) 52px;align-items:center;gap:10px;font-size:12px;display:grid}.cpl-gamepad-axis-row select,.cpl-gamepad-button-row select,.cpl-gamepad-chord-row select{box-sizing:border-box;border:1px solid var(--input-border);background:var(--input-bg);width:100%;min-width:0;height:34px;color:var(--input-text);border-radius:6px;padding:0 8px;font-size:12px}.cpl-gamepad-axis-value{color:var(--primary-text);text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.cpl-gamepad-button-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;display:grid}.cpl-gamepad-button-row{grid-template-columns:88px minmax(0,1fr);align-items:center;gap:8px;display:grid}.cpl-gamepad-button-indicator{box-sizing:border-box;border:1px solid var(--panel-border);background:var(--item-bg);min-height:32px;color:var(--secondary-text);border-radius:6px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.cpl-gamepad-button-indicator.is-active{border-color:var(--color-primary);background:var(--hover-bg);color:var(--color-primary)}.cpl-gamepad-chord-row{grid-template-columns:minmax(100px,.45fr) minmax(100px,.45fr) minmax(180px,1fr) 32px;align-items:center;gap:8px;display:grid}.cpl-gamepad-test-header{align-items:center;gap:12px;display:flex}.cpl-gamepad-test-header .is-active{border-color:var(--color-primary);color:var(--color-primary)}.cpl-gamepad-settings-footer{justify-content:flex-start}.cpl-gamepad-footer-spacer{flex:1}@media (width<=900px){.cpl-shell,.cpl-toolbar{grid-template-columns:1fr}.control-policy-library-view{padding:14px}.cpl-detail{max-height:none;position:static;overflow:visible}.cpl-profile-slot{grid-template-columns:1fr 1fr}.cpl-profile-slot-toggles{grid-column:1/-1}}@media (width<=620px){.cpl-header{flex-direction:column}.cpl-header-actions{width:100%}.cpl-header-actions .cpl-primary-btn,.cpl-header-actions .cpl-secondary-btn{flex:1}.cpl-focus-strip{flex-direction:column;align-items:stretch}.cpl-focus-actions{justify-content:stretch}.cpl-focus-actions .cpl-primary-btn,.cpl-focus-actions .cpl-secondary-btn{flex:1}.cpl-profile-editor-modal{align-items:stretch;padding:10px}.cpl-profile-editor-panel{max-height:none}.cpl-profile-mode-options,.cpl-policy-editor-grid{grid-template-columns:1fr}.cpl-profile-mode-option{border-right:0;border-bottom:1px solid var(--input-border);justify-content:flex-start}.cpl-profile-mode-option:last-child{border-bottom:0}.cpl-profile-slot{grid-template-columns:1fr}.cpl-profile-slot-toggles{grid-column:auto;padding-bottom:0}.cpl-gamepad-scope-options,.cpl-gamepad-speed-grid,.cpl-gamepad-button-grid{grid-template-columns:1fr}.cpl-gamepad-axis-row{grid-template-columns:88px minmax(0,1fr) 46px}.cpl-gamepad-chord-row{grid-template-columns:1fr 1fr 32px}.cpl-gamepad-chord-row select:nth-child(3){grid-column:1/3}}.mech-view-select{border:1px solid var(--panel-border);background:var(--item-bg);height:23px;color:var(--text-color);border-radius:4px;outline:none;padding:2px 22px 2px 8px;font-size:11px}.mech-view-select:focus{border-color:var(--color-primary)}.user-dropdown-header{border-bottom:1px solid var(--panel-border);margin-bottom:4px;padding:10px 12px}.user-dropdown-name{color:var(--text-color);font-size:13px;font-weight:700}.user-dropdown-role{color:var(--secondary-text);font-size:11px}.cat-progress-bg{background:var(--item-bg);border-radius:11px;overflow:hidden}.cat-progress-bar{color:#fff;border-radius:11px;align-items:center;height:100%;padding-left:10px;font-size:11px;font-weight:600;display:flex}.empty-state{text-align:center;color:var(--hint-text);padding:60px 20px}.empty-state-icon{margin-bottom:16px;font-size:48px}.empty-state-text{font-size:14px}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);outline:none}.problem-table-wrap{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-sm);border-radius:12px;overflow:hidden}[data-theme=dark] .problem-table-wrap{background:var(--bg-surface);border-color:var(--border-color);box-shadow:0 1px 4px #0000004d}.problem-table-wrap .problem-table th,.problem-table-wrap .problem-table td{padding:12px 14px}.modal-overlay{backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.visible{display:flex}[data-theme=dark] .modal-overlay{background:#0009}.modal-content{background:var(--panel-bg);width:540px;max-width:90vw;max-height:88vh;box-shadow:var(--shadow-lg);border-radius:16px;overflow:auto}[data-theme=dark] .modal-content{background:var(--bg-surface);box-shadow:0 20px 60px #0009}.modal-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-title{color:var(--text-color);font-size:16px;font-weight:700}[data-theme=dark] .modal-title{color:var(--text-primary)}.modal-body{padding:20px 22px}.modal-footer{border-top:1px solid var(--panel-border);justify-content:flex-end;gap:10px;padding:14px 22px;display:flex}.step-orientation-content{width:520px}.step-orientation-target,.step-orientation-hint{color:var(--secondary-text);margin-top:4px;font-size:11px}.step-orientation-rule{border:1px solid var(--panel-border);background:var(--item-bg);color:var(--text-color);border-radius:6px;margin-bottom:16px;padding:10px 12px;font-size:12px}.step-orientation-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px 12px;display:grid}.step-orientation-grid label,.step-orientation-dof{color:var(--secondary-text);gap:5px;font-size:11px;display:grid}.step-orientation-grid input,.step-orientation-dof input{border:1px solid var(--panel-border);background:var(--bg-color);height:32px;color:var(--text-color);font:inherit;border-radius:5px;padding:0 9px}.step-orientation-shortcuts{gap:5px;display:flex}.step-orientation-shortcuts button{border:1px solid var(--panel-border);background:var(--item-bg);height:32px;color:var(--text-color);cursor:pointer;border-radius:5px;padding:0 9px}.step-orientation-dof{margin-top:16px}.step-orientation-hint{line-height:1.5}.step-orientation-error{color:var(--color-danger);margin-top:10px;font-size:12px}.gantt-detail-modal{z-index:10001}.gantt-detail-modal-content{width:680px;max-width:min(92vw,680px);overflow:hidden}.gantt-detail-modal-body{max-height:calc(88vh - 132px);overflow-y:auto}.gantt-detail-close{color:var(--hint-text);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1}.gantt-detail-close:hover{color:var(--text-color)}@media (width<=640px){.gantt-detail-modal-content{width:calc(100vw - 24px);max-width:none}.gantt-detail-modal-body{padding:16px}.gantt-detail-modal .detail-field-row{display:block}.gantt-detail-modal .detail-field-row .detail-field{margin-bottom:12px}}.motor-library-modal{z-index:104;backdrop-filter:none;pointer-events:none;background:0 0!important}.motor-library-shell{border:1px solid var(--panel-border);pointer-events:auto;border-radius:8px;flex-direction:column;width:clamp(540px,40vw,640px);max-width:none;height:min(680px,100vh - 120px);max-height:none;display:flex;position:fixed;top:84px;right:12px;overflow:hidden}.motor-library-header{cursor:move;user-select:none;touch-action:none;flex-shrink:0}.motor-library-header button{cursor:pointer}body.motor-library-dragging{cursor:move;user-select:none}.motor-library-header p{color:var(--secondary-text);margin:5px 0 0;font-size:12px}.motor-library-kicker{color:var(--text-accent);letter-spacing:.12em;margin-bottom:5px;font-size:9px;font-weight:700}.motor-library-close{border:1px solid var(--panel-border);width:30px;height:30px;color:var(--secondary-text);cursor:pointer;background:0 0;border-radius:6px;font-size:20px;line-height:1}.motor-library-close:hover{color:var(--text-color);background:var(--hover-bg)}.motor-library-body{flex:1;grid-template-columns:180px minmax(0,1fr);min-height:0;display:grid}.motor-library-sidebar{border-right:1px solid var(--panel-border);background:var(--item-bg);min-height:0;padding:12px}.motor-library-search{border:1px solid var(--input-border);color:var(--secondary-text);background:var(--input-bg);border-radius:6px;align-items:center;gap:7px;margin-bottom:10px;padding:7px 9px;display:flex}.motor-library-search input{width:100%;min-width:0;color:var(--input-text);background:0 0;border:0;outline:0;font-size:12px}.motor-library-list{overscroll-behavior:contain;scrollbar-gutter:stable;align-content:start;gap:3px;height:calc(100% - 43px);display:grid;overflow-y:auto}.motor-library-item{width:100%;color:var(--text-color);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:10px;display:flex}.motor-library-item:hover{background:var(--hover-bg)}.motor-library-item.is-selected{border-color:var(--border-focus);background:var(--selected-bg)}.motor-library-item>span:first-child{gap:3px;min-width:0;display:grid}.motor-library-item strong{font:600 12px/1.3 var(--font-family-mono)}.motor-library-item small{color:var(--secondary-text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.motor-library-ready{width:max-content;color:var(--secondary-text);background:var(--hover-bg);white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 6px;font-size:9px;display:inline-flex}.motor-library-ready.is-ready{color:var(--color-success-text);background:var(--color-success-light)}.motor-library-ready.is-warning{color:var(--color-warning-text);background:var(--color-warning-light)}.motor-library-ready.is-missing{color:var(--color-danger-text);background:var(--color-danger-light)}.motor-library-ready.is-reference{color:var(--secondary-text);background:var(--item-bg);border:1px solid var(--panel-border)}.motor-library-detail{overscroll-behavior:contain;scrollbar-gutter:stable;min-width:0;color:var(--text-color);padding:18px 18px 26px;overflow-y:auto}.motor-library-detail-head{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.motor-library-detail-head h4{margin:5px 0 0;font-size:22px;font-weight:600}.motor-library-model{color:var(--text-accent);font:700 11px/1.3 var(--font-family-mono);letter-spacing:.06em}.motor-training-state{white-space:nowrap;border-radius:5px;padding:5px 8px;font-size:10px}.motor-training-state.is-ready{color:var(--color-success-text);background:var(--color-success-light)}.motor-training-state.is-warning{color:var(--color-warning-text);background:var(--color-warning-light)}.motor-library-warning,.motor-library-error{border:1px solid var(--color-warning);color:var(--color-warning-text);background:var(--color-warning-light);border-radius:6px;margin-top:14px;padding:10px 12px;font-size:11px;line-height:1.5}.motor-library-error{border-color:var(--color-danger);color:var(--color-danger-text);background:var(--color-danger-light)}.motor-library-section{margin-top:24px}.motor-library-section h5{color:var(--text-color);margin:0 0 10px;font-size:12px;font-weight:650}.motor-library-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.motor-library-section-heading span{color:var(--secondary-text);font-size:10px}.motor-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;display:grid}.motor-performance-grid>div{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:5px;min-width:0;padding:9px 10px}.motor-performance-grid dt{color:var(--secondary-text);font-size:9px}.motor-performance-grid dd{font:600 11px/1.3 var(--font-family-mono);text-overflow:ellipsis;white-space:nowrap;margin:4px 0 0;overflow:hidden}.motor-inertia-table-wrap{border:1px solid var(--panel-border);border-radius:6px;overflow-x:auto}.motor-inertia-table{border-collapse:collapse;width:100%;font-size:10px}.motor-inertia-table th,.motor-inertia-table td{border-bottom:1px solid var(--panel-border);text-align:left;white-space:nowrap;padding:8px 9px}.motor-inertia-table th{color:var(--secondary-text);font-weight:500}.motor-inertia-table td{font-family:var(--font-family-mono)}.motor-inertia-table tr:last-child td{border-bottom:0}.motor-curve-grid{grid-template-columns:1fr;gap:8px;display:grid}.motor-curve-card{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:6px;min-width:0;padding:10px}.motor-curve-heading{justify-content:space-between;align-items:center;gap:7px;display:flex}.motor-curve-heading strong{font:700 12px/1.3 var(--font-family-mono)}.motor-curve-heading>span{color:var(--secondary-text);font-size:9px}.motor-curve-profile{margin-top:9px}.motor-curve-profile+.motor-curve-profile{border-top:1px solid var(--panel-border);padding-top:10px}.motor-curve-profile-heading{justify-content:space-between;align-items:center;gap:6px;display:flex}.motor-curve-profile-heading>strong{color:var(--secondary-text);font-size:9px;font-weight:600}.motor-curve-chart{width:100%;height:148px;color:var(--secondary-text);margin-top:7px;display:block}.motor-curve-axis{fill:none;stroke:var(--panel-border);stroke-width:1px}.motor-curve-grid-line{fill:none;stroke:var(--panel-border);stroke-width:.7px;stroke-dasharray:3 3;opacity:.8}.motor-tn-measured,.motor-tn-fit{fill:none;vector-effect:non-scaling-stroke}.motor-tn-measured{stroke:#5674d8;stroke-width:1.5px}.motor-tn-fit{stroke:#ff7a00;stroke-width:1.7px;stroke-dasharray:5 3}.motor-tn-point{fill:var(--panel-bg);stroke:#5674d8;stroke-width:1px;vector-effect:non-scaling-stroke}.motor-tn-point.is-outlier{fill:#d84d4d;stroke:#d84d4d}.motor-curve-chart text{fill:currentColor;font:8px var(--font-family-mono)}.motor-curve-legend{color:var(--secondary-text);flex-wrap:wrap;gap:5px 10px;margin-top:2px;font-size:8px;display:flex}.motor-curve-legend-item{align-items:center;gap:3px;display:inline-flex}.motor-curve-legend-item i{background:currentColor;width:10px;height:2px;display:inline-block}.motor-curve-legend-item.is-measured{color:#5674d8}.motor-curve-legend-item.is-fit{color:#ff7a00}.motor-curve-legend-item.is-fit i{background:0 0;border-top:2px dashed;height:0}.motor-curve-measures{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:8px 0 0;display:grid}.motor-curve-measures div{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:4px;min-width:0;padding:5px 6px}.motor-curve-measures dt{color:var(--secondary-text);font-size:8px}.motor-curve-measures dd{color:var(--text-color);font:600 9px/1.3 var(--font-family-mono);margin:2px 0 0}.motor-curve-reference,.motor-curve-unverified,.motor-fit-review{border:1px solid var(--panel-border);border-radius:5px;margin-top:8px;padding:8px 9px;font-size:9px;line-height:1.5}.motor-curve-reference{color:var(--secondary-text);background:var(--panel-bg)}.motor-curve-reference strong,.motor-curve-reference>span{display:block}.motor-curve-reference strong{color:var(--text-color);font-size:10px}.motor-curve-reference>div{flex-wrap:wrap;gap:5px;margin-top:7px;display:flex}.motor-curve-reference code{color:var(--secondary-text);background:var(--item-bg);border-radius:3px;padding:3px 5px;font-size:8px}.motor-curve-unverified{color:var(--color-warning-text);border-color:var(--color-warning);background:var(--color-warning-light)}.motor-fit-review{color:var(--secondary-text);background:var(--panel-bg)}.motor-fit-review.is-warning{color:var(--color-warning-text);border-color:var(--color-warning);background:var(--color-warning-light)}.motor-raw-data{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:5px;margin-top:7px}.motor-raw-data summary{color:var(--secondary-text);cursor:pointer;user-select:none;padding:7px 9px;font-size:9px}.motor-raw-data>div{border-top:1px solid var(--panel-border);max-height:220px;overflow:auto}.motor-raw-data table{border-collapse:collapse;width:100%;font-size:8px}.motor-raw-data th,.motor-raw-data td{border-bottom:1px solid var(--panel-border);text-align:right;white-space:nowrap;padding:5px 7px}.motor-raw-data th{color:var(--secondary-text);background:var(--panel-bg);font-weight:500;position:sticky;top:0}.motor-raw-data th small{color:var(--hint-text);font-size:7px;display:block}.motor-raw-data td{color:var(--text-color);font-family:var(--font-family-mono)}.motor-raw-data tr:last-child td{border-bottom:0}.motor-curve-meta{color:var(--secondary-text);margin-top:8px;font-size:9px}.motor-curve-fit{overflow-wrap:anywhere;color:var(--text-color);white-space:normal;margin-top:6px;font-size:8px;line-height:1.5;display:block}.motor-curve-source{color:var(--hint-text);text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:8px;overflow:hidden}.motor-assets{gap:5px;display:grid}.motor-step-subheading{color:var(--secondary-text);margin:10px 0 6px;font-size:9px;font-weight:600}.motor-asset-row{border:1px solid var(--panel-border);border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.motor-asset-row>span{gap:2px;min-width:0;display:grid}.motor-asset-row strong{font:500 10px/1.35 var(--font-family-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.motor-asset-row small{color:var(--secondary-text);font-size:9px}.motor-asset-row button{border:1px solid var(--input-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);cursor:pointer;border-radius:5px;padding:5px 8px;font-size:10px}.motor-asset-row button:hover{border-color:var(--border-focus);color:var(--text-accent)}.motor-drawing-note{border:1px solid var(--panel-border);color:var(--secondary-text);background:var(--item-bg);border-radius:5px;margin-bottom:6px;padding:8px 9px;font-size:8px;line-height:1.5}.motor-drawing-versions{gap:5px;display:grid}.motor-drawing-version{border:1px solid var(--panel-border);border-radius:5px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.motor-drawing-version>div:first-child{gap:2px;min-width:0;display:grid}.motor-drawing-version strong{color:var(--text-color);font:600 9px/1.35 var(--font-family-mono)}.motor-drawing-version small,.motor-drawing-version span{color:var(--secondary-text);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.motor-drawing-downloads{flex:none;gap:4px;display:grid}.motor-drawing-downloads button{border:1px solid var(--input-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text);cursor:pointer;border-radius:5px;padding:5px 7px;font-size:8px}.motor-drawing-downloads button:hover{border-color:var(--border-focus);color:var(--text-accent)}.motor-library-empty{color:var(--secondary-text);text-align:center;padding:28px 12px;font-size:11px}@media (width<=820px){.motor-library-shell{width:calc(100vw - 16px);height:calc(100vh - 84px);top:76px;right:8px}.motor-library-body{grid-template-columns:190px minmax(0,1fr)}.motor-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.motor-curve-grid{grid-template-columns:1fr}}@media (width<=580px){.motor-library-shell{width:96vw;height:94vh}.motor-library-body{flex-direction:column;display:flex}.motor-library-sidebar{border-right:0;border-bottom:1px solid var(--panel-border);height:180px}.motor-library-list{height:125px}.motor-library-detail{padding:16px}.motor-library-detail-head{display:grid}}.after-sales-location-tray{z-index:104;pointer-events:auto;width:min(360px,100vw - 32px);max-height:min(52vh,520px);color:var(--primary-text);font-feature-settings:"cv01", "ss03";position:absolute;bottom:16px;right:16px;overflow:hidden}.after-sales-location-tray[hidden]{display:none}.after-sales-location-tray details{background:color-mix(in srgb, var(--panel-bg) 94%, transparent);backdrop-filter:blur(12px);border:1px solid #ffffff14;border-radius:8px;overflow:hidden}.after-sales-location-tray summary{cursor:grab;user-select:none;touch-action:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:13px;font-weight:510;display:flex}.after-sales-location-tray summary:active{cursor:grabbing}.after-sales-location-tray summary small,.after-sales-tray-card span,.after-sales-tray-card small{color:var(--secondary-text);font-size:11px;font-weight:400}.after-sales-tray-list{gap:6px;max-height:min(34vh,320px);padding:0 8px 8px;display:grid;overflow-y:auto}.after-sales-tray-guide{border:1px solid color-mix(in srgb, var(--color-primary) 32%, transparent);background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-radius:6px;gap:3px;margin:0 8px 8px;padding:9px 10px;display:grid}.after-sales-tray-guide strong{color:var(--color-primary);font-size:11px;font-weight:590}.after-sales-tray-guide span{color:var(--secondary-text);font-size:11px;line-height:1.5}.after-sales-tray-card{width:100%;color:inherit;text-align:left;background:#ffffff05;border:1px solid #ffffff14;border-radius:6px;gap:4px;padding:10px;display:grid}.after-sales-tray-card:hover,.after-sales-tray-card.is-selected{border-color:var(--color-primary);background:#5e6ad21f}.after-sales-tray-card.is-resolved strong{color:var(--color-success)}.after-sales-tray-card strong{font-size:12px;font-weight:510}.after-sales-tray-actions{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.after-sales-tray-actions button{min-height:28px;font:inherit;cursor:pointer;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:510}.after-sales-tray-detail{border:1px solid var(--panel-border);background:var(--item-bg);color:var(--primary-text)}.after-sales-tray-locate{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff}.after-sales-tray-detail:hover{background:var(--hover-bg)}.after-sales-tray-locate:hover{background:var(--color-primary-hover)}.after-sales-tray-actions button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.after-sales-tray-actions button:disabled{cursor:not-allowed;opacity:.45}.after-sales-tray-empty{color:var(--secondary-text);text-align:center;padding:16px;font-size:12px}.form-input,.form-textarea,.form-select{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--input-text);box-sizing:border-box;border-radius:8px;padding:9px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);outline:none}.form-textarea{resize:vertical;min-height:80px}[data-theme=dark] .form-input,[data-theme=dark] .form-textarea,[data-theme=dark] .form-select{background:var(--input-bg);color:var(--text-primary);border-color:var(--input-bg)}.form-row{margin-bottom:16px}.form-label{color:var(--text-color);margin-bottom:6px;font-size:12px;font-weight:600;display:block}[data-theme=dark] .form-label{color:var(--text-secondary)}.form-row-inline{gap:12px;display:flex}.form-row-inline>div{flex:1}.radio-group{flex-wrap:wrap;gap:8px;display:flex}.radio-item{border:1px solid var(--input-border);cursor:pointer;background:var(--input-bg);border-radius:8px;padding:6px 12px;font-size:12px;transition:all .15s}.radio-item.selected{background:var(--color-primary-dark);color:#fff;border-color:var(--color-primary-dark)}[data-theme=dark] .radio-item{background:var(--input-bg);color:var(--text-primary);border-color:var(--input-bg)}[data-theme=dark] .radio-item.selected{background:var(--color-primary);border-color:var(--color-primary)}.status-pill{white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.status-pill.open{background:var(--color-critical-bg);color:var(--color-critical-text)}.status-pill.progress{background:var(--color-major-bg);color:var(--color-major-text)}.status-pill.resolved{background:var(--color-success-light);color:var(--color-success-dark)}.status-pill.closed{background:var(--color-status-closed-bg);color:var(--color-status-closed-text)}[data-theme=dark] .status-pill.open{color:var(--color-danger-text);background:#ef444433}[data-theme=dark] .status-pill.progress{color:var(--color-warning-text);background:#f9731633}[data-theme=dark] .status-pill.resolved{color:var(--color-success-text);background:#22c55e33}[data-theme=dark] .status-pill.closed{color:var(--color-status-closed-text);background:#9ca3af33}.priority-dot{border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.priority-dot.p0{background:var(--color-danger)}.priority-dot.p1{background:var(--color-major)}.priority-dot.p2{background:#eab308}.action-btns{gap:6px;display:flex}.action-btn{border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-color);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:11px}.action-btn:hover{background:var(--hover-bg);border-color:var(--color-primary-dark);color:var(--color-primary-dark)}.action-btn.danger:hover{border-color:var(--color-danger-dark);color:var(--color-danger-dark)}[data-theme=dark] .action-btn{background:var(--input-bg);color:var(--text-primary);border-color:var(--input-bg)}[data-theme=dark] .action-btn:hover{background:var(--hover-bg);border-color:var(--color-primary);color:#6cb6ff}[data-theme=dark] .action-btn.danger:hover{border-color:var(--color-danger);color:var(--color-danger)}.progress-wrap{background:var(--item-bg);border-radius:4px;width:120px;height:8px;position:relative;overflow:hidden}.progress-bar{background:var(--color-primary);border-radius:4px;height:100%;transition:width .4s}[data-theme=dark] .progress-wrap{background:var(--input-bg)}[data-theme=dark] .progress-bar{background:var(--color-primary)}.progress-text{color:var(--secondary-text);margin-top:3px;font-size:11px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.stat-card{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-sm);border-radius:14px;padding:20px}[data-theme=dark] .stat-card{background:var(--bg-surface);border-color:var(--border-color);box-shadow:0 1px 4px #0000004d}.stat-label{color:var(--secondary-text);margin-bottom:8px;font-size:12px}.stat-value{color:var(--text-color);font-size:32px;font-weight:800;line-height:1.1}[data-theme=dark] .stat-value{color:var(--text-primary)}.stat-change{align-items:center;gap:4px;margin-top:6px;font-size:12px;display:flex}.stat-change.up{color:var(--color-danger)}.stat-change.down{color:var(--color-success)}.stat-change.neutral{color:var(--secondary-text)}.report-section{background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--shadow-sm);border-radius:14px;margin-bottom:16px;padding:20px}[data-theme=dark] .report-section{background:var(--bg-surface);border-color:var(--border-color);box-shadow:0 1px 4px #0000004d}.section-title{color:var(--text-color);align-items:center;gap:8px;margin-bottom:16px;font-size:15px;font-weight:700;display:flex}[data-theme=dark] .section-title{color:var(--text-primary)}.cat-row{align-items:center;gap:14px;margin-bottom:12px;display:flex}.cat-name{width:100px;color:var(--text-color);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}[data-theme=dark] .cat-name{color:var(--text-primary)}.cat-progress{background:var(--item-bg);border-radius:11px;flex:1;height:22px;position:relative;overflow:hidden}[data-theme=dark] .cat-progress{background:var(--input-bg)}.cat-progress-bar{color:#fff;border-radius:11px;align-items:center;height:100%;padding-left:10px;font-size:11px;font-weight:600;transition:width .6s;display:flex}.cat-stats{width:130px;color:var(--secondary-text);text-align:right;font-size:12px}.severity-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.severity-card{background:var(--item-bg);border-radius:10px;padding:16px}[data-theme=dark] .severity-card{background:var(--bg-elevated)}.severity-icon-lg{margin-bottom:8px;font-size:24px}.severity-stat{color:var(--text-color);margin-bottom:4px;font-size:20px;font-weight:700}[data-theme=dark] .severity-stat{color:var(--text-primary)}.severity-label{color:var(--secondary-text);font-size:11px}.task-item{border:1px solid var(--panel-border);background:var(--item-bg);border-radius:10px;margin-bottom:10px;padding:14px}[data-theme=dark] .task-item{background:var(--bg-elevated);border-color:var(--border-color)}.task-item-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.task-checkbox{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}[data-theme=dark] .task-checkbox{accent-color:#0e639c}.task-cat-badge{color:#fff;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:600}.task-title{color:var(--text-color);flex:1;font-size:13px;font-weight:600}[data-theme=dark] .task-title{color:var(--text-primary)}.task-meta{color:var(--secondary-text);gap:10px;font-size:11px;display:flex}.task-desc{color:var(--secondary-text);margin-bottom:6px;margin-left:28px;font-size:12px;line-height:1.5}.task-criteria{color:var(--hint-text);margin-left:28px;font-size:11px}.task-criteria li{margin-left:14px}[data-theme=dark] .gantt-container{background:var(--bg-primary)!important}[data-theme=dark] .gantt-toolbar{background:var(--bg-surface)!important;border-color:var(--border-color)!important}[data-theme=dark] .gantt-toolbar label{color:var(--text-secondary)!important}[data-theme=dark] .gantt-toolbar select{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] .gantt-task-list{background:var(--bg-surface)!important;border-color:var(--border-color)!important}[data-theme=dark] .gantt-task-list-header{background:var(--bg-elevated)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .gantt-task-row{color:var(--text-primary)!important;border-color:var(--border-color)!important}[data-theme=dark] .gantt-task-row:hover{background:var(--hover-bg)!important}[data-theme=dark] .gantt-task-row.group-header{color:var(--color-info)!important;background:var(--selected-bg)!important}[data-theme=dark] .gantt-task-row .task-severity.P0{color:var(--color-danger-text);background:#ef444433}[data-theme=dark] .gantt-task-row .task-severity.P1{color:var(--color-warning-text);background:#f9731633}[data-theme=dark] .gantt-task-row .task-severity.P2{color:#6cb6ff;background:#2979ff33}[data-theme=dark] .gantt-task-row .task-severity.P3{color:var(--color-status-closed-text);background:#9ca3af33}[data-theme=dark] .gantt-timeline{background:var(--bg-primary)!important}[data-theme=dark] .gantt-timeline-header{background:var(--bg-surface)!important;border-color:var(--border-color)!important}[data-theme=dark] .gantt-grid-line{stroke:#3e3e42!important}[data-theme=dark] .gantt-today-label{fill:#fca5a5!important}[data-theme=dark] .gantt-tooltip{background:var(--bg-surface)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-theme=dark] .gantt-tooltip .tt-title{color:var(--color-info)!important}[data-theme=dark] .gantt-empty-state{color:var(--text-secondary)!important}.gantt-drag-hint{color:var(--secondary-text);white-space:nowrap;font-size:11px}.gantt-timeline-draggable{cursor:grab;touch-action:pan-y;user-select:none}.gantt-timeline-draggable.is-dragging{cursor:grabbing}.gantt-timeline-draggable.is-dragging svg{pointer-events:none}#cat-gantt-wrap{flex-direction:column;flex:1;min-height:0;display:none;overflow:hidden}#cat-gantt-wrap .gantt-toolbar{background:var(--item-bg);border:1px solid var(--panel-border);border-radius:8px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;margin-bottom:10px;padding:8px 12px;display:flex;position:static;top:auto}#cat-gantt-wrap .gantt-tb-group{align-items:center;gap:4px;display:flex}#cat-gantt-wrap .gantt-tb-label{color:var(--secondary-text);margin-right:2px;font-size:11px}#cat-gantt-wrap .gantt-tb-btn{border:1px solid var(--panel-border);background:var(--panel-bg);color:var(--primary-text);cursor:pointer;border-radius:5px;padding:4px 8px;font-size:10px;transition:background .15s,color .15s}#cat-gantt-wrap .gantt-tb-btn:hover{background:var(--color-primary-dark);color:#fff;border-color:var(--color-primary-dark)}#cat-gantt-wrap .gantt-tb-btn.active{background:var(--color-primary-dark);color:#fff;border-color:var(--color-primary-dark);font-weight:700}#cat-gantt-body{border:1px solid var(--panel-border);background:var(--input-bg);border-radius:8px;position:relative;overflow:hidden}#cat-gantt-body .gantt-body{flex:1;height:100%;display:flex;overflow:hidden}#cat-gantt-body .gantt-task-list{border-right:1px solid var(--panel-border);background:var(--item-bg);flex-shrink:0;max-height:none;overflow-y:auto}#cat-gantt-body .gantt-timeline{background:var(--input-bg);flex:1;overflow:auto}[data-theme=dark] #cat-gantt-wrap .gantt-toolbar{background:var(--bg-surface);border-color:var(--border-color)}[data-theme=dark] #cat-gantt-wrap .gantt-tb-btn{background:var(--input-bg);color:var(--text-primary);border-color:var(--input-bg)}[data-theme=dark] #cat-gantt-wrap .gantt-tb-btn:hover,[data-theme=dark] #cat-gantt-wrap .gantt-tb-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}[data-theme=dark] #cat-gantt-wrap .gantt-tb-label{color:var(--text-secondary)}[data-theme=dark] #cat-gantt-body{border-color:var(--border-color);background:var(--bg-primary)}[data-theme=dark] #cat-gantt-body .gantt-task-list{background:var(--bg-surface);border-color:var(--border-color)}[data-theme=dark] #cat-gantt-body .gantt-timeline{background:var(--bg-primary)}[data-theme=dark] .problem-table-wrap .problem-table th{background:var(--bg-elevated)!important;color:var(--text-secondary)!important;border-color:var(--border-color)!important}[data-theme=dark] .problem-table-wrap .problem-table td{color:var(--text-primary)!important;border-color:var(--border-color)!important}[data-theme=dark] .problem-table-wrap .problem-table tbody tr:hover td{background:var(--hover-bg)!important}#problem-modal,#import-modal,#requirement-modal,#llm-review-modal{backdrop-filter:blur(4px)}[data-theme=dark] #problem-modal>div,[data-theme=dark] #requirement-modal>div,[data-theme=dark] #import-modal>div,[data-theme=dark] #llm-review-modal>div{background:var(--bg-surface)!important;box-shadow:0 20px 60px #0009!important}[data-theme=dark] #problem-title,[data-theme=dark] #problem-description,[data-theme=dark] #problem-severity,[data-theme=dark] #problem-status,[data-theme=dark] #problem-subcategory,[data-theme=dark] #problem-due-date,[data-theme=dark] #problem-joint,[data-theme=dark] #problem-assignee,[data-theme=dark] #req-title,[data-theme=dark] #req-description,[data-theme=dark] #req-priority,[data-theme=dark] #req-source{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important;border-radius:8px!important}[data-theme=dark] #problem-submit-btn,[data-theme=dark] #req-submit-btn,[data-theme=dark] #import-confirm-btn,[data-theme=dark] #llm-review-distribute-btn,[data-theme=dark] #add-problem-btn,[data-theme=dark] #add-requirement-btn{background:var(--color-primary)!important}[data-theme=dark] #problem-modal button[onclick*=close],[data-theme=dark] #requirement-modal button[onclick*=close],[data-theme=dark] #import-modal button[onclick*=close],[data-theme=dark] #llm-review-modal button[onclick*=close],[data-theme=dark] #llm-review-modal button[onclick*=取消]{background:var(--btn-secondary-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] #report-view{background:var(--bg-primary)!important}[data-theme=dark] #report-view h2,[data-theme=dark] #report-view h3,[data-theme=dark] #report-view h4,[data-theme=dark] #report-view p,[data-theme=dark] #report-view span,[data-theme=dark] #report-view td,[data-theme=dark] #report-view th{color:var(--text-primary)!important}[data-theme=dark] #requirements-view{background:var(--bg-primary)!important}[data-theme=dark] #requirements-view h2{color:var(--text-primary)!important}[data-theme=dark] #problem-list-view{background:var(--bg-primary)!important}[data-theme=dark] #filter-toolbar,[data-theme=dark] #req-filter-toolbar{background:var(--bg-surface)!important;box-shadow:0 1px 4px #0000004d!important}[data-theme=dark] #filter-toolbar select,[data-theme=dark] #filter-toolbar input,[data-theme=dark] #req-filter-toolbar select,[data-theme=dark] #req-filter-toolbar input,[data-theme=dark] #filter-status,[data-theme=dark] #filter-severity,[data-theme=dark] #filter-subcategory,[data-theme=dark] #filter-keyword,[data-theme=dark] #filter-sort,[data-theme=dark] #req-filter-status,[data-theme=dark] #req-filter-priority,[data-theme=dark] #req-filter-source,[data-theme=dark] #req-filter-keyword{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] #filter-clear-btn,[data-theme=dark] #req-filter-clear-btn{background:var(--btn-secondary-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] #problem-empty-state,[data-theme=dark] #req-empty-state,[data-theme=dark] #problem-empty-state p,[data-theme=dark] #req-empty-state p{color:var(--text-secondary)!important}[data-theme=dark] #llm-review-tasks>div{background:var(--bg-elevated)!important;border-color:var(--border-color)!important}[data-theme=dark] #llm-review-tasks select,[data-theme=dark] #llm-review-tasks input{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] #llm-review-info{background:var(--bg-elevated)!important}[data-theme=dark] #import-preview-table{background:var(--bg-surface)!important}[data-theme=dark] #import-preview-table th,[data-theme=dark] #import-preview-table td{background:var(--bg-surface)!important;color:var(--text-primary)!important;border-color:var(--border-color)!important}[data-theme=dark] #import-target-robot{background:var(--input-bg)!important;color:var(--text-primary)!important;border-color:var(--input-bg)!important}[data-theme=dark] #problem-progress{accent-color:#0e639c}[data-theme=dark] div[style*="background:#e8e8e8"],[data-theme=dark] div[style*="background:rgb(232, 232, 232)"]{background:var(--input-bg)!important}[data-theme=dark] a{color:var(--text-accent)!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-status-closed)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#555}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#777}.trend-chart{height:240px;margin-top:10px;position:relative;overflow-x:auto}.trend-chart-legend{gap:14px;font-size:11px;display:flex;position:absolute;top:0;right:10px}.trend-chart-legend-item{align-items:center;gap:6px;display:flex}.trend-chart-legend-line{width:14px;height:3px}.trend-chart-legend-line.created{background:var(--color-danger)}.trend-chart-legend-line.resolved{background:var(--color-success)}.cat-detail-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=1280px){.cat-detail-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=1024px){.cat-detail-grid{grid-template-columns:1fr}}.cat-detail-card{border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:12px;padding:16px;position:relative}[data-theme=dark] .cat-detail-card{background:var(--bg-surface);border-color:var(--border-color)}.cdc-header{border-bottom:1px solid var(--separator);align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.cdc-progress-ring{flex-shrink:0;width:56px;height:56px;position:relative}.cdc-title{flex:1}.cdc-name{color:var(--text-color);font-size:14px;font-weight:700}[data-theme=dark] .cdc-name{color:var(--text-primary)}.cdc-sub{color:var(--secondary-text);margin-top:2px;font-size:11px}.cdc-enter-btn{border:1px solid var(--color-primary-dark);color:var(--color-primary-dark);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:11px}.cdc-enter-btn:hover{background:var(--color-primary-dark);color:#fff}.cdc-stats-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;display:grid}.cdc-stat-box{background:var(--item-bg);text-align:center;border-radius:8px;padding:8px 6px}[data-theme=dark] .cdc-stat-box{background:var(--bg-elevated)}.cdc-stat-box .v{color:var(--text-color);font-size:16px;font-weight:700}[data-theme=dark] .cdc-stat-box .v{color:var(--text-primary)}.cdc-stat-box .l{color:var(--secondary-text);margin-top:2px;font-size:10px}.cdc-section-title{color:var(--secondary-text);text-transform:uppercase;letter-spacing:.5px;margin:10px 0 6px;font-size:11px;font-weight:700}.cdc-severity-bar{background:var(--item-bg);border-radius:4px;height:8px;margin:6px 0 4px;display:flex;overflow:hidden}[data-theme=dark] .cdc-severity-bar{background:var(--bg-elevated)}.cdc-severity-bar>span{height:100%;transition:width .3s;display:block}.cdc-severity-legend{color:var(--secondary-text);gap:10px;margin-bottom:12px;font-size:10px;display:flex}.cdc-owner-row{border-radius:6px;align-items:center;gap:8px;padding:5px 8px;font-size:11px;display:flex}.cdc-owner-row:hover{background:var(--item-bg)}[data-theme=dark] .cdc-owner-row:hover{background:var(--bg-elevated)}.cdc-owner-avatar{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;font-weight:700;display:flex}.cdc-owner-name{color:var(--text-color);flex:1}[data-theme=dark] .cdc-owner-name{color:var(--text-primary)}.cdc-overdue-row{align-items:center;gap:6px;padding:4px 0;font-size:11px;display:flex}.cdc-overdue-row .od-days{color:#dc2626;background:#ef444426;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:9px;font-weight:700}.cdc-overdue-row .od-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text-color);flex:1;overflow:hidden}[data-theme=dark] .cdc-overdue-row .od-title{color:var(--text-primary)}.cdc-weekly-comp{grid-template-columns:1fr 1fr;gap:6px;margin:10px 0;display:grid}.cdc-wc-item{background:var(--item-bg);text-align:center;border-radius:6px;padding:8px}[data-theme=dark] .cdc-wc-item{background:var(--bg-elevated)}.cdc-wc-label{color:var(--secondary-text);margin-bottom:3px;font-size:10px}.cdc-wc-value{color:var(--text-color);font-size:15px;font-weight:700}[data-theme=dark] .cdc-wc-value{color:var(--text-primary)}.cdc-wc-delta{align-items:center;gap:2px;margin-top:2px;font-size:10px;display:inline-flex}.cdc-wc-delta.up{color:var(--color-danger)}.cdc-wc-delta.down{color:var(--color-success)}.cdc-wc-delta.neutral{color:var(--secondary-text)}.cdc-mini-gantt{background:var(--item-bg);border-radius:8px;margin:10px 0;overflow:hidden}[data-theme=dark] .cdc-mini-gantt{background:var(--bg-elevated)}.cdc-mini-gantt svg{width:100%;display:block}.cdc-mg-tooltip{pointer-events:none;color:#fff;white-space:nowrap;z-index:200;opacity:0;background:#000000d9;border-radius:4px;padding:4px 8px;font-size:10px;transition:opacity .15s;position:absolute}[data-theme=dark] .cdc-mg-tooltip{background:var(--input-bg);border:1px solid #555}.cdc-pie-wrap{align-items:center;gap:12px;margin:10px 0;display:flex}.cdc-pie-wrap svg{flex-shrink:0}.cdc-pie-legend{flex:1;min-width:0}.cdc-pie-legend-item{color:var(--secondary-text);align-items:center;gap:6px;margin-bottom:3px;font-size:10px;display:flex;overflow:hidden}.cdc-pie-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px}.cdc-pie-legend-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cdc-pie-legend-count{color:var(--text-color);flex-shrink:0;font-weight:600}[data-theme=dark] .cdc-pie-legend-count{color:var(--text-primary)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}.dt-modal .dt-modal-content{flex-direction:column;width:560px;max-height:88vh;display:flex;overflow:hidden}.dt-modal .dt-modal-body{flex:1;padding-right:4px;overflow-y:auto}.dt-lead-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.dt-lead-row .dt-lead-label{width:90px;color:var(--hint-text);flex-shrink:0;font-size:12px}.dt-lead-select{border:1px solid var(--panel-border);background:var(--item-bg);color:var(--text-color);border-radius:6px;flex:1;min-height:28px;padding:4px 8px;font-size:12px}[data-theme=dark] .dt-lead-select{background:var(--input-bg);border-color:var(--input-bg);color:var(--text-primary)}.btn-micro{border:1px solid var(--panel-border);background:var(--btn-secondary-bg,#f0f0f0);color:var(--btn-secondary-text,#333);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 10px;font-size:11px;transition:all .15s}.btn-micro:hover{background:var(--hover-bg,#e0e0e0);border-color:var(--color-primary)}[data-theme=dark] .btn-micro{background:var(--input-bg);color:var(--text-primary);border-color:#4a4a4a}[data-theme=dark] .btn-micro:hover{border-color:var(--color-primary);background:#4a4a4a}.dt-scene-grid{grid-template-columns:repeat(2,1fr);gap:8px 12px;margin-bottom:8px;display:grid}@media (width>=520px){.dt-scene-grid{grid-template-columns:repeat(3,1fr)}}.dt-scene-grid label{cursor:pointer;color:var(--text-color);align-items:center;gap:6px;font-size:12px;display:flex}.dt-timing-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.dt-timing-row .dt-timing-label{color:var(--hint-text);flex-shrink:0;width:65px;font-size:12px}.dt-timing-row .form-input,.dt-timing-row .filter-select{width:auto;min-width:70px;padding:5px 8px;font-size:12px}.dt-modal-body .section-title{color:var(--text-color);border-bottom:1px solid var(--separator,#e5e5e5);align-items:center;gap:6px;margin:16px 0 8px;padding-bottom:4px;font-size:12px;font-weight:700;display:flex}[data-theme=dark] .dt-modal-body .section-title{color:var(--text-primary);border-bottom-color:#3e3e3e}.user-manage-table thead th{background:var(--item-bg);z-index:1;position:sticky;top:0}.user-manage-table tbody tr:hover{background:var(--hover-bg)}.user-manage-table td{vertical-align:middle}.user-role-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.user-role-badge.role-admin{color:#c2185b;background:#fce4ec}.user-role-badge.role-engineer{color:var(--color-primary-dark);background:#e3f2fd}.user-role-badge.role-pm{color:#f9a825;background:#fff8e1}.user-role-badge.role-visitor{color:#616161;background:#e0e0e0}[data-theme=dark] .user-role-badge.role-admin{color:#f48fb1;background:#4a1a2e}[data-theme=dark] .user-role-badge.role-engineer{color:#90caf9;background:#0d2b45}[data-theme=dark] .user-role-badge.role-pm{color:#ffe082;background:#3d3318}[data-theme=dark] .user-role-badge.role-visitor{color:#bdbdbd;background:#2a2a2a}.user-status-badge{border-radius:10px;padding:2px 6px;font-size:12px;line-height:1;display:inline-block}.user-status-badge.status-active{background:#e8f5e9}.user-status-badge.status-disabled{background:var(--btn-secondary-bg)}[data-theme=dark] .user-status-badge.status-active{background:#1a3a1a}[data-theme=dark] .user-status-badge.status-disabled{background:var(--bg-elevated)}#user-edit-form .form-row{margin-bottom:0}.um-tab-btn{color:var(--secondary-text);transition:background .15s,color .15s}.um-tab-btn:hover{color:var(--text-color);background:var(--panel-border)}.um-tab-active,[data-theme=dark] .um-tab-active{background:var(--color-primary)!important;color:#fff!important}.dt-bind-btn{transition:opacity .15s}.dt-bind-btn:hover{opacity:.8}.btn-icon{cursor:pointer;background:0 0;border:none;border-radius:4px;margin:0 2px;padding:2px 6px;font-size:14px;transition:background .15s}.btn-icon:hover{background:var(--hover-bg)}#profile-modal .modal-body{padding-bottom:8px}#profile-categories-display{word-break:break-all}#user-manage-modal .modal-body{padding:0}#user-edit-form .form-row,#user-reset-pwd-panel .form-row{margin-bottom:0}#user-edit-categories-wrap select[multiple]{min-height:80px}#user-edit-categories-wrap select[multiple] option{padding:4px 8px}#user-edit-categories-wrap select[multiple] option:checked{color:#fff;background:#2979ff}@media (width<=768px){#toolbar{border-radius:0 0 12px 12px;gap:2px;max-width:100vw;padding:6px 8px;top:0;left:0;right:0;transform:none}.tb-btn{padding:5px 8px;font-size:11px}#topbar-nav{gap:1px;padding:0 8px;overflow:auto hidden}#topbar-nav::-webkit-scrollbar{display:none}#topbar-nav{scrollbar-width:none}.robot-selector{max-width:120px}.robot-selector-meta,.nav-tab-label{display:none}.nav-tab{min-width:unset;padding:6px 8px}#mech-view-switch-bar,#control-view-switch-bar{top:52px}.panel{width:100%!important;max-width:100vw!important;max-height:55vh!important;min-width:unset!important;border-radius:12px 12px 0 0!important;inset:auto 0 0!important}}.ll-circle,.ll-rect{cursor:pointer;pointer-events:auto}.dual-picker-overlay{animation:.25s ease-out dualPickerFadeIn}@keyframes dualPickerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes dualPickerFadeOut{0%{opacity:1}to{opacity:0}}@keyframes dualPickerSlideIn{0%{opacity:0;transform:translateY(30px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dualPickerSlideOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(20px)scale(.96)}}.dual-picker-overlay.closing{animation:.2s ease-in forwards dualPickerFadeOut}.dual-picker-panel{background:var(--panel-bg);width:740px;max-width:94vw;max-height:85vh;box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;animation:.25s ease-out dualPickerSlideIn;display:flex;overflow:hidden}.dual-picker-overlay.closing .dual-picker-panel{animation:.2s ease-in forwards dualPickerSlideOut}.dual-picker-body{flex:1;gap:0;min-height:0;display:flex;overflow:hidden}.dual-picker-left{border-right:1px solid var(--panel-border);background:var(--bg-secondary);flex-direction:column;width:280px;min-width:240px;padding:16px;display:flex;overflow-y:auto}.dual-picker-right{flex-direction:column;flex:1;min-width:0;padding:16px;display:flex;overflow:hidden}.dual-picker-section-title{color:var(--secondary-text);flex-shrink:0;margin-bottom:12px;font-size:12px;font-weight:600}.dual-picker-search-wrap{flex-shrink:0;margin-bottom:12px;position:relative}.dual-picker-search-icon{pointer-events:none;font-size:13px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.dual-picker-search-input{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--input-text);box-sizing:border-box;border-radius:8px;padding:9px 32px;font-family:inherit;font-size:13px;transition:border-color .15s}.dual-picker-search-input:focus{border-color:var(--color-primary);outline:none}.dual-picker-search-clear{color:var(--hint-text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 6px;font-size:14px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.dual-picker-search-clear:hover{background:var(--hover-bg);color:var(--text-color)}.dual-picker-candidate-list{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex;overflow-y:auto}.dual-picker-candidate-list::-webkit-scrollbar{width:5px}.dual-picker-candidate-list::-webkit-scrollbar-thumb{background:var(--separator);border-radius:3px}.dual-picker-empty-hint{text-align:center;color:var(--hint-text);padding:24px 12px;font-size:13px}.dual-picker-current-card{flex:1;justify-content:center;align-items:center;display:flex}.dual-picker-current-card .dual-picker-empty-hint{color:var(--hint-text)}.dual-picker-card{border:1px solid var(--panel-border);cursor:pointer;background:var(--input-bg);transition:all var(--transition-fast);border-radius:10px;flex-shrink:0;align-items:center;gap:10px;padding:10px 12px;display:flex}.dual-picker-card:hover{border-color:var(--color-primary);background:var(--color-primary-bg)}.dual-picker-card.selected{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 0 0 1px var(--color-primary)}.dual-picker-card-disabled{opacity:.45;pointer-events:none}.dual-picker-divider{color:var(--text-muted,#999);border-top:1px solid var(--border-color,#e5e7eb);margin-top:6px;padding:10px 4px 4px;font-size:11px}.dual-picker-card-icon{background:var(--hover-bg);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.dual-picker-card-icon.step{background:#e3f2fd}.dual-picker-card-icon.urdf{background:#fff3e0}.dual-picker-card-icon.both{background:#e8f5e9}.dual-picker-card-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.dual-picker-card-name{color:var(--text-color);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.dual-picker-card-name .highlight{color:#333;background:#fff176;border-radius:2px;padding:0 1px}.dual-picker-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dual-picker-tag{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:10px;font-weight:500;display:inline-block}.dual-picker-tag.mechanical{color:#e65100;background:#fff3e0}.dual-picker-tag.control{color:#0d47a1;background:#e3f2fd}.dual-picker-tag.embedded{color:#6a1b9a;background:#f3e5f5}.dual-picker-tag.hardware{color:#e65100;background:#fff8e1}.dual-picker-tag.software{color:#1b5e20;background:#e8f5e9}.dual-picker-tag.other,.dual-picker-tag.nontech{color:#616161;background:#f5f5f5}.dual-picker-joints{color:var(--hint-text);white-space:nowrap;font-size:10px}.dual-picker-badge{text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-radius:4px;padding:1px 7px;font-size:9px;font-weight:700;display:inline-block}.dual-picker-badge.step{color:#fff;background:#1976d2}.dual-picker-badge.urdf{color:#fff;background:#f57c00}.dual-picker-badge.both{color:#fff;background:#388e3c}.dual-picker-error{background:var(--color-danger-light);border:1px solid var(--color-danger);color:var(--color-danger-dark);border-radius:6px;flex:1;margin-right:auto;padding:8px 12px;font-size:12px}.dual-picker-left-card{border:2px solid var(--color-primary);background:var(--color-primary-bg);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;display:flex}.dual-picker-left-card .dual-picker-card-icon{border-radius:14px;width:56px;height:56px;font-size:28px}.dual-picker-left-card .dual-picker-card-name{text-align:center;white-space:normal;font-size:15px}.dual-picker-left-model{color:var(--hint-text);text-align:center;font-size:11px}.dual-picker-left-card .dual-picker-card-meta{justify-content:center}.dual-picker-result-count{color:var(--hint-text);flex-shrink:0;margin-bottom:8px;font-size:10px}@media (width<=640px){.dual-picker-panel{width:96vw;max-height:92vh}.dual-picker-body{flex-direction:column;overflow-y:auto}.dual-picker-left{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--panel-border);flex-shrink:0;padding:12px}.dual-picker-right{padding:12px;overflow:visible}.dual-picker-candidate-list{max-height:220px}}#req-acceptance-grid .req-multi-picker,#req-scope-picker.req-multi-picker{width:100%;position:relative}.req-multi-trigger{border:1px solid var(--input-border);background:var(--input-bg);width:100%;min-height:38px;color:var(--input-text);cursor:pointer;text-align:left;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.req-multi-trigger:hover{border-color:var(--color-primary)}.req-multi-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.req-multi-menu{z-index:20;border:1px solid var(--panel-border);background:var(--panel-bg);border-radius:8px;max-height:210px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #00000029}.req-multi-actions{border-bottom:1px solid var(--panel-border);gap:6px;padding:2px 2px 6px;display:flex}.req-multi-actions button{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);cursor:pointer;border-radius:5px;padding:3px 8px;font-size:11px}.req-multi-option{color:var(--text-color);cursor:pointer;border-radius:5px;align-items:center;gap:7px;padding:7px 6px;font-size:12px;display:flex}.req-multi-option:hover{background:var(--hover-bg)}.req-multi-option input{accent-color:var(--color-primary)}.req-multi-empty{color:var(--hint-text);padding:10px 6px;font-size:11px;line-height:1.5}#requirement-modal .form-label{font-size:12px;line-height:18px}#requirement-modal .form-input,#requirement-modal .form-textarea,#requirement-modal .form-select,#requirement-modal .req-multi-trigger{font-size:13px;line-height:20px}#requirement-modal small{font-size:11px;line-height:16px}#requirement-modal .req-multi-option{font-size:12px;line-height:18px}.gantt-container{background:var(--bg-color);z-index:98;flex-direction:column;display:flex;position:fixed;inset:44px 0 0;overflow:hidden}#mech-gantt-container{top:110px}.gantt-toolbar{border-bottom:1px solid var(--panel-border);background:var(--toolbar-bg);flex-shrink:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.gantt-toolbar label{color:var(--secondary-text);font-size:11px;font-weight:500}.gantt-toolbar select{border:1px solid var(--input-border);color:var(--input-text);background:var(--input-bg);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:11px}.gantt-tb-group{align-items:center;gap:4px;display:flex}.gantt-tb-label{color:var(--secondary-text);margin-right:4px;font-size:11px}.gantt-tb-btn{border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-text);cursor:pointer;border-radius:6px;padding:4px 12px;font-size:11px;transition:all .15s}.gantt-tb-btn.active{background:var(--color-primary-dark);color:var(--text-inverse);border-color:var(--color-primary-dark)}.gantt-tb-btn:hover:not(.active){background:var(--hover-bg)}.gantt-body{flex:1;display:flex;overflow:hidden}.gantt-task-list{background:var(--item-bg);flex-shrink:0;width:260px;min-width:200px;overflow:hidden auto}.gantt-task-list-header{z-index:3;font-size:11px;font-weight:600;position:sticky;top:0}.gantt-task-row{color:var(--text-color);cursor:pointer;white-space:nowrap;content-visibility:auto;contain-intrinsic-size:auto 32px;align-items:center;gap:6px;padding:0 12px;font-size:11px;transition:background .1s;display:flex}.gantt-task-row:hover{background:var(--hover-bg)!important}.gantt-task-row.group-header{cursor:default;font-weight:600}.gantt-tree-arrow{user-select:none;width:14px;font-size:10px;transition:transform .15s;display:inline-block}.gantt-group-toggle{user-select:none;cursor:pointer!important}.gantt-group-toggle:hover{filter:brightness(.95)}.gantt-task-row .task-title{text-overflow:ellipsis;flex:1;overflow:hidden}.gantt-task-row .task-severity{border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}.gantt-task-row .task-severity.P0{background:var(--color-critical-bg);color:var(--color-critical-text)}.gantt-task-row .task-severity.P1{background:var(--color-major-bg);color:var(--color-major)}.gantt-task-row .task-severity.P2{background:var(--color-suggestion-bg);color:var(--color-suggestion-text)}.gantt-task-row .task-severity.P3{background:var(--color-status-closed-bg);color:var(--text-secondary)}.gantt-timeline{background:var(--input-bg);flex:1;position:relative;overflow:auto}.gantt-timeline svg{display:block}.gantt-bar{stroke:none;cursor:pointer;transition:opacity .15s}.gantt-bar:hover{opacity:.8}.gantt-bar.severity-P0{fill:#ffcdd2;stroke:var(--color-critical-dark)}.gantt-bar.severity-P1{fill:#ffe0b2;stroke:var(--color-major)}.gantt-bar.severity-P2{fill:#bbdefb;stroke:var(--color-primary-dark)}.gantt-bar.severity-P3{fill:#e0e0e0;stroke:var(--text-secondary)}.gantt-bar.status-resolved,.gantt-bar.status-closed{fill:var(--color-success-light);stroke:var(--color-success-hover)}.gantt-bar.overdue{stroke:var(--color-critical-dark);stroke-width:1.5px}.gantt-tooltip{z-index:9999;background:var(--bg-surface);backdrop-filter:blur(10px);border:1px solid var(--border-input);color:var(--text-primary);pointer-events:none;opacity:0;visibility:hidden;border-radius:8px;max-width:260px;padding:10px 14px;font-size:11px;line-height:1.6;transition:opacity .15s,visibility .15s;position:fixed;box-shadow:0 4px 16px #0000001f}.gantt-tooltip.visible{opacity:1;visibility:visible}[data-theme=dark] .gantt-tooltip{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);box-shadow:0 4px 16px #0006}.gantt-empty-state{height:100%;color:var(--secondary-text);flex-direction:column;justify-content:center;align-items:center;font-size:13px;display:flex}.gantt-empty-state .empty-icon{margin-bottom:12px;font-size:48px}@media (width<=767px){.gantt-container{display:none}.gantt-mobile-fallback{display:flex!important}}.gantt-mobile-fallback{text-align:center;height:100%;color:var(--secondary-text);flex-direction:column;justify-content:center;align-items:center;padding:20px;font-size:13px;display:none}.dt-login-divider{color:var(--secondary-text);align-items:center;margin:20px 0 16px;font-size:12px;display:flex}.dt-login-divider:before,.dt-login-divider:after{content:"";background:var(--input-border);flex:1;height:1px}.dt-login-divider:before{margin-right:12px}.dt-login-divider:after{margin-left:12px}#dt-login-btn{color:#0958d9;cursor:pointer;background:#fff;border:1.5px solid #0958d9;border-radius:8px;width:100%;margin-bottom:12px;padding:14px;font-size:15px;font-weight:600;transition:background .15s,color .15s,transform .15s,box-shadow .15s;display:none}#dt-login-btn:hover{color:#fff;background:#0958d9;transform:translateY(-1px);box-shadow:0 2px 8px #1677ff59}#dt-login-btn:active{transform:translateY(0)}#dt-login-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}#dt-login-btn .dt-icon{vertical-align:middle;background:#1677ff;border-radius:4px;width:18px;height:18px;margin-right:8px;display:inline-block;position:relative}#dt-login-btn .dt-icon:after{content:"钉";color:#fff;font-size:10px;font-weight:700;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#dt-login-btn:hover .dt-icon{background:#fff}#dt-login-btn:hover .dt-icon:after{color:#0958d9}.dt-admin-label{text-align:center;color:var(--secondary-text);margin-bottom:8px;font-size:12px;display:none}#dt-login-btn.dt-loading{color:#0000;position:relative}#dt-login-btn.dt-loading:after{content:"";border:2px solid #1677ff;border-top-color:#0000;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;animation:.6s linear infinite dt-spin;position:absolute;top:50%;left:50%}@keyframes dt-spin{to{transform:rotate(360deg)}}.dingtalk-doc-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s,opacity .15s,box-shadow .15s;display:inline-flex}.dingtalk-doc-btn--active{color:#0958d9;background:#e6f4ff;border-color:#91caff}.dingtalk-doc-btn--active:hover{color:#003eb3;background:#bae0ff;box-shadow:0 1px 4px #1677ff33}.dingtalk-doc-btn--disabled{background:var(--item-bg);color:var(--secondary-text);border-color:var(--input-border);opacity:.5;cursor:not-allowed}.dingtalk-doc-btn--small{flex-shrink:0;min-width:28px;padding:3px 8px;font-size:13px}.sync-badge{white-space:nowrap;border-radius:10px;flex-shrink:0;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-flex}.sync-badge-icon{font-size:11px;line-height:1}.sync-badge-label{font-size:10px}.sync-badge--synced{color:#389e0d;background:#f6ffed;border:1px solid #b7eb8f}.sync-badge--syncing{color:#d48806;background:#fffbe6;border:1px solid #ffe58f}.sync-badge--syncing .sync-badge-icon{animation:1s linear infinite sync-spin}@keyframes sync-spin{to{transform:rotate(360deg)}}.sync-badge--conflict{color:#d46b08;background:#fff7e6;border:1px solid #ffd591}.sync-badge--failed{color:#cf1322;background:#fff2f0;border:1px solid #ffa39e}.sync-badge--none{color:#999;background:#fafafa;border:1px solid #d9d9d9}.dingtalk-sync-cell{align-items:center;gap:6px;min-width:110px;display:flex}[data-theme=dark] .dingtalk-doc-btn--active{color:#3c9be8;background:#111d2c;border-color:#15325b}[data-theme=dark] .dingtalk-doc-btn--active:hover{color:#5ab1f2;background:#1a2d44}[data-theme=dark] .dingtalk-doc-btn--disabled{color:var(--secondary-text);border-color:var(--panel-border);background:#1a1a2e}[data-theme=dark] .sync-badge--synced{color:#73d13d;background:#1d3318;border-color:#3c6e1d}[data-theme=dark] .sync-badge--syncing{color:#ffc53d;background:#3c3014;border-color:#7a5c1a}[data-theme=dark] .sync-badge--conflict{color:#ffa940;background:#3c2814;border-color:#7a4e1a}[data-theme=dark] .sync-badge--failed{color:#ff7875;background:#3c1418;border-color:#7a1e22}[data-theme=dark] .sync-badge--none{color:#666;background:#1a1a2e;border-color:#2d2d2d}.dt-integration-modal .modal-content{flex-direction:column;width:860px;max-width:95vw;max-height:88vh;display:flex}.dt-integration-modal .modal-body{flex:1;padding:20px 24px;overflow-y:auto}.dti-robot-bar{background:#ffffff05;border:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px;display:flex}.dti-robot-label{color:#8a8f98;white-space:nowrap;letter-spacing:-.13px;font-size:13px;font-weight:510}.dti-robot-select{flex:1;max-width:300px}.dti-robot-info{color:#62666d;margin-left:auto;font-size:11px}.dti-batch-bar{align-items:center;gap:10px;margin-bottom:16px;padding:8px 0;display:flex}.dti-batch-bar .dti-batch-label{color:#8a8f98;font-size:12px;font-weight:510}.dti-batch-btn{color:#d0d6e0;cursor:pointer;background:#ffffff05;border:1px solid #ffffff14;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:510;transition:background .15s,border-color .15s}.dti-batch-btn:hover{background:#ffffff0d;border-color:#ffffff1f}.dti-batch-btn--primary{color:#fff;background:#5e6ad2;border-color:#5e6ad2}.dti-batch-btn--primary:hover{background:#7170ff;border-color:#7170ff}.dti-batch-btn--danger{color:#ef4444;border-color:#ef44444d}.dti-batch-btn--danger:hover{background:#ef44441a}.dti-cards-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:14px;display:grid}.dti-module-card{background:#ffffff05;border:1px solid #ffffff14;border-radius:8px;transition:border-color .2s,background .2s;overflow:hidden}.dti-module-card:hover{background:#ffffff08;border-color:#ffffff1f}.dti-module-card--configured{border-color:#5e6ad24d}.dti-module-card--configured:hover{border-color:#7170ff66}.dti-card-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.dti-card-title{align-items:center;gap:8px;display:flex}.dti-card-icon{font-size:18px}.dti-card-name{color:#f7f8f8;font-size:14px;font-weight:590}.dti-card-status{align-items:center;gap:8px;display:flex}.dti-toggle{cursor:pointer;width:40px;height:22px;position:relative}.dti-toggle input{opacity:0;width:0;height:0;position:absolute}.dti-toggle-slider{background:#ffffff1a;border-radius:22px;transition:background .2s;position:absolute;inset:0}.dti-toggle-slider:before{content:"";background:#8a8f98;border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;bottom:3px;left:3px}.dti-toggle input:checked+.dti-toggle-slider{background:#5e6ad2}.dti-toggle input:checked+.dti-toggle-slider:before{background:#fff;transform:translate(18px)}.dti-status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dti-status-dot--configured{background:#10b981}.dti-status-dot--unconfigured{background:#62666d}.dti-status-dot--enabled{background:#5e6ad2}.dti-status-text{color:#8a8f98;font-size:11px;font-weight:400}.dti-card-body{flex-direction:column;gap:10px;padding:12px 14px;display:flex}.dti-field-row{flex-direction:column;gap:4px;display:flex}.dti-field-label{color:#8a8f98;letter-spacing:-.13px;font-size:11px;font-weight:510}.dti-field-input{color:#d0d6e0;background:#ffffff08;border:1px solid #ffffff14;border-radius:6px;padding:7px 10px;font-family:Berkeley Mono,ui-monospace,SF Mono,Menlo,monospace;font-size:12px;transition:border-color .15s}.dti-field-input:focus{border-color:#5e6ad2;outline:none;box-shadow:0 4px 12px #0000001a}.dti-field-input::placeholder{color:#62666d}.dti-field-input--error{border-color:#ef444466}.dti-card-footer{border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.dti-card-actions{gap:6px;display:flex}.dti-card-btn{color:#8a8f98;cursor:pointer;background:#ffffff05;border:1px solid #ffffff14;border-radius:5px;padding:4px 10px;font-size:11px;transition:background .15s,color .15s}.dti-card-btn:hover{color:#d0d6e0;background:#ffffff0d}.dti-card-btn--save{color:#828fff;background:#5e6ad226;border-color:#5e6ad24d}.dti-card-btn--save:hover{color:#7170ff;background:#5e6ad240}.dti-field-map-section{border-top:1px solid #ffffff0a;margin-top:4px;padding-top:8px}.dti-field-map-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.dti-field-map-title{color:#8a8f98;font-size:12px;font-weight:510}.dti-field-map-toggle{color:#7170ff;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.dti-field-map-toggle:hover{color:#828fff}.dti-map-rows{flex-direction:column;gap:4px;display:flex}.dti-map-row{align-items:center;gap:6px;padding:4px 0;display:flex}.dti-map-arrow{color:#62666d;flex-shrink:0;font-size:12px}.dti-map-field-select{color:#d0d6e0;background:#ffffff08;border:1px solid #ffffff14;border-radius:4px;flex:1;max-width:140px;padding:4px 6px;font-size:11px}.dti-map-col-select{color:#d0d6e0;background:#ffffff08;border:1px solid #ffffff14;border-radius:4px;flex-shrink:0;width:60px;padding:4px 6px;font-size:11px}.dti-map-remove-btn{color:#62666d;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;display:flex}.dti-map-remove-btn:hover{color:#ef4444;background:#ef44441a}.dti-map-add-btn{color:#7170ff;cursor:pointer;background:0 0;border:1px dashed #ffffff1a;border-radius:4px;margin-top:4px;padding:4px 10px;font-size:11px;transition:border-color .15s}.dti-map-add-btn:hover{border-color:#7170ff4d}.dti-hint{color:#f59e0b;background:#f59e0b14;border:1px solid #f59e0b26;border-radius:6px;align-items:center;gap:6px;padding:8px;font-size:11px;display:flex}.dti-hint-icon{flex-shrink:0;font-size:14px}.dti-global-save-bar{border-top:1px solid #ffffff14;justify-content:flex-end;align-items:center;gap:10px;margin-top:20px;padding-top:16px;display:flex}.dti-save-status{color:#10b981;align-items:center;gap:4px;font-size:12px;display:flex}.dti-save-status--error{color:#ef4444}.dti-save-btn{color:#fff;cursor:pointer;background:#5e6ad2;border:none;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:510;transition:background .15s}.dti-save-btn:hover{background:#7170ff}.dti-tabs{border-bottom:2px solid #0000;gap:0;margin-left:24px;display:flex}.dti-tab{color:#8a8f98;cursor:pointer;letter-spacing:-.13px;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 16px;font-size:13px;font-weight:510;transition:color .15s,border-color .15s}.dti-tab:hover{color:#c9d1d9}.dti-tab--active{color:#e6edf3;border-bottom-color:#58a6ff;font-weight:600}.dti-tab-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.dti-logs-filter-bar{background:#ffffff05;border:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:8px 16px;display:flex}.dti-logs-table-container{background:#ffffff03;border:1px solid #ffffff0d;border-radius:8px;flex:1;max-height:420px;overflow-y:auto}.dti-logs-table{border-collapse:collapse;color:#c9d1d9;width:100%;font-size:12px}.dti-logs-table th{text-align:left;color:#8a8f98;white-space:nowrap;letter-spacing:-.11px;background:#161b22;border-bottom:1px solid #30363d;padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.dti-logs-table td{vertical-align:middle;border-bottom:1px solid #ffffff0a;padding:8px 12px}.dti-logs-table tr:hover td{background:#ffffff05}.dti-logs-table tr:last-child td{border-bottom:none}.dti-log-direction-tag{letter-spacing:-.11px;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:510;display:inline-block}.dti-log-direction-tag--push{color:#58a6ff;background:#58a6ff1f}.dti-log-direction-tag--pull{color:#a371f7;background:#a371f71f}.dti-log-status-tag{letter-spacing:-.11px;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:510;display:inline-block}.dti-log-status-tag--success{color:#2ea043;background:#2ea0431f}.dti-log-status-tag--failed{color:#f85149;background:#f851491f}.dti-log-status-tag--conflict{color:#d29922;background:#d299221f}.dti-log-status-tag--pending{color:#8b949e;background:#8b949e1f}.dti-retry-btn{color:#58a6ff;cursor:pointer;letter-spacing:-.11px;background:#58a6ff1a;border:1px solid #58a6ff4d;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:510;transition:background .15s,border-color .15s}.dti-retry-btn:hover{background:#58a6ff33;border-color:#58a6ff80}.dti-retry-btn:disabled{opacity:.5;cursor:not-allowed}.dti-logs-footer{justify-content:space-between;align-items:center;margin-top:4px;padding:8px 4px;display:flex}.dti-logs-count{color:#8a8f98;font-size:11px}.dti-error-cell{text-overflow:ellipsis;white-space:nowrap;color:#8a8f98;max-width:220px;font-size:11px;overflow:hidden}.dti-error-cell:hover{white-space:normal;word-break:break-all;max-width:none}.dti-log-module-tag{color:#8a8f98;letter-spacing:-.1px;background:#ffffff0a;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:510;display:inline-block}@media (width<=768px){.dti-cards-grid{grid-template-columns:1fr}.dt-integration-modal .modal-content{border-radius:0;width:100vw;max-width:100vw;height:100vh;max-height:100vh}.dti-robot-bar{flex-wrap:wrap}.dti-robot-select{width:100%;max-width:none}.dti-logs-filter-bar{flex-wrap:wrap}.dti-logs-table-container{max-height:300px}.dti-tabs{margin-top:8px;margin-left:0}}.bom-view{z-index:98;background:var(--bg-primary);color:var(--text-primary);font-family:"Inter Variable", var(--font-family-sans);font-feature-settings:"cv01", "ss03";position:fixed;inset:40px 0 0;overflow-y:auto}.bom-shell{max-width:1440px;min-height:100%;margin:0 auto;padding:32px 36px 48px}.bom-header{justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:28px;display:flex}.bom-kicker,.bom-section-label{color:var(--text-accent);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:510}.bom-title{letter-spacing:-.704px;margin:6px 0 8px;font-size:32px;font-weight:510;line-height:1.13}.bom-subtitle{color:var(--text-secondary);font-size:14px;line-height:1.5}.bom-header-actions,.bom-toolbar{align-items:center;gap:8px;display:flex}.bom-button{border:1px solid var(--border-input);background:var(--btn-secondary-bg);min-height:32px;color:var(--btn-secondary-text);cursor:pointer;font:510 12px/1.4 "Inter Variable", var(--font-family-sans);border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:7px 12px;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.bom-button:hover:not(:disabled){background:var(--hover-bg);border-color:var(--border-focus);color:var(--text-primary)}.bom-button:disabled{cursor:not-allowed;opacity:.42}.bom-button-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-inverse)}.bom-button-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.bom-button-accent{color:var(--text-accent);background:var(--color-primary-light);border-color:var(--border-focus)}.bom-status{min-height:20px;color:var(--text-secondary);font-size:12px}.bom-status.is-success{color:var(--color-success-text)}.bom-status.is-warning{color:var(--color-warning-text)}.bom-status.is-error{color:var(--color-danger-text)}.bom-toolbar{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:8px;margin:8px 0 16px;padding:10px}.bom-select-label{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:inline-flex}.bom-select,.bom-search{border:1px solid var(--input-border);background:var(--input-bg);min-height:30px;color:var(--input-text);font:400 12px/1.4 "Inter Variable", var(--font-family-sans);border-radius:6px;padding:5px 8px}.bom-select option{background:var(--bg-elevated);color:var(--text-primary)}.bom-search-label{min-width:220px;color:var(--text-tertiary);align-items:center;gap:5px;margin-left:auto;display:inline-flex}.bom-search{background:0 0;border:0;outline:0;width:100%}.bom-content{grid-template-columns:272px minmax(0,1fr);align-items:start;gap:16px;display:grid}.bom-sidebar{gap:12px;display:grid}.bom-panel,.bom-main-panel{border:1px solid var(--border-color);background:var(--bg-surface);box-shadow:var(--shadow-card);border-radius:8px}.bom-panel-heading{border-bottom:1px solid var(--border-color);color:var(--text-primary);justify-content:space-between;padding:12px 14px;font-size:12px;font-weight:510;display:flex}.bom-count{color:var(--text-tertiary);font:400 11px/1.4 var(--font-family-mono)}.bom-list{max-height:250px;padding:4px;overflow-y:auto}.bom-list-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;gap:4px;padding:10px;display:grid}.bom-list-item:hover,.bom-list-item.is-selected{background:var(--hover-bg);border-color:var(--border-input)}.bom-list-item-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:510;overflow:hidden}.bom-list-item-meta,.bom-list-item-foot{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.bom-list-item-foot{justify-content:space-between;gap:8px;display:flex}.bom-mini-pill{color:var(--color-success-text)}.bom-mini-pill.is-invalid{color:var(--color-danger-text)}.bom-validation,.bom-review{border:1px solid var(--color-warning);background:var(--color-warning-light);color:var(--color-warning-text);border-radius:6px;margin:0 0 16px;padding:12px 14px;font-size:12px;line-height:1.5}.bom-validation ul,.bom-review ul{margin:8px 0 0;padding-left:18px}.bom-review-title{font-weight:510}.bom-review p{color:var(--text-secondary);margin:4px 0 0}.bom-list-empty,.bom-summary-empty,.bom-empty{color:var(--text-tertiary);text-align:center;padding:18px 12px;font-size:12px}.bom-result-limit{border-top:1px solid var(--border-color);color:var(--text-secondary);text-align:center;padding:10px 12px;font-size:11px}.bom-main-panel{min-width:0;padding:16px}.bom-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:20px;display:grid}.bom-summary-cell{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:6px;gap:4px;padding:12px;display:grid}.bom-summary-value{color:var(--text-primary);font-size:20px;font-weight:510}.bom-summary-label{color:var(--text-secondary);font-size:11px}.bom-motor-summary{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:6px;margin:-4px 0 20px}.bom-motor-summary>.bom-section-label{padding:11px 12px 8px;display:block}.bom-motor-summary-list{display:grid}.bom-motor-total{color:var(--text-secondary);padding:0 12px 10px;font-size:11px}.bom-motor-row{border-top:1px solid var(--border-color);color:var(--text-primary);grid-template-columns:110px 64px minmax(0,1fr) 42px 28px;align-items:center;gap:10px;padding:9px 12px;font-size:12px;display:grid}.bom-motor-joints{min-width:0;color:var(--text-secondary);overflow:hidden}.bom-motor-joints b,.bom-motor-joints small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.bom-motor-joints b{font-weight:400}.bom-motor-joints small{color:var(--text-tertiary);margin-top:2px;font-size:9px}.bom-motor-joints .bom-motor-variants{color:var(--text-accent);font-weight:510}.bom-motor-library-link{color:var(--text-accent);cursor:pointer;background:0 0;border:0;font-size:10px}.bom-state-matched{color:var(--color-success-text)}.bom-state-quantity-mismatch{color:var(--color-warning-text)}.bom-state-missing-in-step{color:var(--color-danger-text)}.bom-state-missing-in-bom{color:var(--text-accent)}.bom-result-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:10px;display:flex}.bom-result-heading h2{color:var(--text-primary);margin:5px 0 0;font-size:18px;font-weight:510}.bom-table-wrap{border:1px solid var(--border-color);border-radius:6px;overflow-x:auto}.bom-table{border-collapse:collapse;width:100%;min-width:720px}.bom-table th,.bom-table td{border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap;padding:10px 12px;font-size:12px}.bom-table th{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:510}.bom-table td{color:var(--text-primary)}.bom-table tr:last-child td{border-bottom:0}.bom-table .mono,.mono{font-family:Berkeley Mono, var(--font-family-mono);font-size:11px}.bom-state{font-size:11px;font-weight:510}.bom-locate{border:1px solid var(--border-input);background:var(--btn-secondary-bg);width:26px;height:26px;color:var(--text-primary);cursor:pointer;border-radius:50%}.bom-locate:hover{border-color:var(--color-primary);color:var(--text-accent)}.bom-muted{color:var(--text-tertiary)}.bom-distribution{margin-top:24px}.bom-distribution-list{gap:6px;margin-top:8px;display:grid}.bom-distribution-row{border-top:1px solid var(--border-color);color:var(--text-primary);grid-template-columns:minmax(0,1fr) 80px 80px;align-items:center;gap:12px;padding:10px 12px;font-size:12px;display:grid}.bom-distribution-path{color:var(--text-tertiary);margin-top:3px;display:block}@media (width<=800px){.bom-shell{padding:24px 16px 36px}.bom-header{display:block}.bom-header-actions{margin-top:16px}.bom-toolbar{flex-wrap:wrap}.bom-search-label{min-width:100%;margin-left:0}.bom-content{grid-template-columns:1fr}.bom-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.bom-list{max-height:190px}}@media (width<=520px){.bom-sidebar{grid-template-columns:1fr}.bom-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bom-result-heading{flex-direction:column;align-items:flex-start}.bom-motor-row{grid-template-columns:80px 48px minmax(0,1fr) 42px 28px}}
