:root{--primary-color:#4a6cf7;--primary-hover:#3a5ce4;--success-color:#28a745;--success-hover:#218838;--danger-color:#dc3545;--danger-hover:#c82333;--warning-color:#ffc107;--warning-hover:#e0a800;--info-color:#17a2b8;--info-hover:#138496;--light-color:#f8f9fa;--dark-color:#343a40;--body-bg:#f0f2f5;--card-bg:#fff;--text-color:#212529;--text-muted:#6c757d;--border-color:#e0e0e0;--border-radius:0.5rem;--card-shadow:0 4px 6px rgba(0,0,0,.1);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:3rem;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.75rem;--transition-speed:0.3s;--border-radius-sm:4px;--border-radius:8px;--border-radius-lg:12px;--shadow-sm:0 2px 4px rgba(0,0,0,.05);--shadow:0 4px 6px rgba(0,0,0,.1);--shadow-lg:0 10px 15px rgba(0,0,0,.1);--transition-fast:0.2s ease;--transition:0.3s ease}.dark-theme{--body-bg:#121212;--card-bg:#1e1e1e;--text-color:#e0e0e0;--text-muted:#a0a0a0;--card-shadow:0 4px 6px rgba(0,0,0,.3);--border-color:#444}.dark-theme .sidebar{box-shadow:2px 0 10px rgba(0,0,0,.5)}.dark-theme .action-item{background-color:#2a2a2a}.dark-theme .action-item:hover{background-color:rgba(74,108,247,.15)}.dark-theme .action-item.active{background-color:rgba(74,108,247,.25)}.dark-theme .form-group-compact input{background-color:#2a2a2a;border-color:#444;color:#e0e0e0}.dark-theme .form-group-compact input:focus{background-color:#2a2a2a}body{background-color:var(--body-bg);color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;margin:0;overflow:hidden;padding:0;transition:background-color var(--transition-speed),color var(--transition-speed)}.app-layout{display:flex;height:100vh;width:100vw}.sidebar{background-color:var(--card-bg);border-right:1px solid var(--border-color);box-shadow:2px 0 10px rgba(0,0,0,.05);display:flex;flex-direction:column;overflow-y:auto;width:320px}.sidebar-header{border-bottom:1px solid var(--border-color);padding:var(--spacing-lg);text-align:center}.sidebar-header h1{align-items:center;color:var(--primary-color);display:flex;font-size:1.5rem;gap:var(--spacing-sm);justify-content:center;margin:0 0 var(--spacing-xs) 0}.sidebar-header .version{color:var(--text-muted);font-size:.75rem;margin:0}.sidebar-section{border-bottom:1px solid var(--border-color);padding:var(--spacing-md)}.sidebar-section h3{align-items:center;color:var(--text-muted);display:flex;font-size:.875rem;font-weight:600;gap:var(--spacing-xs);letter-spacing:.5px;margin:0 0 var(--spacing-md) 0;text-transform:uppercase}.sidebar-section h3 i{color:var(--primary-color);font-size:.875rem}.sidebar-footer{border-top:1px solid var(--border-color);margin-top:auto;padding:var(--spacing-md)}.main-content{display:flex;flex:1;flex-direction:column;overflow:hidden}.console-header{background-color:var(--card-bg);border-bottom:1px solid var(--border-color);padding:var(--spacing-lg)}.console-header h2{align-items:center;color:var(--text-muted);display:flex;font-size:.875rem;font-weight:600;gap:var(--spacing-xs);letter-spacing:.5px;margin:0;text-transform:uppercase}.console-header h2 i{color:var(--primary-color);font-size:.875rem}.console-wrapper{background-color:var(--body-bg);flex:1;overflow:hidden;padding:var(--spacing-md)}.console-wrapper pre{height:100%;margin:0}.status-compact{align-items:center;border-radius:var(--border-radius-sm);display:flex;font-size:.75rem;font-weight:600;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm)}.status-compact.error{background-color:rgba(220,53,69,.1);border-left:3px solid var(--danger-color);color:var(--danger-color)}.status-compact.success{background-color:rgba(40,167,69,.1);border-left:3px solid var(--success-color);color:var(--success-color)}.form-group-compact{margin-bottom:var(--spacing-sm)}.form-group-compact label{color:var(--text-muted);display:block;font-size:.75rem;font-weight:600;letter-spacing:.3px;margin-bottom:var(--spacing-xs);text-transform:uppercase}.form-group-compact input[type=file],.form-group-compact input[type=number],.form-group-compact input[type=text]{background-color:var(--body-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-sizing:border-box;color:var(--text-color);font-size:.875rem;padding:var(--spacing-xs) var(--spacing-sm);transition:all var(--transition-fast);width:100%}.form-group-compact input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(74,108,247,.1);outline:none}.button-group-compact{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.btn-compact{flex:1;height:auto;min-width:0;padding:var(--spacing-xs) var(--spacing-sm);white-space:nowrap}.btn-compact,.btn-compact i{font-size:.75rem}.btn-execute{align-items:center;background:var(--primary-color);border:none;border-radius:var(--border-radius);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:var(--spacing-sm);justify-content:center;padding:var(--spacing-md);transition:all var(--transition-fast);width:100%}.btn-execute:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 12px rgba(74,108,247,.3);transform:translateY(-2px)}.btn-execute:disabled{background:var(--border-color);cursor:not-allowed;opacity:.6}.action-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.action-item{align-items:center;background-color:var(--body-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;display:flex;font-size:.875rem;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-fast);user-select:none}.action-item i{color:var(--primary-color);text-align:center;width:16px}.action-item:hover{background-color:rgba(74,108,247,.05);border-color:var(--primary-color);transform:translateX(4px)}.action-item.active{background-color:rgba(74,108,247,.1);border-color:var(--primary-color);box-shadow:0 2px 8px rgba(74,108,247,.2);font-weight:600}.action-item:not(.enabled){cursor:not-allowed;opacity:.5}.action-item:not(.enabled):hover{background-color:var(--body-bg);border-color:var(--border-color);transform:none}.param-section{margin-top:var(--spacing-md)}.param-section h4{color:var(--text-color);font-size:.875rem;font-weight:600;margin:0 0 var(--spacing-sm) 0}.param-hint{color:var(--text-muted);font-size:.75rem;font-style:italic;margin:0}.form-group{margin-bottom:var(--spacing-md);position:relative}.form-group small{color:var(--text-muted);display:block;font-size:var(--font-size-xs);margin-top:5px}input[type=number],input[type=password],input[type=text],select,textarea{background-color:var(--card-bg);border:2px solid var(--border-color);border-radius:var(--border-radius);box-shadow:0 2px 4px rgba(0,0,0,.05);box-sizing:border-box;color:var(--text-color);font-size:var(--font-size-md);height:48px;margin-top:var(--spacing-xs);padding:12px 15px;transition:all .3s ease;width:100%}input[type=number]:focus,input[type=password]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(74,108,247,.2);outline:none;transform:translateY(-2px)}.dark-theme input[type=number],.dark-theme input[type=password],.dark-theme input[type=text],.dark-theme select,.dark-theme textarea{background-color:#2a2a2a;border-color:var(--border-color)}input[type=file]{color:var(--text-color);cursor:pointer;display:block;font-size:var(--font-size-md);margin-top:var(--spacing-xs);padding:10px 0;width:100%}input[type=file]::-webkit-file-upload-button{background:var(--primary-color);border:none;border-radius:var(--border-radius-sm);color:#fff;cursor:pointer;margin-right:10px;padding:8px 16px;transition:background-color .3s}input[type=file]::-webkit-file-upload-button:hover{background:var(--primary-hover)}label{color:var(--text-color);display:block;font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--spacing-xs);transition:color .3s ease}.form-group label i{color:#0082fc;font-size:1.1em;margin-right:var(--spacing-xs);text-align:center;width:20px}.fa-bluetooth{color:#0082fc!important;font-size:1.2em!important}label i{color:var(--primary-color);margin-right:5px}button{align-items:center;background:var(--primary-color);border:none;border-radius:var(--border-radius);color:var(--light-color);cursor:pointer;display:inline-flex;font-size:var(--font-size-md);font-weight:500;gap:var(--spacing-sm);height:48px;justify-content:center;min-width:120px;padding:var(--spacing-md) var(--spacing-lg);transition:all var(--transition-fast)}button:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm);transform:translateY(-2px)}button:active{transform:translateY(0)}button:disabled{background:var(--border-color);box-shadow:none;cursor:not-allowed;opacity:.7;transform:none}.btn-primary{background:var(--primary-color)}.btn-success{background:var(--success-color)}.btn-danger{background:var(--danger-color)}.btn-outline{background:transparent;border:1px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover{background:var(--primary-hover)}#output{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:inset 0 2px 4px rgba(0,0,0,.05);color:var(--text-color);font-family:Courier New,monospace;font-size:14px;height:100%;letter-spacing:.3px;line-height:1.6;margin:0;overflow-y:auto;padding:var(--spacing-md);white-space:pre-wrap}#output .json-key{color:#0550ae;font-weight:700}#output .json-value{color:#0b7500}#output .json-string{color:#a31515}#output .json-number{color:#098658}#output .json-syntax{color:#000}#output .error-message{background-color:rgba(211,47,47,.1);color:#d32f2f}#output .error-message,#output .success-message{border-radius:2px;font-weight:700;padding:2px 4px}#output .success-message{background-color:rgba(46,125,50,.1);color:#2e7d32}#output div{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.1);border-radius:4px;margin-bottom:8px;padding:8px 10px}#output .log-timestamp{color:#666;font-weight:400;margin-right:8px}#output .json-message{background-color:rgba(0,0,0,.05);border-left:3px solid #0550ae}.dark-theme #output{background-color:#1e1e1e;border-color:hsla(0,0%,100%,.1);color:#f0f0f0}.dark-theme #output .json-key{color:#4fc1ff}.dark-theme #output .json-value{color:#b5cea8}.dark-theme #output .json-string{color:#ce9178}.dark-theme #output .json-number{color:#b5cea8}.dark-theme #output .json-syntax{color:#d4d4d4}.dark-theme #output .error-message{background-color:rgba(241,76,76,.2);color:#f14c4c}.dark-theme #output .success-message{background-color:rgba(108,198,68,.2);color:#6cc644}.dark-theme #output div{background-color:hsla(0,0%,100%,.05);border-bottom:1px solid hsla(0,0%,100%,.1)}.dark-theme #output .log-timestamp{color:#aaa}.dark-theme #output .json-message{background-color:hsla(0,0%,100%,.07);border-left:3px solid #4fc1ff}.status{align-items:center;border-radius:var(--border-radius);display:flex;font-size:var(--font-size-md);font-weight:600;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);transition:all .3s ease}.error{background-color:rgba(220,53,69,.1);border-left:4px solid var(--danger-color);color:var(--danger-color)}.success{background-color:rgba(40,167,69,.1);border-left:4px solid var(--success-color);color:var(--success-color)}.info{background-color:rgba(23,162,184,.1);border-left:4px solid var(--info-color);color:var(--info-color)}.warning{background-color:rgba(255,193,7,.1);border-left:4px solid var(--warning-color);color:var(--warning-color)}.fade-in{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.theme-toggle{align-items:center;background:var(--card-bg);border:1px solid var(--border-color);border-radius:50%;box-shadow:var(--shadow-sm);cursor:pointer;display:flex;height:40px;justify-content:center;position:fixed;right:var(--spacing-md);top:var(--spacing-md);transition:all var(--transition-fast);width:40px;z-index:1000}.theme-toggle:hover{box-shadow:var(--shadow);transform:rotate(30deg)}@media (max-width:768px){.app-layout{flex-direction:column}.sidebar{border-bottom:1px solid var(--border-color);border-right:none;max-height:50vh;width:100%}.main-content{height:50vh}.button-group-compact{flex-direction:column}.btn-compact{width:100%}}