:root{--bg:#09131d;--bg-grad-a:#0f2436;--bg-grad-b:#071019;--panel:#f7f9fc;--panel-border:#cfd8e6;--text:#0f2136;--subtle:#4b5f78;--term-bg:#050b14;--term-fg:#d7f4ff;--accent:#0ea5e9;--accent-strong:#0284c7;--danger:#c62828;--pane-active:#f59e0b}*{box-sizing:border-box}body{color:var(--text);background:radial-gradient(circle at 10% 0%, var(--bg-grad-a), var(--bg-grad-b));height:100svh;min-height:100svh;margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;overflow:hidden}#app{height:100svh;min-height:100svh;padding:clamp(.45rem,1vw,.9rem)}.layout{flex-direction:column;gap:.55rem;width:100%;height:calc(100svh - 1.5rem);min-height:calc(100svh - 1.5rem);margin:0;display:flex;overflow:hidden}.appTabs{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08121e8c;border:1px solid #ffffff14;border-radius:999px;align-self:flex-start;gap:.35rem;padding:.28rem;display:flex}.appTab{color:#d7f4ffc7;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.42rem;padding:.4rem .92rem;font-size:.86rem;font-weight:600;transition:background .18s,color .18s,border-color .18s;display:inline-flex}.appTab:hover:not(:disabled){color:#fff;filter:none;background:#ffffff14;transform:none}.appTab.active{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-strong));border-color:#ffffff38;box-shadow:0 8px 22px #0284c759}.appTabIcon{font-size:.94rem;line-height:1}.appTabLabel{line-height:1}.tabPanel{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.tabPanel.hidden{display:none}.terminalView{min-height:0}.flashView{min-height:0;padding-right:.2rem;overflow:auto}.flashLayout{gap:.6rem;width:min(940px,100%);margin:0 auto;padding:.2rem 0 .6rem;display:grid}.flashHeader{gap:.5rem;padding:.85rem 1rem;display:grid}.flashHeaderRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.flashTitle{align-items:center;gap:.4rem;margin:0;font-size:1.05rem;display:flex}.flashHeaderMeta{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.flashInlineField{color:var(--subtle);align-items:center;gap:.42rem;font-size:.78rem;font-weight:600;display:inline-flex}.flashInlineField select{border-radius:7px;min-width:8.5rem;padding:.32rem .5rem;font-size:.82rem;font-weight:600}.flashCheckField{gap:.32rem}.flashCheckField input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}.flashHelp,.flashHelpHint{color:var(--subtle);margin:0;font-size:.8rem}.flashBootHint{color:var(--text);background:#f59e0b1f;border:1px solid #f59e0b52;border-radius:8px;margin:0;padding:.45rem .7rem;font-size:.78rem;line-height:1.4}.flashBootHint kbd{color:var(--text);background:#f8fafc;border:1px solid #cbd5e1;border-radius:5px;padding:.05rem .35rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;font-weight:700;display:inline-block;box-shadow:0 1px #94a3b8}.flashHelp code,.flashHelpHint code{color:var(--accent-strong);background:#eef4fb;border-radius:4px;padding:.05rem .32rem;font-family:IBM Plex Mono,ui-monospace,monospace}.flashFilesCard{gap:.55rem;padding:.85rem 1rem;display:grid}.flashFilesHeader{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.flashFilesHeader h3,.flashConsoleHeader h3{margin:0;font-size:.94rem}.flashFilesActions{gap:.35rem;display:inline-flex}.flashZipLabel{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:inline-flex}.flashZipLabel:hover{filter:brightness(1.05)}.flashZipStatus{color:var(--subtle);background:#eef4fb;border:1px solid #d3dfee;border-radius:8px;margin:0;padding:.45rem .7rem;font-size:.78rem;line-height:1.45}.flashZipStatus code{color:var(--accent-strong);background:#ffffffb3;border-radius:4px;padding:.05rem .32rem;font-family:IBM Plex Mono,ui-monospace,monospace}.flashZipStatus.isOk{color:#166534;background:#22c55e1a;border-color:#22c55e61}.flashZipStatus.isOk code{color:#15803d;background:#fffc}.flashZipStatus.isPartial{color:#92400e;background:#f59e0b1f;border-color:#f59e0b61}.flashZipStatus.isError{color:#991b1b;background:#dc26261a;border-color:#dc262661}.flashActionsCard{gap:.55rem;padding:.85rem 1rem;display:grid}.flashActionsRow{flex-wrap:wrap;gap:.4rem;display:flex}.flashStartBtn{min-width:9rem;margin-left:auto}.flashChipInfo{background:#22c55e1f;border:1px solid #22c55e52;border-radius:10px;align-items:center;gap:.6rem;padding:.6rem .7rem;display:flex}.flashChipDot{background:#16a34a;border-radius:999px;width:.62rem;height:.62rem;box-shadow:0 0 0 3px #16a34a38}.flashChipDetail{gap:.1rem;display:grid}.flashChipName{color:#166534;margin:0;font-size:.92rem;font-weight:700}.flashChipMac{color:var(--subtle);margin:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.76rem}.flashProgress{background:#eef4fb;border-radius:10px;gap:.32rem;padding:.55rem .7rem;display:grid}.flashProgress.isError{background:#c628281a}.flashProgress.isSuccess{background:#16a34a1f}.flashProgressLabel{color:var(--text);justify-content:space-between;align-items:center;gap:.6rem;font-size:.82rem;font-weight:600;display:flex}.flashProgressBar{background:#d8e3f1;border-radius:999px;height:.42rem;overflow:hidden}.flashProgressFill{background:linear-gradient(90deg, var(--accent), var(--accent-strong));height:100%;transition:width .18s}.flashProgress.isError .flashProgressFill{background:linear-gradient(90deg,#ef4444,#b91c1c)}.flashProgress.isSuccess .flashProgressFill{background:linear-gradient(90deg,#22c55e,#15803d)}.flashConsoleCard{gap:.4rem;padding:.85rem 1rem;display:grid}.flashConsoleHeader{justify-content:space-between;align-items:center;display:flex}.flashConsoleActions{gap:.32rem;display:inline-flex}.flashConsoleOutput{resize:vertical;color:#b8ffc6;white-space:pre-wrap;overflow-wrap:anywhere;background:#050b14;border-radius:8px;height:clamp(12rem,35vh,28rem);min-height:9rem;max-height:none;margin:0;padding:.7rem .85rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;overflow:auto}.configLayout{gap:.85rem}.configHeader{gap:.55rem}.configBootHint{color:#2a4a8c;background:#5299ff14;border:1px solid #5299ff52}.configFilesCard{gap:.55rem;padding:.85rem 1rem;display:grid}.configFilesCard .flashFilesHeader{justify-content:space-between;align-items:center;gap:.55rem;display:flex}.configFilesCard .flashFilesActions{align-items:center;gap:.4rem;display:inline-flex}.configFileLabel{cursor:pointer;border-radius:6px;align-items:center;padding:.32rem .65rem;font-size:.78rem;display:inline-flex}.configFileLabel:hover{background:#0000000a}.configFilenameRow{flex-wrap:wrap;align-items:flex-end;gap:.65rem;display:flex}.configFilenameControl{flex:16rem;min-width:12rem}.configFilenameInput{background:#fff;border:1px solid #0000002e;border-radius:6px;width:100%;padding:.4rem .6rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem}.configJsonStatus{color:#6b7280;align-self:center;margin-left:auto;font-size:.76rem}.configJsonStatus.isOk{color:#1f8a3e}.configJsonStatus.isError{color:#c0392b}.configJsonEditor{resize:vertical;color:#d6f5e3;white-space:pre;tab-size:2;background:#050b14;border:1px solid #0000002e;border-radius:8px;width:100%;min-height:13rem;max-height:28rem;padding:.7rem .85rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;line-height:1.4;overflow:auto}.configJsonEditor:focus{outline-offset:1px;outline:2px solid #5299ff8c}.configActionsCard .flashActionsRow{flex-wrap:wrap}.configApplyBtn{min-width:12rem}.configPortInfo{font-size:.78rem}.configStatus.isBusy{background:#5299ff14;border-color:#5299ff80}.configFilenameControl{align-items:center}.configFilenameControl>span{min-width:4.2rem}.configConsoleCard{padding:.85rem 1rem}.configView{padding-right:0;overflow:hidden}.configLayout{flex-direction:column;gap:.6rem;width:min(940px,100%);height:100%;min-height:0;margin:0 auto;padding:.2rem 0 .6rem;display:flex}.configLayout>.flashHeader,.configLayout>.flashActionsCard{flex:none}.configLayout>.flashFilesCard,.configLayout>.flashConsoleCard{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.configLayout .configJsonEditor,.configLayout .configConsoleCard .flashConsoleOutput{resize:none;flex:auto;height:auto;min-height:6rem;max-height:none}.socialDock{z-index:60;gap:.38rem;display:flex;position:fixed;top:.78rem;right:.78rem}.socialLink{width:2rem;height:2rem;color:var(--text);border:1px solid var(--panel-border);background:#f7f9fceb;border-radius:999px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;box-shadow:0 8px 18px #00000038}.socialLink:hover{background:#fff;transform:translateY(-1px)}.socialLink svg{width:1.05rem;height:1.05rem;display:block}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:.8rem;box-shadow:0 14px 30px #00000040}label{color:var(--subtle);gap:.3rem;font-size:.82rem;font-weight:600;display:grid}input,select,textarea,button{font:inherit}input,select,textarea{color:var(--text);background:#fff;border:1px solid #b7c4d8;border-radius:8px;padding:.42rem .55rem}textarea{resize:vertical;width:100%}.tip{gap:.4rem;padding:.7rem .8rem;display:grid}.splitRoot{flex:auto;min-height:0;display:flex;overflow:hidden}.splitRoot>.split,.splitRoot>.pane{flex:auto;height:100%;min-height:0}.split{gap:.35rem;min-width:0;height:100%;min-height:0;display:flex}.split.vertical{flex-direction:row}.split.horizontal{flex-direction:column}.splitPane{min-width:0;min-height:0;padding:.14rem;display:grid;overflow:visible}.split.vertical>.splitPaneFirst{padding-right:.24rem}.split.vertical>.splitPaneSecond{padding-left:.24rem}.splitPane>*{min-width:0;min-height:0}.splitPane>.pane{width:100%;height:100%}.splitDivider{cursor:col-resize;touch-action:none;background:linear-gradient(#c9d9ed,#adc3df);border-radius:999px;flex:0 0 10px;transition:background .15s;box-shadow:inset 0 0 0 1px #1e375533}.splitDivider:hover{background:linear-gradient(#a9c5e8,#8fb2de)}.split.horizontal>.splitDivider{cursor:row-resize}button{cursor:pointer;border:0;border-radius:999px;padding:.52rem 1rem;transition:transform .15s,filter .15s}button:hover:not(:disabled){filter:brightness(1.03);transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.55}.primary{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff}.ghost{color:var(--text);background:#e7eef8}.mini{border-radius:999px;padding:.35rem .68rem;font-size:.76rem}.pane{background:var(--panel);border:1px solid #bfcde2;border-radius:12px;grid-template-rows:auto minmax(0,1fr) auto;gap:.48rem;min-height:0;max-height:100%;padding:.6rem;display:grid;overflow:hidden;box-shadow:0 12px 26px #00000038;container:pane/inline-size}.pane.active{border-color:var(--pane-active);box-shadow:0 0 0 2px #f59e0b59,0 16px 28px #0000003d}.paneHeader{gap:.3rem;display:grid}.paneToolbar{flex-wrap:nowrap;align-items:center;gap:.35rem;min-width:0;display:flex}.txToggle{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:#e7eef8;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .34rem;display:inline-flex}.txToggleInput{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.txToggleTrack{background:#9bb0cc;border:1px solid #8ea5c3;border-radius:999px;align-items:center;width:1.8rem;height:1rem;padding:1px;transition:background .16s;display:inline-flex}.txToggleThumb{background:#fff;border-radius:999px;width:.76rem;height:.76rem;transition:transform .16s;box-shadow:0 1px 2px #0003}.txToggleInput:checked+.txToggleTrack{background:#40a5ea;border-color:#2893de}.txToggleInput:checked+.txToggleTrack .txToggleThumb{transform:translate(.75rem)}.txToggleInput:focus-visible+.txToggleTrack{outline-offset:2px;outline:2px solid #0ea5e98c}.txToggleText{font-size:.76rem;font-weight:600;line-height:1}.paneNameInput{color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:1;width:clamp(4.5rem,12vw,9rem);min-width:0;padding:.22rem .38rem;font-size:.82rem;font-weight:600}.paneNameInput:hover{background:#f8fafd;border-color:#c5d4e8}.paneNameInput:focus{border-color:var(--accent);background:#fff;outline:none;box-shadow:0 0 0 2px #0ea5e92e}.btnIcon{font-style:normal}.optionsControl{position:relative}.optionsMenu{z-index:20;border:1px solid var(--panel-border);background:#fff;border-radius:10px;gap:.2rem;min-width:13.5rem;max-height:min(70svh,25rem);padding:.3rem;display:grid;position:absolute;top:calc(100% + .4rem);right:0;overflow:auto;box-shadow:0 16px 30px #00000038}.optionsMenu .menuItem{white-space:nowrap;filter:none;border-radius:7px;padding:.42rem .58rem;font-size:.84rem;line-height:1.2;transform:none}.optionsMenu .menuItem:hover{filter:none;transform:none}.menuGroup{background:#eef4fb;border-radius:7px;padding:.42rem .58rem}.themePicker{color:var(--text);align-items:center;gap:.45rem;font-size:.84rem;display:flex}.themeLabel{white-space:nowrap;font-weight:600}.themeSelect{border-radius:7px;min-width:7.2rem;padding:.28rem .42rem;font-size:.82rem}.checkItem{align-items:center;gap:.35rem;display:flex}.checkMark{width:1.1em;font-size:.95rem;line-height:1;display:inline-block}.mini.isConnected:hover:not(:disabled){color:var(--danger);filter:none;background:#ffe5e5}@container pane (width<=260px){.btnLabel{display:none}.paneNameInput{width:4.5rem}}.paneStatus{color:var(--subtle);white-space:pre-wrap;margin:0;font-size:.8rem}.terminal{background:var(--term-bg);height:auto;min-height:0;color:var(--term-fg);white-space:pre-wrap;word-break:break-word;cursor:text;border:1px solid #1b3648;border-radius:8px;margin:0;padding:.68rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.86rem;line-height:1.38;overflow:auto}.terminalHiddenInput{opacity:0;color:#0000;caret-color:#0000;background:0 0;border:none;width:1px;height:1px;margin:0;padding:0;position:absolute;top:-9999px;left:-9999px}.txPanel{gap:.4rem;display:grid}.txInput{resize:none;min-height:2.1rem;max-height:8.25rem;overflow-y:hidden}.txPanel.collapsed{display:none}.txRow{grid-template-columns:auto 1fr auto;align-items:center;gap:.45rem;display:grid}.txLineEndingControl{color:var(--subtle);align-items:center;gap:.35rem;font-size:.74rem;font-weight:700;display:inline-flex}.txRowLabel{letter-spacing:.02em}.txLineEndingSelect{border-radius:7px;min-width:7.2rem;padding:.28rem .4rem;font-weight:600}.txInlineToggles{flex-wrap:wrap;justify-self:center;align-items:center;gap:.45rem;display:inline-flex}.txInlineToggle{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:#e8eff9;border-radius:999px;align-items:center;gap:.3rem;padding:.18rem .35rem;display:inline-flex}.txInlineToggleInput{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.txInlineToggleTrack{background:#9bb0cc;border:1px solid #8ea5c3;border-radius:999px;align-items:center;width:1.55rem;height:.9rem;padding:1px;transition:background .16s;display:inline-flex}.txInlineToggleThumb{background:#fff;border-radius:999px;width:.64rem;height:.64rem;transition:transform .16s;box-shadow:0 1px 2px #0003}.txInlineToggleInput:checked+.txInlineToggleTrack{background:#40a5ea;border-color:#2893de}.txInlineToggleInput:checked+.txInlineToggleTrack .txInlineToggleThumb{transform:translate(.6rem)}.txInlineToggleInput:focus-visible+.txInlineToggleTrack{outline-offset:2px;outline:2px solid #0ea5e98c}.txInlineToggleText{font-size:.74rem;font-weight:600;line-height:1}.txSendBtn{min-width:6.2rem;padding:.46rem .92rem}.quickCmds{gap:.4rem;display:grid}.quickCmds.collapsed{display:none}.quickCmdsHeader{color:var(--subtle);justify-content:space-between;align-items:center;gap:.55rem;font-size:.78rem;font-weight:600;display:flex}.timerActions{align-items:center;gap:.35rem;display:flex}.quickCmdsStrip{gap:.42rem;padding-bottom:.12rem;display:flex;overflow-x:auto}.quickCmdChip{color:#0f2136;white-space:nowrap;filter:none;background:#edf5ff;border:1px solid #c6d8ee;border-radius:999px;padding:.3rem .62rem;font-size:.76rem;font-weight:600;transform:none}.quickCmdChip:hover:not(:disabled){filter:none;background:#dcecff;transform:none}.timerCmdChip.isRunning{color:#0a5a29;background:#e9f9ee;border-color:#67c687}.quickCmdHint{color:var(--subtle);margin:0;font-size:.77rem}.paneMenu{z-index:30;border:1px solid var(--panel-border);background:#fff;border-radius:10px;gap:.35rem;min-width:11rem;padding:.45rem;display:grid;position:fixed;box-shadow:0 18px 34px #00000047}.menuItem{color:var(--text);text-align:left;background:#eef4fb;border:0;border-radius:8px;padding:.54rem .65rem}.menuItem:hover{background:#dfeaf6}.settingsPanel{z-index:40;background:#050c1494;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.quickCommandPanel{z-index:45;background:#050c1494;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.quickCommandDialog{width:min(620px,96vw);max-height:90svh;padding:1rem;overflow:auto}.quickCommandForm{gap:.7rem;margin-top:.75rem;display:grid}.quickCmdFormHelp{color:var(--subtle);margin:0;font-size:.8rem}.quickCmdFormRow{justify-content:space-between;align-items:end;gap:.75rem;display:flex}.quickCmdToggleLabel{color:var(--text);align-items:center;gap:.5rem;margin-bottom:.25rem;font-size:.82rem;font-weight:600;display:inline-flex}.quickCmdFormError{color:var(--danger);margin:0;font-size:.82rem;font-weight:600}.quickCmdFormPreview{color:var(--subtle);white-space:pre-wrap;word-break:break-word;background:#f2f6fb;border:1px solid #d5e0ee;border-radius:8px;margin:0;padding:.45rem .55rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.8rem}.settingsDialog{width:min(860px,95vw);max-height:90svh;padding:1rem;overflow:auto}.settingsPanel .grid{grid-template-columns:repeat(3,minmax(140px,1fr));gap:.75rem;margin-top:.75rem;display:grid}.settingsHeader{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.settingsActions{justify-content:end;margin-top:.75rem;display:flex}h2{margin:0;font-size:1.05rem}.hidden{display:none}@media (width<=980px){button{padding:.48rem .85rem}.split.vertical{flex-direction:column}.split.vertical>.splitDivider,.split.horizontal>.splitDivider{cursor:row-resize;flex:0 0 10px}.txRow{grid-template-columns:1fr;gap:.4rem}.txInlineToggles{justify-self:start}.txSendBtn{width:100%}.settingsPanel .grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}@media (width<=640px){.settingsPanel .grid{grid-template-columns:1fr}.quickCmdFormRow{flex-direction:column;align-items:stretch}}
