body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#16213e;color:#fff;overflow-x:hidden}#app{width:100%;min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}body{font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0a0e17;color:#f9fafb;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.container{max-width:480px;margin:0 auto;padding:16px;min-height:100vh;display:flex;flex-direction:column;gap:16px}.header{text-align:center;padding:20px 0;border-bottom:1px solid #1f2937}.header .app-title,.header .title{font-size:24px;font-weight:700;background:linear-gradient(135deg,#00d4ff,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.header .app-subtitle{font-size:12px;color:#6b7280;margin-top:4px;letter-spacing:2px;text-transform:uppercase}.connection-card{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#111827;border-radius:16px;border:1px solid #1f2937}.connection-status{display:flex;align-items:center;gap:10px}.status-dot{width:10px;height:10px;border-radius:50%;background:#6b7280}.status-dot.connected{background:#0f8;box-shadow:0 0 20px #00ff884d;animation:pulse 2s infinite}.status-dot.disconnected{background:#6b7280}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-text{font-size:14px;font-weight:500}.device-name{font-size:12px;color:#9ca3af}.connection-type{margin-top:12px}.type-tabs{display:flex;gap:8px;background:#0a0e17;padding:4px;border-radius:10px}.type-tab{flex:1;text-align:center;padding:10px;border-radius:8px;font-size:13px;font-weight:500;color:#9ca3af;cursor:pointer;transition:all .2s}.type-tab.active{background:#111827;color:#00d4ff;box-shadow:0 0 20px #00d4ff4d}.action-row{display:flex;gap:12px}.btn,.btn-jump,.btn-run,.btn-pause,.btn-stop,.btn-goto,.btn-step,.btn-single,.btn-batch,.btn-export,.btn-import{flex:1;padding:14px 20px;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;text-align:center}.btn.btn-primary,.btn-primary.btn-jump,.btn-primary.btn-run,.btn-primary.btn-pause,.btn-primary.btn-stop,.btn-primary.btn-goto,.btn-primary.btn-step,.btn-primary.btn-single,.btn-primary.btn-batch,.btn-primary.btn-export,.btn-primary.btn-import{background:linear-gradient(135deg,#00d4ff,#0094b3);color:#0a0e17;box-shadow:0 0 20px #00d4ff4d}.btn.btn-primary:hover,.btn-primary.btn-jump:hover,.btn-primary.btn-run:hover,.btn-primary.btn-pause:hover,.btn-primary.btn-stop:hover,.btn-primary.btn-goto:hover,.btn-primary.btn-step:hover,.btn-primary.btn-single:hover,.btn-primary.btn-batch:hover,.btn-primary.btn-export:hover,.btn-primary.btn-import:hover{transform:translateY(-1px)}.btn.btn-primary:active,.btn-primary.btn-jump:active,.btn-primary.btn-run:active,.btn-primary.btn-pause:active,.btn-primary.btn-stop:active,.btn-primary.btn-goto:active,.btn-primary.btn-step:active,.btn-primary.btn-single:active,.btn-primary.btn-batch:active,.btn-primary.btn-export:active,.btn-primary.btn-import:active{transform:translateY(0)}.btn.btn-primary:disabled,.btn-primary.btn-jump:disabled,.btn-primary.btn-run:disabled,.btn-primary.btn-pause:disabled,.btn-primary.btn-stop:disabled,.btn-primary.btn-goto:disabled,.btn-primary.btn-step:disabled,.btn-primary.btn-single:disabled,.btn-primary.btn-batch:disabled,.btn-primary.btn-export:disabled,.btn-primary.btn-import:disabled{opacity:.4;box-shadow:none;transform:none}.btn.btn-danger,.btn-danger.btn-jump,.btn-danger.btn-run,.btn-danger.btn-pause,.btn-danger.btn-stop,.btn-danger.btn-goto,.btn-danger.btn-step,.btn-danger.btn-single,.btn-danger.btn-batch,.btn-danger.btn-export,.btn-danger.btn-import{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff}.btn.btn-secondary,.btn-secondary.btn-jump,.btn-secondary.btn-run,.btn-secondary.btn-pause,.btn-secondary.btn-stop,.btn-secondary.btn-goto,.btn-secondary.btn-step,.btn-secondary.btn-single,.btn-secondary.btn-batch,.btn-secondary.btn-export,.btn-secondary.btn-import{background:#111827;color:#f9fafb;border:1px solid #1f2937}.btn.btn-secondary:hover,.btn-secondary.btn-jump:hover,.btn-secondary.btn-run:hover,.btn-secondary.btn-pause:hover,.btn-secondary.btn-stop:hover,.btn-secondary.btn-goto:hover,.btn-secondary.btn-step:hover,.btn-secondary.btn-single:hover,.btn-secondary.btn-batch:hover,.btn-secondary.btn-export:hover,.btn-secondary.btn-import:hover{background:#1f2937}.btn.btn-back,.btn-back.btn-jump,.btn-back.btn-run,.btn-back.btn-pause,.btn-back.btn-stop,.btn-back.btn-goto,.btn-back.btn-step,.btn-back.btn-single,.btn-back.btn-batch,.btn-back.btn-export,.btn-back.btn-import{background:transparent;color:#9ca3af;padding:8px 16px;font-size:13px}.card{background:#111827;border-radius:16px;padding:20px;border:1px solid #1f2937}.card-title{font-size:13px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:1px;margin-bottom:16px}.device-list-card .device-list{display:flex;flex-direction:column;gap:8px}.device-list-card .device-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#0a0e17;border-radius:12px;cursor:pointer;transition:all .2s;border:1px solid transparent}.device-list-card .device-item:hover{background:#1f2937;border-color:#00d4ff}.device-list-card .device-item.device-saved{border-color:#f59e0b80;background:#f59e0b1a}.device-list-card .device-item.device-saved:hover{border-color:#f59e0b;background:#f59e0b33}.device-list-card .device-item.device-saved .device-rssi{color:#f59e0b;font-weight:700}.device-list-card .device-item .device-name{font-size:14px;font-weight:500}.device-list-card .device-item .device-rssi{font-size:11px;color:#6b7280;font-family:SF Mono,monospace}.device-list-card .device-item .device-path{font-size:11px;color:#6b7280}.device-list-card .empty-tip{text-align:center;padding:30px;color:#6b7280;font-size:13px}.serial-settings{display:flex;flex-direction:column;gap:12px}.serial-settings .setting-row{display:flex;align-items:center;gap:12px}.serial-settings .setting-row .setting-label{font-size:13px;color:#9ca3af}.serial-settings .baud-select{flex:1;padding:12px;background:#0a0e17;border:1px solid #1f2937;border-radius:10px;color:#f9fafb;font-size:14px}.serial-settings .baud-select:focus{outline:none;border-color:#00d4ff}.quick-actions-card .quick-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.input{width:100%;padding:12px 14px;background:#0a0e17;border:1px solid #1f2937;border-radius:10px;color:#f9fafb;font-size:14px}.input:focus{outline:none;border-color:#00d4ff}.input::placeholder{color:#6b7280}.control-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.control-row .control-label{font-size:12px;color:#9ca3af;white-space:nowrap}.control-row .jump-input{width:60px;text-align:center}.color-presets{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-bottom:16px}.color-preset{aspect-ratio:1;border-radius:10px;cursor:pointer;transition:transform .2s;border:2px solid transparent}.color-preset:hover{transform:scale(1.1);border-color:#fff}.color-custom{display:flex;gap:10px}.color-custom .color-input{flex:1;font-family:SF Mono,monospace;text-transform:uppercase}.reg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.reg-item{background:#0a0e17;border-radius:8px;padding:10px;text-align:center}.reg-item .reg-addr{display:block;font-size:10px;color:#6b7280;font-family:SF Mono,monospace;margin-bottom:4px}.reg-item .reg-value{display:block;font-size:14px;font-weight:600;font-family:SF Mono,monospace;color:#00d4ff}.tab-bar{display:flex;gap:4px;background:#0a0e17;padding:4px;border-radius:12px;margin-bottom:16px}.tab-item{flex:1;text-align:center;padding:12px 8px;border-radius:10px;font-size:12px;font-weight:500;color:#9ca3af;cursor:pointer;transition:all .2s}.tab-item.active{background:#111827;color:#00d4ff}.program-grid{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto}.program-row{display:grid;grid-template-columns:50px 50px 1fr;gap:8px;padding:10px 12px;background:#0a0e17;border-radius:10px;border:1px solid transparent;transition:all .2s}.program-row.active{border-color:#00d4ff;background:#00d4ff0d}.program-row.editing{border-color:#a855f7}.program-row .row-num{font-size:12px;font-family:SF Mono,monospace;color:#6b7280}.program-row .row-cmd,.program-row .row-param{background:transparent;border:none;color:#f9fafb;font-size:13px;font-family:SF Mono,monospace;padding:4px;text-transform:uppercase}.program-row .row-cmd:focus,.program-row .row-param:focus{outline:none;background:#ffffff0d;border-radius:4px}.log-card{flex:1;display:flex;flex-direction:column;min-height:150px}.log-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.log-header .clear-btn{font-size:11px;color:#6b7280;cursor:pointer}.log-header .clear-btn:hover{color:#9ca3af}.log-content{flex:1;background:#0a0e17;border-radius:10px;padding:12px;max-height:200px;overflow-y:auto;font-family:SF Mono,monospace;font-size:11px}.log-item{display:block;margin-bottom:6px;color:#9ca3af}.log-item.send{color:#0f8}.log-item.recv{color:#00d4ff}.log-item.error{color:#ef4444}.log-item.warn{color:#f97316}.log-item.info{color:#a855f7}.nav-bottom-card{display:flex;justify-content:center;padding:8px 0}.btn-nav-page{width:100%;padding:12px 24px;background:#00d4ff;color:#0a0e17;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer}.btn-nav-page:active{opacity:.8}.btn-nav-page[disabled]{background:#111827;color:#6b7280;cursor:not-allowed}.control-row{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.control-label{display:flex;align-items:center;font-size:13px;color:#9ca3af;min-width:100px}.input-jump{width:70px;padding:8px 12px;background:#0a0e17;border:1px solid #1f2937;border-radius:8px;color:#f9fafb;font-size:13px;font-family:SF Mono,monospace}.btn-run{flex:1;padding:10px 16px;background:#0f8;color:#0a0e17;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-run:active{opacity:.8}.btn-run[disabled]{background:#111827;color:#6b7280;cursor:not-allowed}.btn-pause{flex:1;padding:10px 16px;background:#f97316;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-pause:active{opacity:.8}.btn-pause[disabled]{background:#111827;color:#6b7280;cursor:not-allowed}.btn-stop{flex:1;padding:10px 16px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-stop:active{opacity:.8}.btn-stop[disabled]{background:#111827;color:#6b7280;cursor:not-allowed}.btn-goto{flex:1;padding:10px 16px;background:#a855f7;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-goto:active{opacity:.8}.btn-goto[disabled]{background:#111827;color:#6b7280;cursor:not-allowed}.btn-step{flex:1;padding:10px 16px;background:#00d4ff;color:#0a0e17;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-step:active{opacity:.8}.btn-step[disabled]{background:#111827;color:#6b7280;cursor:not-allowed}.btn-jump{padding:8px 16px;background:#00d4ff;color:#0a0e17;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-jump:active{opacity:.8}.btn-jump[disabled]{background:#111827;color:#6b7280;cursor:not-allowed}.btn-disabled{opacity:.5;cursor:not-allowed}.control-log{margin-top:12px;background:#0a0e17;border-radius:10px;padding:12px}.control-log-title{font-size:12px;color:#6b7280;margin-bottom:8px}.control-log-content{max-height:80px;overflow-y:auto;font-family:SF Mono,monospace;font-size:11px}.control-log-item{display:block;color:#00d4ff;margin-bottom:4px}.connection-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#111827;border-radius:12px;border:1px solid #1f2937}.tab-navigator{display:flex;gap:4px;flex-wrap:wrap}.tab-btn{padding:6px 10px;background:#0a0e17;border:1px solid #1f2937;border-radius:6px;color:#9ca3af;font-size:11px;cursor:pointer;transition:all .2s}.tab-btn.active{background:#00d4ff;color:#0a0e17;border-color:#00d4ff}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}.scroll-area::-webkit-scrollbar{width:6px}.scroll-area::-webkit-scrollbar-track{background:transparent}.scroll-area::-webkit-scrollbar-thumb{background:#1f2937;border-radius:3px}.mt-20{margin-top:20px}.selected-port{font-size:13px;color:#0f8;padding:12px;background:#00ff881a;border-radius:10px;text-align:center}.flex-1{flex:1}.text-center{text-align:center}.btn-jump,.btn-run,.btn-pause,.btn-stop,.btn-goto,.btn-step,.btn-single,.btn-batch,.btn-export,.btn-import{background:#111827;color:#f9fafb;border:1px solid #1f2937;padding:12px 16px}.btn-jump:hover,.btn-run:hover,.btn-pause:hover,.btn-stop:hover,.btn-goto:hover,.btn-step:hover,.btn-single:hover,.btn-batch:hover,.btn-export:hover,.btn-import:hover{background:#1f2937}.btn-jump:disabled,.btn-run:disabled,.btn-pause:disabled,.btn-stop:disabled,.btn-goto:disabled,.btn-step:disabled,.btn-single:disabled,.btn-batch:disabled,.btn-export:disabled,.btn-import:disabled{opacity:.4}.btn-run{background:linear-gradient(135deg,#0f8,#00b35f);color:#0a0e17;border:none}.btn-pause{background:linear-gradient(135deg,#f97316,#be5105);color:#fff;border:none}.btn-stop{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff;border:none}.control-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.command-log{background:#0a0e17;border-radius:10px;padding:12px;max-height:150px;overflow-y:auto}.write-options{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.write-options .checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#9ca3af;cursor:pointer}.write-options .checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:#00d4ff}.write-buttons,.export-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.log-count{font-size:11px;color:#6b7280}.quick-actions{padding:16px}.tab-content{display:flex;flex-direction:column;gap:12px}
