:root{--top-nav-height: 49px}body{margin:0}.backend-status{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:700;font-family:Arial,sans-serif;white-space:nowrap}.backend-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.backend-status--checking{color:#888;background:#f0f0f0}.backend-status--checking .backend-status-dot{background:#aaa}.backend-status--online{color:#1a7f37;background:#e6f6ea}.backend-status--online .backend-status-dot{background:#2ea043}.backend-status--offline{color:#c1121f;background:#fdeaea}.backend-status--offline .backend-status-dot{background:#d9272e;animation:backend-status-pulse 1.2s ease-in-out infinite}@keyframes backend-status-pulse{0%,to{opacity:1}50%{opacity:.35}}.top-tab-bar{display:flex;align-items:center;box-sizing:border-box;height:var(--top-nav-height);border-bottom:2px solid #dde3ec;gap:4px;padding:0 24px;background:#fff;font-family:Arial,sans-serif}.top-tab-btn{display:inline-block;background:none;border:none;border-bottom:3px solid transparent;padding:10px 20px;font-size:15px;font-weight:600;cursor:pointer;color:#666;margin-bottom:-2px;transition:color .15s,border-color .15s;text-decoration:none;font-family:Arial,sans-serif}.top-tab-btn.active{color:#06c;border-bottom-color:#06c}.top-tab-bar-right{display:flex;align-items:center;gap:12px;margin-left:auto}.user-logout-container{display:flex;align-items:center;gap:6px}.username-display{font-weight:700;color:#2c3e50;font-size:12px}.logout-button{padding:4px 8px;background-color:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:11px;transition:background-color .2s}.logout-button:hover{background-color:#5a6268}.logs-grid .log-row{display:flex!important;width:100%!important;box-sizing:border-box!important;padding-left:12px!important}.log-row.jump-highlight{background-color:#ffeb3b4d;animation:highlight-fade 2s ease-out}@keyframes highlight-fade{0%{background-color:#ffeb3b99}to{background-color:#ffeb3b1a}}.log-row.block-header-line{background-color:#f4433640}.rtc-glitch{color:#e65100;font-weight:700;border-bottom:1px dotted #e65100;cursor:pointer}.logs-grid .log-line{font-family:Quicksand,sans-serif!important;font-size:18px!important;line-height:1!important;padding:0!important;white-space:pre-wrap!important;word-wrap:break-word!important;overflow-wrap:break-word!important;border-right:none!important;flex:1 1 0!important;min-width:0!important;box-sizing:border-box!important;margin:0!important}.logs-grid .translation-line{font-family:Quicksand,sans-serif!important;font-size:18px!important;line-height:1!important;padding:0!important;white-space:pre-wrap!important;word-wrap:break-word!important;overflow-wrap:break-word!important;background-color:transparent!important;color:#333!important;flex:1 1 0!important;min-width:0!important;box-sizing:border-box!important;margin:0!important}.app-container.hide-translations .translation-line{display:none!important}.app-container.hide-translations .log-line{flex:1 1 100%!important}.custom-scrollbar-track{position:absolute;top:0;right:2px;bottom:0;width:10px;z-index:2;cursor:default}.custom-scrollbar-thumb{position:absolute;top:0;left:0;width:100%;border-radius:5px;background:#00000059;cursor:pointer}.custom-scrollbar-thumb:hover{background:#00000080}.scroll-to-top-btn{position:absolute;right:24px;bottom:16px;z-index:5;width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:2px solid #0f9b8e;border-radius:50%;color:#0f9b8e;cursor:pointer}.scroll-to-top-btn:hover{color:#0b7a70;border-color:#0b7a70}.logs-scroll-container-wrapper{position:relative;width:100%;height:100%;flex:1;min-height:0}.logs-scroll-container{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;overflow-anchor:none;border:1px solid #e0e0e0;box-sizing:border-box;scrollbar-width:none;padding-right:12px}.logs-scroll-container:focus{outline:none}.logs-scroll-container::-webkit-scrollbar{display:none}.logs-grid{position:relative;width:100%!important;max-width:100%!important;box-sizing:border-box!important}.transaction-link{color:#007bff;text-decoration:underline}.combined-view-container{flex:1;display:flex;flex-direction:column;overflow:hidden;background-color:#fff;min-height:0}.combined-content{flex:1;display:flex;overflow:hidden;min-height:0}.combined-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0}.combined-panel .logs-grid,.left-panel .logs-grid,.right-panel .logs-grid{position:relative}.combined-panel-header{flex:none;padding:8px 12px;background-color:#fafafa;border-bottom:1px solid #e0e0e0}.combined-panel-header h4{margin:0;font-size:13px;color:#333;font-weight:600}.combined-divider{width:1px;background-color:#ddd;flex-shrink:0}.textarea-section{flex:1;padding:5px;border-radius:5px;border:1px solid #ccc;overflow-x:hidden;overflow-y:auto;min-height:0;background-color:#fff}.search-bar{position:fixed;top:12px;right:24px;background:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:0 2px 8px #00000026;z-index:2000;padding:8px 10px;display:flex;align-items:center;gap:8px}.search-bar-input{width:220px;padding:5px 8px;border:1px solid #ccc;border-radius:4px;font-size:14px;font-family:Quicksand,sans-serif}.search-bar-count{font-size:12px;color:#666;min-width:60px;text-align:center;white-space:nowrap}.search-bar-btn{padding:4px 8px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:13px}.search-bar-btn:hover{background-color:#e0e0e0}.search-bar-scope{display:flex;gap:2px}.search-bar-scope-btn{padding:4px 8px;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:12px;color:#666}.search-bar-scope-btn.active{background-color:#2196f3;color:#fff;border-color:#2196f3}.search-bar-close{padding:4px 8px;background:none;border:none;cursor:pointer;font-size:14px;color:#999}.search-bar-close:hover{color:#f44336}.highlight-tags-container{display:flex;flex-wrap:wrap;gap:8px;width:100%;justify-content:flex-start;margin:0;padding:8px 10px;background-color:#f5f5f5;border-bottom:1px solid #ddd}.highlight-tag{display:flex;align-items:center;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:20px;padding:4px 10px;gap:6px;font-size:12px;min-width:fit-content}.highlight-word{font-weight:500;color:#333;white-space:nowrap}.highlight-color-box{width:14px;height:14px;border-radius:3px;border:1px solid #ccc}.highlight-remove{background:none;border:none;color:#666;cursor:pointer;font-size:14px;font-weight:700;padding:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease}.highlight-remove:hover{background-color:#e9ecef;color:#333}.filter-only-tag{border-color:#e91e63!important;color:#e91e63}.filter-only-tag .highlight-word{color:#e91e63}.highlight-filter{background:none;border:none;color:#aaa;cursor:pointer;font-size:13px;padding:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease,color .2s ease}.highlight-filter:hover{background-color:#e9ecef;color:#555}.highlight-filter.filter-active{color:#e91e63;font-weight:700}.color-picker-menu{position:fixed;background:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:0 2px 8px #00000026;z-index:1001;padding:5px 7px;display:flex;align-items:flex-start;white-space:nowrap}.color-picker-content{display:flex;flex-direction:column;gap:5px}.color-picker-top-row{display:flex;align-items:center;gap:7px}.color-picker-label{font-size:14px;color:#333;font-weight:500}.color-options{display:flex;flex-direction:row;gap:4px}.color-option{width:22px;height:22px;border-radius:3px;cursor:pointer;border:1px solid #fff;box-shadow:0 1px 2px #0000001a;transition:transform .2s ease}.color-option:hover{transform:scale(1.2)}.color-picker-filter-btn{margin-top:6px;width:100%;background:none;border:1px solid #ccc;border-radius:4px;padding:3px 8px;font-size:12px;cursor:pointer;color:#555;text-align:center;transition:background-color .2s ease,color .2s ease}.color-picker-filter-btn:hover{background-color:#f0f0f0}.color-picker-filter-btn.filter-active{color:#e91e63;border-color:#e91e63;font-weight:700}.highlight-bar{flex-shrink:0;width:3cm;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;position:relative;overflow:hidden}.combined-highlight-bar{margin-left:10px;height:100%}.highlight-spike{position:absolute;height:4px;cursor:pointer;border-radius:2px;transition:all .2s ease;opacity:.8}.highlight-spike:hover{opacity:1;transform:scaleY(1.5);z-index:11}.download-container{position:relative}.download-button{padding:6px 10px;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:12px;transition:background-color .3s ease;white-space:nowrap}.download-button:hover{background-color:#218838}.dropdown-arrow{font-size:12px;transition:transform .3s ease}.download-menu{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:5px;box-shadow:0 4px 12px #00000026;z-index:1000;overflow:hidden;margin-top:2px}.download-option{padding:10px 16px;cursor:pointer;transition:background-color .2s ease;font-size:14px;color:#333}.download-option:hover{background-color:#f8f9fa}.download-option:not(:last-child){border-bottom:1px solid #eee}.attributes-panel{flex:0 0 360px;display:flex;flex-direction:column;background:#fff;border-left:1px solid #ccc;overflow-y:auto;font-family:Arial,sans-serif;font-size:13px}.attributes-panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f5f5f5;border-bottom:1px solid #ddd;font-size:13px;font-weight:600;color:#000;flex-shrink:0}.attrs-machine-id{font-size:11px;color:#666;font-weight:400}.attrs-refresh-btn{background:none;border:none;cursor:pointer;font-size:15px;color:#555;padding:0 4px;line-height:1;display:inline-block}.attrs-refresh-btn:hover{color:#000}.attrs-refresh-btn:disabled{color:#bbb;cursor:default}.attrs-refresh-spinning{animation:spin .8s linear infinite}.attrs-loading,.attrs-error,.attrs-empty{padding:16px;color:#666;font-size:12px;text-align:center}.attrs-error{color:#c00}.attr-group{border-bottom:1px solid #e0e0e0}.attr-group-header{display:flex;align-items:center;gap:6px;padding:7px 12px;background:#f0f0f0;cursor:pointer;-webkit-user-select:none;user-select:none;color:#000;font-weight:600;font-size:12px}.attr-group-header:hover{background:#e4e4e4}.attr-group-arrow{font-size:10px;width:10px;color:#06c}.attr-group-name{flex:1}.attr-group-count{font-size:10px;color:#999;font-weight:400}.attr-group-body{background:#fff}.attr-row{display:flex;align-items:baseline;padding:4px 12px 4px 22px;border-bottom:1px solid #f0f0f0;gap:8px}.attr-row:last-child{border-bottom:none}.attr-name{flex:0 0 52%;color:#444;font-size:12px}.attr-value{flex:1;color:#000;font-size:12px;text-align:right;word-break:break-all}.trace-folder-wrapper{display:flex;align-items:center;gap:6px}.custom-dropdown{position:relative;width:auto;min-width:180px}.dropdown-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.dropdown-arrow{margin-left:10px;transition:transform .2s}.dropdown-content{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 5px 5px;box-shadow:0 2px 8px #0000001a;z-index:1000;max-height:300px;overflow:hidden}.dropdown-filter{width:100%;padding:8px;border:none;border-bottom:1px solid #eee;font-size:14px;outline:none}.dropdown-options{max-height:250px;overflow-y:auto}.dropdown-option{padding:8px 12px;cursor:pointer;border-bottom:1px solid #f5f5f5;transition:background-color .2s}.dropdown-option:hover{background-color:#f8f9fa}.dropdown-option:last-child{border-bottom:none}.trace-folder-select.input-field{padding:6px 8px;border-radius:4px;border:1px solid #ccc;font-size:12px}.trace-upload-button{height:28px;padding:0 10px;background-color:#34495e;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:700;cursor:pointer;transition:background-color .2s,opacity .2s;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.trace-upload-button:hover:not(:disabled){background-color:#2c3e50}.trace-upload-button:disabled{opacity:.6;cursor:not-allowed}.upload-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-card{background:#fff;border:1px solid #dde3ec;border-radius:10px;padding:40px 36px;width:360px;box-sizing:border-box;box-shadow:0 4px 16px #00000014;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}.login-title{margin:0 0 6px;font-size:22px;font-weight:700}.login-sub{color:#666;font-size:13px;margin:0 0 24px}.lc-field{margin-bottom:16px}.lc-field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:#333}.lc-field input[type=text],.lc-field input[type=password]{width:100%;padding:9px 12px;border:1px solid #ccc;border-radius:5px;font-size:14px;box-sizing:border-box;outline:none;transition:border-color .15s}.lc-field input[type=text]:focus,.lc-field input[type=password]:focus{border-color:#06c}.lc-qa-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400;cursor:pointer}.lc-error{color:#c00;font-size:13px;margin-bottom:12px}.lc-btn{width:100%;background:#06c;color:#fff;border:none;padding:10px;border-radius:5px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.lc-btn:hover:not(:disabled){background:#0052a3}.lc-btn:disabled{opacity:.6;cursor:default}.auth-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#ffffffbf;display:flex;justify-content:center;align-items:center;z-index:10001;animation:overlay-fade-in .3s ease}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.notification{position:fixed;top:20px;right:20px;color:#fff;padding:15px 25px;border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:10000;cursor:pointer;max-width:500px;font-size:14px;font-weight:500;white-space:pre-line;line-height:1.5}.error-notification{background-color:#dc3545}.error-notification:hover{background-color:#c82333}.success-notification{background-color:#28a745}.success-notification:hover{background-color:#218838}.notification-fade-enter-active,.notification-fade-leave-active{transition:opacity .5s ease}.notification-fade-enter-from,.notification-fade-leave-to{opacity:0}.app-container{position:relative;height:calc(100vh - var(--top-nav-height));display:flex;flex-direction:column;overflow:hidden;font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;margin:0;padding:0;box-sizing:border-box;background-color:#fff}.input-section{flex:none;height:auto;min-height:60px;max-height:25vh;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:8px 15px;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;overflow:visible;position:relative;z-index:100}.input-field-wrapper{grid-column:2}.right-side-container{grid-column:3;justify-self:end}.input-field,.text-area{padding:4px 8px;border-radius:4px;border:1px solid #ccc;font-size:12px;height:32px;box-sizing:border-box}.submit-button{margin-left:4px;padding:6px 12px;background-color:#2c3e50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px}.submit-button:hover{background-color:#1a242f}.input-field.loading{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><circle cx="50" cy="50" fill="none" stroke="%23ccc" stroke-width="10" r="35" stroke-dasharray="164.93361431346415 56.97787143782138"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;360 50 50" keyTimes="0;1"></animateTransform></circle></svg>');background-repeat:no-repeat;background-position:right .5em center;background-size:1em 1em}.input-field.success{background-color:#90ee90}.input-field.error{background-color:red}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:1000}.spinner{border:16px solid #f3f3f3;border-top:16px solid #3498db;border-radius:50%;width:80px;height:80px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.processing-text{font-size:24px;font-family:Quicksand,sans-serif;margin-top:5cm;margin-left:-7em}.processing-text-container{display:flex;align-items:center}.input-field-wrapper{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.input-field{flex:0 0 auto;width:fit-content;min-width:140px}.transaction-id-field{width:fit-content}.date-field{position:relative;z-index:1000;padding:4px 8px;border-radius:4px;border:1px solid #ccc;font-size:12px;height:32px;box-sizing:border-box}.log-date-field,.dex-date-field{width:192px}.date-field:focus{outline:none;border-color:#ccc}.date-field-wrapper{position:relative;display:inline-block}.date-field-placeholder{position:absolute;z-index:1001;inset:1px 24px 1px 1px;display:flex;align-items:center;padding-left:6px;background:#fff;color:#999;font-size:12px;white-space:nowrap;overflow:hidden;pointer-events:none;border-radius:3px 0 0 3px}.right-side-container{display:flex;align-items:center;gap:10px;flex-shrink:0}.device-info-box{background:#f8f9fa;border:2px solid #495057;border-radius:4px;padding:4px 8px;font-family:Consolas,Monaco,monospace;font-size:10px;white-space:nowrap;min-width:260px;box-sizing:border-box}.device-info-row{display:flex;gap:6px;margin-bottom:2px}.device-info-row:last-child{margin-bottom:0}.device-info-label{color:#333;font-weight:700;white-space:nowrap}.device-info-value{color:#333;font-weight:500;white-space:nowrap}.device-info-row.pos-not-updated{background:#c00;border-radius:3px;padding:1px 4px;margin:-1px -4px 1px}.device-info-row.pos-not-updated .device-info-label,.device-info-row.pos-not-updated .device-info-value{color:#fff;font-weight:700}.pos-not-updated-tag{color:#fff;font-weight:700;white-space:nowrap}.tab-bar{flex:none;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background-color:#f5f5f5;border-bottom:2px solid #e0e0e0;gap:12px;height:auto;min-height:48px}.tabs-container{display:flex;align-items:center;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tabs-container::-webkit-scrollbar{display:none}.tab-bar-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.tab-wrapper{position:relative;display:inline-block}.tab-button{display:flex;align-items:center;gap:8px;padding:10px 16px;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;font-family:Arial,sans-serif;font-size:15px;font-weight:600;color:#666;white-space:nowrap;transition:color .15s,border-color .15s}.tab-button:hover{color:#333}.tab-button.active{color:#06c;border-bottom-color:#06c}.tab-hover-menu{position:fixed;background-color:#fff;border:1px solid #333;border-radius:4px;box-shadow:0 4px 12px #0000004d;z-index:9999;min-width:150px}.tab-hover-option{padding:8px 12px;cursor:pointer;font-size:13px;color:#333;transition:background-color .2s}.tab-hover-option:hover{background-color:#f0f0f0}.tab-hover-option:first-child{border-radius:4px 4px 0 0}.tab-hover-option:last-child{border-radius:0 0 4px 4px}.tab-add{font-size:20px;font-weight:700;padding:6px 14px;background-color:#4caf50;color:#fff;border-color:#4caf50}.tab-add:hover{background-color:#45a049}.tab-close{font-size:18px;font-weight:700;color:#999;margin-left:4px;line-height:1}.tab-close:hover{color:#f44336}.tab-content-wrapper{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.textarea-container{flex:1;display:flex;flex-direction:row;min-height:0;padding:10px;gap:1cm;overflow:hidden}.textarea-wrapper{display:flex;width:100%;height:100%;gap:1cm;overflow:hidden}.textarea-section{flex:1;padding:5px;border-radius:5px;border:1px solid #ccc;overflow-x:hidden;overflow-y:auto;min-height:0;background-color:#fff;display:flex}.content-row{flex:1;display:flex;flex-direction:row;min-height:0;overflow:hidden}.translation-toggle-wrapper{display:flex;align-items:center;gap:8px;flex-shrink:0}.translation-toggle-label{font-size:13px;font-weight:600;color:#333;white-space:nowrap}.translation-toggle{border:none;background:none;padding:0;cursor:pointer}.translation-toggle-track{position:relative;display:inline-flex;align-items:center;width:56px;height:24px;border:1px solid #ccc;border-radius:4px;background:#d5d5d5;overflow:hidden}.translation-toggle-fill{position:absolute;top:0;left:0;width:0;height:100%;background:#2196f3;transition:width .2s ease}.translation-toggle.is-on .translation-toggle-fill{width:100%}.translation-toggle-text{position:absolute;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;letter-spacing:.5px;transition:left .2s ease,color .2s ease;z-index:1}.translation-toggle.is-on .translation-toggle-text{left:7px;color:#fff}.translation-toggle:not(.is-on) .translation-toggle-text{left:26px;color:#888}.translation-toggle-knob{display:none}.attributes-toggle-btn{flex-shrink:0;display:flex;align-items:center;gap:6px;background:#fff;color:#000;border:1px solid #ccc;border-radius:4px;padding:6px 10px;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s}.attributes-toggle-btn:hover:not(:disabled){background:#f0f0f0;border-color:#999}.attributes-toggle-btn.attrs-active{background:#e8f0ff;border-color:#06c;color:#000}.attributes-toggle-btn.attrs-ready{background:#06c;border-color:#06c;color:#fff}.attributes-toggle-btn:disabled{opacity:.4;cursor:not-allowed}.attributes-panel-placeholder{flex:0 0 260px;border-left:1px solid #e0e0e0;padding:10px;color:#666;font-size:13px;overflow-y:auto}.placeholder-button{padding:6px 10px;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:13px;white-space:nowrap}.drop-label{font-size:13px;color:#666;margin-bottom:6px;padding:6px 10px;border-radius:5px;transition:background .15s,color .15s}.drop-label-active{background:#e8f0fe;color:#06c;font-weight:600}.file-name{color:#06c;font-weight:600}.btn-clear-file{background:none;border:none;color:#c00;cursor:pointer;font-size:12px;padding:0;text-decoration:underline}.id-textarea{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid #ccc;border-radius:5px;font-size:13px;font-family:monospace;resize:vertical;transition:border-color .15s,background .15s}.id-textarea.drag-over{border-color:#06c;background:#f0f6ff}.id-textarea:disabled{background:#f5f7fa;color:#555;cursor:default}.serial-notice{margin-top:10px;display:flex;align-items:center;gap:10px;font-size:13px;color:#555}.btn-preview{padding:5px 12px;font-size:12px}.resolved-preview{margin-top:10px;font-size:13px;max-height:160px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:5px;padding:8px 12px;background:#fff}.resolved-row{display:flex;gap:10px;margin-bottom:4px}.serial-txt{font-family:monospace;color:#555}.arrow{color:#888}.mid-ok{color:#1a6e1a;font-weight:600}.mid-none{color:#c00}.machine-id-btn-secondary{background:#eee;border:1px solid #ccc;padding:7px 14px;border-radius:5px;cursor:pointer;font-size:13px}.bulk-tab{display:flex;flex-direction:column;gap:20px}.panel{background:#f7f9fc;border:1px solid #dde3ec;border-radius:8px;padding:20px 24px}.panel-title{margin:0 0 14px;font-size:16px;font-weight:700}.action-row{display:flex;gap:16px;margin-bottom:16px}.radio-card{flex:1;border:2px solid #dde3ec;border-radius:7px;padding:14px 16px;cursor:pointer;background:#fff;display:flex;flex-direction:column;gap:4px;transition:border-color .15s}.radio-card.active{border-color:#06c;background:#f0f6ff}.radio-card input{display:none}.radio-label{font-size:14px;font-weight:700}.radio-desc{font-size:12px;color:#666}.run-row{display:flex;align-items:center;gap:16px}.btn-run{background:#06c;color:#fff;border:none;padding:11px 28px;border-radius:6px;font-size:15px;font-weight:700;cursor:pointer}.btn-run:disabled{opacity:.55;cursor:default}.submit-error{color:#c00;font-size:13px}.submit-success{color:#1a6e1a;font-size:13px;font-weight:600}.results-panel{background:#fff}.results-table{width:100%;border-collapse:collapse;font-size:13px}.results-table th,.results-table td{border:1px solid #ddd;padding:7px 10px;text-align:left}.results-table th{background:#f0f0f0;font-weight:600}.badge-ok{color:#1a6e1a;font-weight:600}.badge-err{color:#c00;font-size:12px}.badge-pending{color:#888}.badge-running{color:#1a56b0;font-weight:600}.automation-page{padding:32px 24px;font-family:Arial,sans-serif;color:#222}.restoring-msg{text-align:center;padding:60px 0;color:#888;font-size:14px}.mp-wrap{font-family:Segoe UI,Arial,sans-serif;font-size:13px;color:#1a1a1a}.mp-wrap.mp-dragging{outline:3px dashed #0f9b8e;outline-offset:4px}.tools-page.compact .mp-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.mp-controls{padding:12px 0;display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}.mp-details-toggle{padding:4px 0}.mp-input-area{flex:1;min-width:300px}.mp-input-area textarea{width:100%;height:120px;border:1px solid #ccc;border-radius:4px;padding:8px;font-family:monospace;font-size:12px;resize:vertical;box-sizing:border-box;white-space:pre;overflow-x:auto}.mp-btn-col{display:flex;flex-direction:column;gap:8px}.mp-btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:700}.mp-btn-parse{background:#0f9b8e;color:#fff}.mp-btn-parse:hover{background:#0d8a7e}.mp-btn-upload{background:#c0d0f0;color:#2a4a9f}.mp-btn-upload:hover{background:#b0c0e0}.mp-btn-export{background:#d0f0d0;color:#1a7a1a}.mp-btn-export:hover{background:#c0e0c0}.mp-btn-export:disabled{background:#eee;color:#999;cursor:default}.mp-btn-clear{background:#ddd;color:#333}.mp-btn-clear:hover{background:#ccc}.mp-btn-reset{padding:4px 10px;font-size:11px;background:#ddd;color:#333}.mp-btn-reset:hover{background:#ccc}.mp-filters{background:#f0f0f0;border-radius:4px;padding:8px 12px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:2px}.mp-filters label{color:#555;font-size:12px}.mp-filters select,.mp-search{background:#fff;color:#1a1a1a;border:1px solid #ccc;border-radius:3px;padding:4px 8px;font-size:12px}.mp-legend{padding:6px 0;display:flex;gap:16px;align-items:center;font-size:11px;color:#555;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;margin-bottom:4px}.mp-legend-item{display:flex;gap:5px;align-items:center}.mp-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.mp-identity-panel{background:#f0fff0;border:1px solid #c0e0c0;border-radius:4px;padding:6px 14px;margin-bottom:4px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.mp-identity-panel h3{color:#2a8a2a;font-size:13px;margin:0;flex-shrink:0}.mp-identity-grid{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mp-identity-item{background:#f5fff5;border:1px solid #c0e0c0;border-radius:4px;padding:4px 12px;font-size:11px;display:flex;align-items:baseline;gap:10px;flex-wrap:nowrap;white-space:nowrap}.mp-id-title{color:#2a8a2a;font-size:11px;font-weight:700;flex-shrink:0}.mp-id-info{color:#333}.mp-stats{padding:5px 0;color:#555;font-size:11px;border-bottom:1px solid #e0e0e0;margin-bottom:2px}.mp-table-wrap{border:1px solid #e0e0e0;position:relative}.tools-page.compact .mp-table-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.mp-grid-header{background:#e8e8e8;color:#555;font-size:11px;position:sticky;top:0;z-index:10;display:grid;grid-template-columns:4% 14% 9% 5% 10% 48% 10%}.mp-grid-header>div{padding:6px 8px;border-bottom:2px solid #ccc;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none}.mp-scroll{max-height:70vh;overflow:auto;position:relative}.tools-page.compact .mp-scroll{max-height:none;flex:1;min-height:0}.mp-vgrid{position:relative;width:100%}.mp-empty{text-align:center;padding:20px;color:#888}.mp-group{border-bottom:1px solid #e0e0e0}.mp-group.jump-highlight{animation:mp-highlight-fade 2s ease-out}@keyframes mp-highlight-fade{0%{background-color:#ffeb3b99}to{background-color:#ffeb3b00}}.search-match{background-color:#ffe082;border-radius:2px}.search-current-match{background-color:#ff6f00;color:#fff;border-radius:2px;font-weight:700}.mp-row-main{display:grid;grid-template-columns:4% 14% 9% 5% 10% 48% 10%}.mp-row-main:hover{background:#f5f5f5}.mp-row-main>div{padding:5px 8px;vertical-align:top;font-size:12px;overflow-wrap:anywhere}.mp-ts{white-space:nowrap;color:#888}.mp-code{font-family:monospace;font-size:11px;color:#7c3aed}.dev-to-peri{border-left:3px solid #4a90d9}.peri-to-dev{border-left:3px solid #4caf50}.error-row{border-left:3px solid #e74c3c;background:#fff0f0}.log-line-row{padding:1px 8px;font-family:monospace;font-size:11px;color:#666;white-space:pre-wrap;overflow-wrap:anywhere;border-left:3px solid #ccc}.mp-hex-inline{padding:2px 8px 3px 28px;background:#f7f7f7;font-family:monospace;font-size:11px;white-space:normal;overflow-wrap:anywhere}.mp-row-gap{height:6px}.dir-badge{display:inline-block;padding:2px 5px;border-radius:3px;font-size:10px;font-weight:700;white-space:nowrap}.badge-d2p{background:#d0e8ff;color:#1a5a9f}.badge-p2d{background:#d0f0d0;color:#1a7a1a}.badge-unk{background:#fff0d0;color:#c07000}.port-badge{display:inline-block;padding:1px 5px;border-radius:3px;font-size:10px;background:#d0e0f0;color:#369}.retry-badge{display:inline-block;padding:1px 4px;border-radius:2px;font-size:10px;background:#fff0d0;color:#c07000}.crc-ok{color:#2a8a2a;font-weight:600}.crc-fail{color:#c22;font-weight:700}.func-name{font-weight:700;color:#1a1a1a}.func-desc{color:#555;font-size:11px}.pkt-num{color:#888}.expand-btn{cursor:pointer;color:#777;width:16px;display:inline-block;text-align:center}.expand-btn:hover{color:#000}.hex-byte{display:inline;padding:1px 3px;margin:0 1px;border-radius:2px;font-family:monospace}.hb-len{background:#e0e0ff;color:#33c}.hb-opts{background:#fff0d0;color:#c07000}.hb-pktid{background:#d0f0d0;color:#282}.hb-src,.hb-srclsb{background:#ffd0d0;color:#c00}.hb-dst,.hb-dstlsb{background:#d0f0f0;color:#077}.hb-func{background:#f0d0ff;color:#709}.hb-data{background:#d0ffd0;color:#060}.hb-crc{background:ivory;color:#880}.mp-detail{padding:12px 16px;font-family:monospace;font-size:11px;background:#fafafa}.mp-hex-display{background:#f0f0f0;padding:8px;border-radius:4px;margin-bottom:8px;word-break:break-all;line-height:2}.mp-hex-legend{margin-bottom:8px;font-size:10px;color:#666}.mp-hex-legend .hex-byte{font-size:10px}.mp-field-table{width:100%;border-collapse:collapse}.mp-field-table td{padding:3px 8px;border:1px solid #ddd;font-size:11px}.mp-field-table tr:nth-child(2n){background:#f5f5f5}.field-name{color:#555;width:180px}.field-value{color:#1a1a1a;font-family:monospace}.field-raw{color:#888;font-size:10px}.fields-sep{padding:4px 8px;background:#e8ede8;color:#555;font-size:10px;text-align:center;font-style:italic}.ap-wrap{font-family:Arial,sans-serif;font-size:13px;color:#1a1a1a}.ap-inputs{display:flex;gap:16px;margin-bottom:10px}.ap-inputs .ap-input-area{flex:1;min-width:0}.ap-input-area label{display:block;margin-bottom:6px;font-weight:600}.ap-input-area textarea{width:100%;box-sizing:border-box;padding:8px;border:1px solid #ccc;border-radius:4px;font-family:monospace;font-size:12px;resize:vertical}.ap-input-btn-row{margin-top:8px}.ap-btn-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:nowrap;white-space:nowrap}.ap-btn{padding:8px 14px;border:1px solid #ccc;border-radius:5px;cursor:pointer;font-size:13px;background:#fff}.ap-btn-parse{background:#06c;color:#fff;border-color:#06c}.ap-btn-clear{color:#a33}.ap-error{color:#c00}.ap-loading{color:#888}.ap-filter-group{display:flex;align-items:center;gap:14px;flex-wrap:nowrap;white-space:nowrap}.ap-filter-group label{display:inline-flex;align-items:center;gap:4px;font-weight:400;cursor:pointer}.ap-tables{display:flex;gap:16px;align-items:flex-start}.ap-tables .ap-table-col{flex:1;min-width:0}.ap-tables .ap-table-col-hidden{flex:0 0 auto}.ap-table-toggle{display:block;margin-bottom:8px;font-weight:600;cursor:pointer;white-space:nowrap}.ap-table-col-merged{flex:1;min-width:0}.ap-table-toggle-row{display:flex;gap:24px;margin-bottom:8px}.ap-table-toggle-row .ap-table-toggle{margin-bottom:0}.ap-grid{display:grid;grid-template-columns:minmax(0,var(--col-id-w)) minmax(0,var(--col-name-w)) minmax(0,var(--col-group-w)) minmax(0,1fr);width:100%;min-width:0;border:1px solid #ddd;border-top:none}.ap-cell{padding:8px;border-bottom:1px solid #ddd;border-right:1px solid #ddd;white-space:normal;overflow-wrap:break-word;word-break:break-word;min-width:0}.ap-cell-value{border-right:none}.ap-cell-head{background-color:#f2f2f2;font-weight:700;cursor:pointer;border-top:1px solid #ddd}.ap-cell-head:hover{background-color:#e2e2e2}.ap-empty{color:#888;padding:12px 0}.ap-grid-merged{grid-template-columns:minmax(0,var(--col-id-w)) minmax(0,var(--col-name-w)) minmax(0,var(--col-group-w)) minmax(0,1fr) 12px minmax(0,var(--col-id-w)) minmax(0,var(--col-name-w)) minmax(0,var(--col-group-w)) minmax(0,1fr)}.ap-col-divider{background-color:#e8e8e8}.ap-diff-value{background-color:#fdecea}.ap-diff-missing{background-color:#fff4de}.tools-page{padding:32px 24px;font-family:Arial,sans-serif;color:#222;box-sizing:border-box}.tools-page.compact{height:calc(100vh - var(--top-nav-height));padding:8px 16px;display:flex;flex-direction:column}.tools-page.compact.no-top-nav{height:100vh}.simple-tab-bar{display:flex;border-bottom:2px solid #dde3ec;margin-bottom:24px;gap:4px}.simple-tab-btn{background:none;border:none;border-bottom:3px solid transparent;padding:10px 20px;font-size:15px;font-weight:600;cursor:pointer;color:#666;margin-bottom:-2px;transition:color .15s,border-color .15s}.simple-tab-btn.active{color:#06c;border-bottom-color:#06c}.tab-body{min-height:300px}.tools-page.compact .tab-body{flex:1;min-height:0;display:flex;flex-direction:column}.login-page{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}
