:root{--bg: #0e1417;--bg2: #131c20;--surface: #182028;--surface2: #1e2c36;--border: rgba(255,255,255,.08);--border2: rgba(255,255,255,.13);--accent: #3a9ec5;--accent2: #2a7ea0;--text: #dde6ea;--text2: #8eaab8;--text3: #5a7a8a;--success: #2ecc71;--radius: 8px;--sidebar-w: 210px;--panel-w: 320px}html,body,#root{height:100%;width:100%;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:14px;overflow:hidden}.app-root{display:flex;flex-direction:column;height:100%;overflow:hidden}.app-body{display:flex;flex:1;min-height:0;overflow:hidden;position:relative}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 18px;height:56px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:12px}.toolbar-brand{display:flex;align-items:center;gap:10px}.brand-logo{width:34px;height:34px;border-radius:7px;background:linear-gradient(135deg,#2a7ea0,#1a5070);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;letter-spacing:.5px;flex-shrink:0}.brand-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap}.brand-sub{font-size:10.5px;color:var(--text3);margin-top:1px;white-space:nowrap}.toolbar-actions{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:rgba(58,158,197,.35) transparent;padding-bottom:2px}.toolbar-actions::-webkit-scrollbar{height:3px}.toolbar-actions::-webkit-scrollbar-track{background:transparent}.toolbar-actions::-webkit-scrollbar-thumb{background:#3a9ec566;border-radius:3px}.toolbar-actions::-webkit-scrollbar-thumb:hover{background:#3a9ec5b3}.help-wrapper{flex-shrink:0;position:relative}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-size:12.5px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.toolbar-btn:hover{background:var(--border2);color:var(--text);border-color:var(--border2)}.toolbar-btn.active{background:#3a9ec526;border-color:#3a9ec566;color:var(--accent)}.toolbar-btn.share-btn{background:var(--accent2);border-color:var(--accent);color:#fff}.toolbar-btn.share-btn:hover{background:var(--accent)}.toolbar-btn.share-btn.copied{background:#1a7a46;border-color:var(--success);color:#fff}.toolbar-btn.explode-btn{background:#783cc826;border-color:#a05af059;color:#b890ff}.toolbar-btn.explode-btn:hover{background:#783cc847;border-color:#a05af099}.toolbar-btn.explode-btn.exploded{background:#783cc859;border-color:#b478ffbf;color:#d4aaff}.toolbar-btn.pallet-btn{background:#a0641e26;border-color:#c88c3259;color:#e8b860}.toolbar-btn.pallet-btn:hover{background:#a0641e47;border-color:#dca04699}.toolbar-btn.pallet-btn.pallet-active{background:#a0641e61;border-color:#f0b450cc;color:#ffd080}.pallet-emoji{font-size:14px;line-height:1}.fault-search-wrapper{position:relative;flex-shrink:0}.fault-search-panel{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);width:340px;background:#111820;border:1px solid rgba(68,136,200,.35);border-radius:10px;box-shadow:0 8px 32px #000000a6;z-index:200;overflow:hidden}.fault-search-header{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid rgba(68,136,200,.18);color:#8ab4d4}.fault-search-input{flex:1;background:transparent;border:none;outline:none;color:#e8f0ff;font-size:13px;font-family:inherit}.fault-search-input::placeholder{color:#4a6080}.fault-search-close{background:none;border:none;color:#556070;cursor:pointer;padding:2px;line-height:1;display:flex;align-items:center}.fault-search-close:hover{color:#c0d0e0}.fault-search-results{max-height:280px;overflow-y:auto}.fault-result-row{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid rgba(68,136,200,.1);padding:9px 12px;cursor:pointer;transition:background .12s}.fault-result-row:hover{background:#4488c81f}.fault-result-top{display:flex;align-items:center;gap:8px;margin-bottom:3px}.fault-code-badge{font-size:11px;font-weight:700;background:#4488c833;border:1px solid rgba(68,136,200,.4);border-radius:4px;padding:1px 6px;color:#6ab4f8;font-family:monospace;white-space:nowrap}.fault-comp-name{font-size:12px;font-weight:600;color:#c8d8f0}.fault-result-meaning{font-size:11.5px;color:#7090a8;line-height:1.4}.fault-search-empty{padding:16px 14px;font-size:12.5px;color:#506070;font-style:italic}.fault-search-hint{padding:12px 14px;font-size:12px;color:#405060;line-height:1.5}.fault-search-hint code{background:#64a0dc1f;border-radius:3px;padding:1px 5px;color:#6ab4f8;font-size:11.5px}.qr-backdrop{position:fixed;inset:0;background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;display:flex;align-items:center;justify-content:center}.qr-modal{background:#0f1520;border:1px solid rgba(68,136,200,.4);border-radius:14px;padding:22px 24px 20px;width:300px;box-shadow:0 12px 48px #000c;display:flex;flex-direction:column;align-items:center;gap:14px}.qr-modal-header{display:flex;align-items:center;gap:8px;color:#a8c8e8;font-size:13.5px;font-weight:600;width:100%}.qr-modal-header span{flex:1}.qr-close-btn{background:none;border:none;color:#4a6070;cursor:pointer;padding:2px;line-height:1;display:flex;align-items:center}.qr-close-btn:hover{color:#c0d0e0}.qr-image-wrap{background:#f4f8ff;border-radius:10px;padding:10px;line-height:0}.qr-image{display:block;width:200px;height:200px;border-radius:4px}.qr-hint{font-size:12px;color:#506070;text-align:center;margin:0;line-height:1.5}.qr-too-long{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 10px;text-align:center;color:#506070;font-size:12.5px;line-height:1.55}.qr-too-long-icon{color:#8eaab8;opacity:.6}.qr-too-long strong{color:#dde6ea;font-weight:600}.qr-shortening{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 10px;color:#7a9ab0;font-size:12.5px}.qr-spinner{width:32px;height:32px;border:3px solid rgba(68,136,200,.2);border-top-color:#4488c8;border-radius:50%;animation:qr-spin .75s linear infinite}@keyframes qr-spin{to{transform:rotate(360deg)}}.qr-url-row{display:flex;align-items:center;gap:8px;width:100%;background:#4488c814;border:1px solid rgba(68,136,200,.22);border-radius:7px;padding:7px 10px}.qr-url-text{flex:1;font-size:10.5px;color:#5a7898;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qr-copy-btn{display:flex;align-items:center;gap:4px;background:#4488c82e;border:1px solid rgba(68,136,200,.4);border-radius:5px;color:#6ab4f8;font-size:11.5px;font-weight:600;padding:4px 9px;cursor:pointer;white-space:nowrap;transition:background .12s;font-family:inherit}.qr-copy-btn:hover{background:#4488c852}.qr-copy-btn.copied{background:#1e8c5047;border-color:#32b46480;color:#50e098}.toolbar-btn.simulate-btn.door-closed{background:#1a52b82e;border-color:#4488ff73;color:#6aaeff;font-weight:600}.toolbar-btn.simulate-btn.door-closed:hover{background:#1a52b852;border-color:#4488ffb3;color:#88c0ff}.toolbar-btn.simulate-btn.door-open{background:#be3c1e2e;border-color:#dc502873;color:#f86;font-weight:600}.toolbar-btn.simulate-btn.door-open:hover{background:#be3c1e52;border-color:#dc5028b3;color:#fa8}.toolbar-divider{width:1px;height:22px;background:var(--border2);margin:0 2px;flex-shrink:0}.component-list{position:absolute;left:0;top:0;bottom:0;z-index:10;width:var(--sidebar-w);background:#0e161cc7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-right:1px solid rgba(255,255,255,.1);padding:12px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;transition:width .22s cubic-bezier(.4,0,.2,1);box-shadow:2px 0 20px #00000059}.component-list.collapsed{width:38px;padding:8px 0;overflow:hidden}.component-list-inner{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--border2) transparent}.component-list.collapsed .component-list-inner{display:none}.sidebar-toggle-btn{display:flex;align-items:center;justify-content:center;width:100%;height:28px;border:none;background:var(--surface2);color:var(--text3);cursor:pointer;border-radius:6px;transition:all .15s;flex-shrink:0;margin-bottom:4px}.sidebar-toggle-btn:hover{background:var(--border2);color:var(--text)}.component-list.collapsed .sidebar-toggle-btn{width:28px;height:28px;margin:0 auto 4px;border-radius:50%}.sidebar-dots-rail{display:flex;flex-direction:column;align-items:center;gap:3px;overflow-y:auto;scrollbar-width:none;padding-top:2px}.sidebar-dots-rail::-webkit-scrollbar{display:none}.sidebar-dot-btn{display:flex;align-items:center;justify-content:center;width:28px;height:20px;border:1px solid transparent;background:transparent;cursor:pointer;border-radius:4px;transition:all .12s;flex-shrink:0}.sidebar-dot-btn:hover{background:var(--surface2);border-color:var(--border)}.sidebar-dot-btn.active{background:#3a9ec526;border-color:#3a9ec559}.sidebar-dot-btn .component-dot{width:10px;height:10px}.component-list-title{font-size:10px;font-weight:700;color:var(--text3);letter-spacing:.8px;text-transform:uppercase;padding:4px 8px 8px}.component-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--text2);font-size:12.5px;font-weight:500;text-align:left;cursor:pointer;transition:all .15s;width:100%}.component-item:hover{background:var(--surface2);color:var(--text);border-color:var(--border)}.component-item.selected{background:#3a9ec51f;border-color:#3a9ec559;color:var(--accent)}.component-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;opacity:.85}.component-item-name{line-height:1.3}.scene-container{flex:1;position:relative;min-width:0;background:radial-gradient(ellipse at 50% 40%,#1a2c38,#0e1417 70%)}.scene-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text2);font-size:13px}.loading-spinner{width:32px;height:32px;border:3px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scene-hint{position:absolute;bottom:14px;left:50%;transform:translate(-50%);font-size:11.5px;color:var(--text3);background:#0e1417b3;padding:5px 14px;border-radius:20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);white-space:nowrap;pointer-events:none}.info-panel{position:absolute;right:0;top:0;bottom:0;z-index:10;width:var(--panel-w);background:#0e161cc7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;overflow:hidden;transition:width .22s cubic-bezier(.4,0,.2,1);box-shadow:-2px 0 20px #00000059}.info-panel.collapsed{width:38px}.info-panel.collapsed .info-panel-header,.info-panel.collapsed .info-panel-body,.info-panel.collapsed .empty-state{display:none}.panel-toggle-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:var(--surface2);color:var(--text3);cursor:pointer;border-radius:50%;transition:all .15s;flex-shrink:0;margin:8px auto 4px}.panel-toggle-btn:hover{background:var(--border2);color:var(--text)}.info-panel:not(.collapsed) .panel-toggle-btn{position:absolute;top:8px;left:8px;z-index:2}.info-panel:not(.collapsed) .info-panel-header{padding-left:44px}.info-panel-header{padding:16px 16px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.info-panel-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.part-badge{font-size:10px;font-weight:700;color:var(--accent);background:#3a9ec51f;border:1px solid rgba(58,158,197,.25);border-radius:4px;padding:2px 7px;letter-spacing:.5px;text-transform:uppercase}.info-panel-actions{display:flex;align-items:center;gap:4px}.icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;transition:all .15s}.icon-btn:hover{background:var(--border2);color:var(--text)}.icon-btn.success{background:#2ecc711f;border-color:#2ecc7159;color:var(--success)}.info-panel-title{font-size:16px;font-weight:700;color:var(--text);line-height:1.25}.edit-title{width:100%;font-size:15px;font-weight:700;background:var(--surface2);border:1px solid var(--accent2);border-radius:6px;color:var(--text);padding:6px 10px;outline:none}.info-panel-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:16px}.info-section{display:flex;flex-direction:column;gap:7px}.info-label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text3)}.info-label-icon{color:var(--accent);flex-shrink:0}.info-desc{font-size:12.5px;color:var(--text2);line-height:1.6}.info-material{font-size:12.5px;color:var(--text2)}.edit-desc,.edit-field{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:6px;color:var(--text);padding:8px 10px;font-size:12.5px;line-height:1.5;outline:none;resize:vertical;font-family:inherit;transition:border-color .15s}.edit-desc:focus,.edit-field:focus,.edit-spec-label:focus,.edit-spec-value:focus{border-color:var(--accent2)}.specs-grid{display:flex;flex-direction:column;gap:2px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.spec-row{display:flex;align-items:center;gap:0;background:var(--surface2);border-bottom:1px solid var(--border);min-height:34px}.spec-row:last-child{border-bottom:none}.spec-label{flex:1;font-size:11.5px;color:var(--text3);padding:7px 10px;font-weight:500}.spec-value{flex:1;font-size:11.5px;color:var(--text);padding:7px 10px;text-align:right;font-weight:600;border-left:1px solid var(--border)}.edit-spec-label,.edit-spec-value{flex:1;background:transparent;border:none;border-radius:0;color:var(--text);padding:7px 10px;font-size:11.5px;font-family:inherit;outline:none}.edit-spec-label{color:var(--text2);border-right:1px solid var(--border)}.remove-spec-btn{display:flex;align-items:center;justify-content:center;width:28px;height:100%;background:transparent;border:none;border-left:1px solid var(--border);color:var(--text3);cursor:pointer;transition:all .15s;padding:0;flex-shrink:0}.remove-spec-btn:hover{background:#e74c3c1f;color:#e74c3c}.add-spec-btn{width:100%;padding:9px;background:transparent;border:none;color:var(--accent);font-size:12px;cursor:pointer;transition:background .15s;font-family:inherit;font-weight:500}.add-spec-btn:hover{background:#3a9ec514}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}.fallback-door-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:18px;padding:24px}.fallback-door{position:relative;display:flex;flex-direction:column;align-items:center;gap:0;width:320px}.fd-header{width:100%;height:44px;border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;letter-spacing:.5px;text-transform:uppercase;opacity:.92}.fd-middle{display:flex;width:100%;gap:0}.fd-col{width:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:.9}.fd-col-label{writing-mode:vertical-rl;font-size:9px;font-weight:700;color:#fff;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.fd-face{flex:1;display:flex;flex-direction:column;gap:0}.fd-curtain-top{height:150px;opacity:.88;display:flex;align-items:flex-start;justify-content:center;padding-top:10px;font-size:11px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px}.fd-vision{height:60px;opacity:.9;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;letter-spacing:.5px;text-transform:uppercase}.fd-curtain-bot{height:50px;opacity:.88}.fd-bottom-bar{height:18px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;letter-spacing:.5px;text-transform:uppercase;transition:transform .6s ease,opacity .4s ease}.fd-bottom-bar.fd-bottom-bar-open{transform:translateY(-240px);opacity:1}.fd-curtain-open{flex:1;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#5a7a6a;text-transform:uppercase;letter-spacing:1px;border:1px dashed rgba(90,170,128,.25);border-radius:4px;margin:4px 0}.fd-control{width:50px;height:60px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.4px}.fallback-note{font-size:12px;color:var(--text3);margin-top:8px}.fd-blower-strip{width:100%;height:20px;border-radius:4px 4px 0 0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}.fd-led-strip{width:6px;height:80px;border-radius:3px;flex-shrink:0;margin:4px;cursor:pointer}.fd-encoder-badge{font-size:8px;font-weight:800;padding:2px 5px;border-radius:3px;letter-spacing:.5px;cursor:pointer;margin-left:auto}.fd-access-panel-badge{font-size:7px;font-weight:800;padding:1px 5px;border-radius:2px;letter-spacing:.4px;cursor:pointer;flex-shrink:0;margin-right:6px;border:1px solid rgba(255,255,255,.25);transition:all .15s}.fd-access-panel-badge:hover{border-color:#fff9;filter:brightness(1.3)}.fd-photo-eyes{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}.fd-eye{width:28px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:800;color:#fff;cursor:pointer}.info-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:24px}.empty-icon{width:52px;height:52px;border-radius:12px;background:var(--surface2);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;color:var(--text3)}.empty-title{font-size:14px;font-weight:700;color:var(--text2)}.empty-sub{font-size:12px;color:var(--text3);line-height:1.6}.empty-tips{display:flex;flex-direction:column;gap:6px;margin-top:8px;width:100%;border-top:1px solid var(--border);padding-top:14px}.empty-tip-row{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text3);justify-content:center}.empty-tip-key{background:var(--surface2);border:1px solid var(--border2);border-radius:4px;padding:2px 7px;font-size:10px;font-weight:600;color:var(--text2);white-space:nowrap;letter-spacing:.2px}.maintenance-text{border-left:2px solid rgba(58,158,197,.3);padding-left:10px}.info-manual-ref{font-size:11px;color:var(--text3);font-style:italic;line-height:1.5}@media(max-width:900px){:root{--panel-w: 260px;--sidebar-w: 170px}}@media(max-width:820px){.toolbar{padding:0 12px;gap:8px}.brand-name{font-size:13px}.brand-sub{display:none}.toolbar-btn{padding:7px 9px;font-size:12px;gap:4px}.toolbar-btn span,.toolbar-divider{display:none}}@media(max-width:650px){.component-list{position:absolute;inset:0 0 auto;width:100%;height:52px;flex-direction:row;overflow-x:auto;overflow-y:hidden;border-right:none;border-bottom:1px solid var(--border);padding:6px 8px;flex-wrap:nowrap;gap:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;transition:none}.component-list.collapsed{width:100%;height:52px}.component-list .sidebar-toggle-btn,.component-list .sidebar-dots-rail{display:none}.component-list .component-list-inner{display:flex;flex-direction:row;overflow-y:hidden;overflow-x:auto;gap:4px}.component-list::-webkit-scrollbar{display:none}.component-list-title{display:none}.component-item{white-space:nowrap;flex-shrink:0;padding:6px 10px;font-size:11.5px}.component-dot{width:7px;height:7px}.info-panel{position:absolute;inset:auto 0 0;width:100%;height:280px;border-left:none;border-top:1px solid var(--border);transition:none}.info-panel.collapsed{width:100%;height:36px}.info-panel:not(.collapsed) .panel-toggle-btn{left:auto;right:8px}.panel-toggle-btn svg{transform:rotate(90deg)}.toolbar{height:48px;padding:0 10px;gap:4px}.toolbar-btn{padding:7px 10px}.toolbar-btn span,.toolbar-divider,.brand-sub{display:none}.brand-name{font-size:13px}.brand-logo{width:28px;height:28px;font-size:10px}.scene-hint{font-size:10px;padding:4px 10px}.info-panel-body{padding:10px 12px;gap:12px}.info-panel-header{padding:10px 12px 8px}.info-panel-title{font-size:14px}}.fault-label-icon{color:#e8a020}.fault-list{display:flex;flex-direction:column;gap:8px}.fault-row{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:#e8a0200d;border:1px solid rgba(232,160,32,.18);border-left:3px solid #e8a020;border-radius:4px}.fault-code-badge{display:inline-block;align-self:flex-start;background:#2a1c08;color:#ffc858;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:11px;font-weight:700;letter-spacing:.5px;padding:2px 8px;border-radius:3px;border:1px solid rgba(232,160,32,.4)}.fault-meaning{font-size:12px;color:var(--text);font-weight:500;line-height:1.45;margin-top:2px}.fault-resolution{font-size:11.5px;color:var(--text2);line-height:1.5;margin-top:2px}.fault-resolution-label{color:#8acba8;font-weight:600}.fault-disclaimer{margin-top:8px;font-size:10.5px;color:var(--text3);font-style:italic;line-height:1.5;padding:6px 8px;background:#ffffff05;border-radius:4px;border-left:2px solid var(--border2)}.add-fault-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:#e8a02014;color:#e8a020;border:1px dashed rgba(232,160,32,.4);border-radius:4px;font-size:11px;cursor:pointer;margin-top:4px}.add-fault-btn:hover{background:#e8a02026}.fault-edit-head{display:flex;gap:6px;align-items:center}.edit-fault-code{flex:1;padding:4px 8px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-size:12px;font-weight:700;background:var(--bg2);color:#ffc858;border:1px solid var(--border2);border-radius:3px}.edit-fault-meaning,.edit-fault-resolution{width:100%;padding:5px 8px;font-family:inherit;font-size:11.5px;background:var(--bg2);color:var(--text);border:1px solid var(--border2);border-radius:3px;resize:vertical;line-height:1.45}.sim-wrapper{position:relative;flex-shrink:0}.sim-trigger-btn{transition:background .2s,border-color .2s,color .2s}.sim-trigger-btn.sim-active{background:#dc50142e;border-color:#dc501480;color:#ff8040;animation:sim-btn-pulse 1.8s ease-in-out infinite}@keyframes sim-btn-pulse{0%,to{box-shadow:0 0 #dc501400}50%{box-shadow:0 0 8px 2px #dc501459}}.sim-panel{position:absolute;top:calc(100% + 8px);right:0;width:360px;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;box-shadow:0 10px 40px #0000008c;z-index:200;max-height:500px;display:flex;flex-direction:column;overflow:hidden}.sim-panel-header{display:flex;align-items:center;gap:7px;padding:10px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:#ff8040;flex-shrink:0}.sim-panel-desc{font-size:11px;color:var(--text2);padding:8px 12px 6px;line-height:1.5;flex-shrink:0}.sim-stop-row{display:flex;align-items:center;gap:7px;margin:0 10px 6px;padding:7px 10px;background:#dc50141f;border:1px solid rgba(220,80,20,.35);border-radius:6px;color:#ff8040;font-size:11px;font-weight:600;cursor:pointer;text-align:left;flex-shrink:0}.sim-stop-row:hover{background:#dc501438}.sim-category-list{overflow-y:auto;flex:1;padding:4px 0 8px}.sim-category{margin-bottom:4px}.sim-category-label{display:flex;align-items:center;gap:4px;padding:6px 12px 4px;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text3)}.sim-fault-row{display:flex;flex-direction:column;gap:3px;padding:7px 12px 7px 20px;text-align:left;cursor:pointer;width:100%;background:transparent;border:none;border-left:2px solid transparent;transition:background .12s}.sim-fault-row:hover{background:#ffffff0a;border-left-color:#e8a02080}.sim-fault-row.sim-row-active{background:#dc50141a;border-left-color:#ff6020}.sim-fault-top{display:flex;align-items:center;gap:7px}.sim-fault-name{font-size:12px;font-weight:600;color:var(--text)}.sim-fault-symptom{font-size:11px;color:var(--text2);line-height:1.4}.sys4-overlay-wrap{position:absolute;bottom:52px;right:18px;z-index:50;pointer-events:none}.sys4-display-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sys4-display-top-row .sys4-header-bar{margin-bottom:0}.sys4-zoom-btn{pointer-events:all;background:#1eff4414;border:1px solid rgba(30,255,68,.22);border-radius:4px;color:#1eff44;font-size:15px;width:24px;height:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;transition:background .15s;padding:0;flex-shrink:0}.sys4-zoom-btn:hover{background:#1eff442e}.sys4-display{background:#090c08;border:2px solid #2a3028;border-radius:8px;padding:14px 22px 12px;min-width:310px;text-align:center;font-family:Courier New,Lucida Console,monospace;box-shadow:0 0 0 1px #00c83c0f,0 0 24px #00c83c1a,inset 0 0 30px #0009}.sys4-header-bar{font-size:8.5px;letter-spacing:2.5px;color:#3a4838;text-transform:uppercase;margin-bottom:10px}.sys4-fault-indicator{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;font-weight:700;letter-spacing:2px;color:#ff3520;margin-bottom:8px;animation:sys4-blink .9s steps(1) infinite}.sys4-fault-dot{width:8px;height:8px;border-radius:50%;background:#ff3520;box-shadow:0 0 6px #ff3520,0 0 12px #ff352066;flex-shrink:0}.sys4-code-line{font-size:38px;font-weight:700;color:#1eff44;letter-spacing:4px;text-shadow:0 0 12px rgba(30,255,68,.35),0 0 30px rgba(30,255,68,.15);margin-bottom:3px;line-height:1}.sys4-name-line{font-size:12px;color:#1eff44;letter-spacing:2.5px;text-transform:uppercase;opacity:.75;margin-bottom:9px}.sys4-symptom-line{font-size:10px;color:#6a8860;letter-spacing:.3px;line-height:1.45;margin-bottom:12px;font-family:Inter,system-ui,sans-serif;font-style:italic}.sys4-stop-btn{pointer-events:all;background:#ff321e1f;color:#ff5540;border:1px solid rgba(255,50,30,.35);border-radius:4px;padding:5px 16px;font-size:10px;letter-spacing:1.5px;font-family:Courier New,monospace;cursor:pointer;text-transform:uppercase;transition:background .15s}.sys4-stop-btn:hover{background:#ff321e40}@keyframes sys4-blink{0%,49%{opacity:1}50%,to{opacity:0}}.help-wrapper{position:relative}.toolbar-btn.help-btn{padding:7px 10px;border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:#7aaad4;border:1px solid rgba(100,160,210,.3)}.toolbar-btn.help-btn:hover{background:#64a0d226;color:#a8d0f0;border-color:#64a0d28c}.toolbar-btn.help-btn.active{background:#64a0d233;color:#c0e0ff;border-color:#64a0d2a6}.help-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:70vh;background:#0f151e;border:1px solid rgba(68,136,200,.35);border-radius:10px;box-shadow:0 10px 40px #000000a6;z-index:300;overflow-y:auto;overflow-x:hidden}.help-panel-header{display:flex;align-items:center;gap:7px;padding:10px 12px;border-bottom:1px solid rgba(68,136,200,.2);font-size:12px;font-weight:600;color:#7aaad4}.help-panel-header span{flex:1}.help-tips{padding:10px 0 6px}.help-tip-row{display:flex;align-items:flex-start;gap:9px;padding:5px 14px;font-size:12px;color:#b8c8d8;line-height:1.5}.help-tip-row:hover{background:#4488c812}.help-tip-row strong{color:#d8eaff}.help-tip-row em{color:#8ab4d4;font-style:normal;font-weight:500}.help-tip-icon{flex-shrink:0;width:18px;display:flex;align-items:center;justify-content:center;margin-top:1px;color:#5a8ab0}.help-doc-section{margin:8px 12px 12px;display:flex;flex-direction:column;gap:6px}.help-doc-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#5a8ab0;text-transform:uppercase;letter-spacing:.5px}.help-doc-input-row{display:flex;gap:5px}.help-doc-input{flex:1;background:#ffffff0d;border:1px solid rgba(68,136,200,.3);border-radius:6px;padding:7px 10px;font-size:12px;color:#c0d8f0;outline:none;min-width:0}.help-doc-input::placeholder{color:#3a5a78}.help-doc-input:focus{border-color:#4488c8a6;background:#4488c814}.help-doc-save-btn{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#4488c826;border:1px solid rgba(68,136,200,.4);border-radius:6px;color:#7aaad4;cursor:pointer;transition:background .15s,border-color .15s}.help-doc-save-btn:hover{background:#4488c847;border-color:#4488c8a6;color:#a8d0f0}.help-doc-link{display:flex;align-items:center;gap:7px;padding:8px 12px;background:#4488c81f;border:1px solid rgba(68,136,200,.35);border-radius:7px;color:#7aaad4;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s}.help-doc-link:hover{background:#4488c838;border-color:#4488c899;color:#a8d0f0}.fleet-toolbar-wrapper{flex-shrink:0}.fleet-toolbar-btn{white-space:nowrap;max-width:160px}.fleet-toolbar-btn .fleet-btn-label{overflow:hidden;text-overflow:ellipsis;max-width:110px;display:inline-block}.fleet-toolbar-btn.fleet-active{background:#3a9ec526;border-color:#3a9ec566;color:var(--accent)}.fleet-overlay{position:fixed;inset:0;z-index:200;background:#0000007a;display:flex;align-items:flex-start;justify-content:flex-start}.fleet-panel{width:320px;height:100%;background:var(--surface);border-right:1px solid var(--border2);display:flex;flex-direction:column;overflow:hidden;box-shadow:4px 0 24px #00000059}.fleet-header{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.fleet-title{font-size:14px;font-weight:600;color:var(--text);letter-spacing:.01em}.fleet-close-btn{background:none;border:none;color:var(--text2);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.fleet-close-btn:hover{color:var(--text);background:var(--surface2)}.fleet-body{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.fleet-loading,.fleet-empty{color:var(--text3);font-size:12px;padding:20px 10px;text-align:center;font-style:italic}.fleet-list{display:flex;flex-direction:column;gap:5px}.fleet-door-item{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg2);transition:border-color .15s}.fleet-door-item.active{border-color:var(--accent)}.fleet-door-item:hover:not(.editing){border-color:var(--border2)}.fleet-door-row{display:flex;align-items:center;gap:8px;padding:9px 10px;cursor:pointer}.fleet-door-indicator{flex-shrink:0;width:16px;display:flex;align-items:center}.fleet-active-icon{color:var(--accent)}.fleet-chevron{color:var(--text3)}.fleet-door-info{flex:1;min-width:0}.fleet-door-name{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet-door-meta{font-size:11px;color:var(--text3);margin-top:2px;display:flex;flex-wrap:wrap;gap:3px}.fleet-dot{color:var(--text3)}.fleet-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;flex-shrink:0}.fleet-badge-warn{background:#f39c1224;color:#f39c12;border:1px solid rgba(243,156,18,.28)}.fleet-badge-ok{background:#2ecc711f;color:#2ecc71;border:1px solid rgba(46,204,113,.22)}.fleet-door-actions{display:flex;gap:3px;opacity:0;transition:opacity .15s}.fleet-door-row:hover .fleet-door-actions{opacity:1}.fleet-icon-btn{background:none;border:none;color:var(--text3);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.fleet-icon-btn:hover{color:var(--text);background:var(--surface2)}.fleet-icon-btn-danger:hover{color:#e74c3c}.fleet-edit-form,.fleet-add-form{padding:10px 12px;display:flex;flex-direction:column;gap:7px}.fleet-add-title{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em}.fleet-input{width:100%;background:var(--bg);border:1px solid var(--border2);border-radius:6px;padding:7px 10px;color:var(--text);font-size:13px;outline:none;font-family:inherit}.fleet-input:focus{border-color:var(--accent)}.fleet-edit-actions{display:flex;gap:7px;padding-top:2px}.fleet-btn{padding:5px 14px;border-radius:6px;border:1px solid var(--border2);background:var(--surface);color:var(--text2);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:5px}.fleet-btn:hover{color:var(--text)}.fleet-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.fleet-btn-primary:hover{background:var(--accent2)}.fleet-btn-primary:disabled{opacity:.5;cursor:not-allowed}.fleet-add-btn{width:100%;padding:10px;border:1px dashed var(--border2);border-radius:8px;background:none;color:var(--text3);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:color .15s,border-color .15s;margin-top:4px}.fleet-add-btn:hover{color:var(--accent);border-color:var(--accent)}.fleet-group{display:flex;flex-direction:column;gap:4px}.fleet-group-header{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;border-radius:6px;padding:6px 8px;cursor:pointer;color:var(--text2);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;text-align:left;transition:background .12s,color .12s}.fleet-group-header:hover{background:var(--surface2);color:var(--text)}.fleet-group-icon{color:var(--accent);flex-shrink:0}.fleet-group-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-group-count{background:var(--surface2);border:1px solid var(--border);color:var(--text3);font-size:10px;font-weight:600;padding:1px 5px;border-radius:8px;flex-shrink:0}.fleet-group-chevron{color:var(--text3);flex-shrink:0}.fleet-input-group{border-color:#3a9ec54d}.fleet-input-group:focus{border-color:var(--accent);background:#3a9ec50d}.maint-section{border-top:1px solid var(--border);flex-shrink:0}.maint-section-header{display:flex;align-items:center;gap:6px;padding:10px 16px;cursor:pointer;color:var(--text2);font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;transition:color .12s}.maint-section-header:hover{color:var(--text)}.maint-door-name{flex:1;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.maint-count-badge{background:#3a9ec526;color:var(--accent);font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px}.maint-collapse-icon{color:var(--text3);display:flex;align-items:center}.maint-body{padding:0 16px 14px;display:flex;flex-direction:column;gap:8px}.maint-empty{font-size:12px;color:var(--text3);font-style:italic}.maint-log-list{display:flex;flex-direction:column;gap:6px}.maint-log-entry{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.maint-log-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}.maint-log-type{font-size:11px;font-weight:600;flex:1}.maint-log-date{font-size:10px;color:var(--text3)}.maint-log-delete{display:flex;gap:3px;opacity:0;transition:opacity .15s}.maint-log-entry:hover .maint-log-delete{opacity:1}.maint-icon-btn{background:none;border:none;color:var(--text3);cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center}.maint-icon-btn:hover{color:var(--text)}.maint-icon-btn-danger:hover{color:#e74c3c}.maint-log-desc{font-size:12px;color:var(--text);line-height:1.45}.maint-log-meta{font-size:10px;color:var(--text3);margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}.maint-sep{color:var(--text3)}.maint-form{background:var(--surface2);border:1px solid var(--border2);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.maint-form-row{display:flex;align-items:center;gap:8px}.maint-form-row-col{flex-direction:column;align-items:flex-start;gap:4px}.maint-label{font-size:11px;color:var(--text3);width:72px;flex-shrink:0}.maint-input,.maint-select{flex:1;background:var(--bg2);border:1px solid var(--border2);border-radius:5px;padding:5px 8px;color:var(--text);font-size:12px;outline:none;font-family:inherit}.maint-input:focus,.maint-select:focus{border-color:var(--accent)}.maint-select{cursor:pointer}.maint-textarea{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:5px;padding:6px 8px;color:var(--text);font-size:12px;outline:none;resize:vertical;font-family:inherit;line-height:1.4;min-height:64px}.maint-textarea:focus{border-color:var(--accent)}.maint-form-actions{display:flex;gap:8px;padding-top:2px}.maint-btn{padding:5px 14px;border-radius:5px;border:1px solid var(--border2);background:var(--surface);color:var(--text2);font-size:12px;cursor:pointer;font-family:inherit}.maint-btn:hover{color:var(--text)}.maint-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.maint-btn-primary:hover{background:var(--accent2)}.maint-btn-primary:disabled{opacity:.5;cursor:not-allowed}.maint-add-btn{width:100%;padding:7px;border:1px dashed var(--border2);border-radius:6px;background:none;color:var(--text3);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;transition:color .15s,border-color .15s;font-family:inherit}.maint-add-btn:hover{color:var(--accent);border-color:var(--accent)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:#0e1417}
