:root{--text: #111827;--muted: #4b5563;--bg: #f4f6fb;--bg-elevated: #ffffff;--bg-control: #f9fafb;--border: #dbe1ea;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.45;font-weight:400;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: dark){:root{--text: #f1f5f9;--muted: #94a3b8;--bg: #0b1220;--bg-elevated: #111827;--bg-control: #1f2937;--border: #2c3a4f}}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}h1,h2{margin:0}code{padding:.15rem .35rem;border-radius:6px;background:#94a3b833}.app{width:min(1200px,calc(100% - 2rem));margin:1rem auto 2rem;display:flex;flex-direction:column;gap:1rem}.card{border:1px solid var(--border);border-radius:12px;background:var(--bg-elevated);padding:1rem;transition:transform .22s ease,box-shadow .22s ease}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.header h1{margin:0 0 .25rem;font-size:clamp(1.5rem,2.5vw,2.2rem)}.header p{margin:0;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.nav-link{color:var(--text);font-size:.9rem;text-decoration:none;border:1px dashed var(--border);border-radius:999px;padding:.35rem .65rem}.nav-link:hover{border-style:solid}.lang-switch{display:flex;align-items:center;gap:.5rem}.grid{display:grid;gap:1rem}.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.field-row{display:grid;gap:.4rem;margin-bottom:.75rem}.baudrate-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.serial-params-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.75rem}.serial-param{display:grid;gap:.4rem}.serial-param label,.field-row label{font-size:.9rem;color:var(--muted)}input,select,button{border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;background:var(--bg-control);color:var(--text)}input,select{width:100%;min-width:0}.candidate-select{font-size:.85rem}.candidate-select option{max-width:100%}button{cursor:pointer;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}.button-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem;margin-bottom:.5rem}.workflow-action-row{flex-wrap:nowrap}.console-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap;margin:.5rem 0}.console-segmented{display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;border:1px solid var(--border);border-radius:10px;padding:.2rem;background:var(--bg-control)}.segment-button{border:0;border-radius:8px;padding:.5rem .85rem;background:transparent;color:var(--muted);font-weight:700}.segment-button.active{background:#3b82f62e;color:var(--text)}.console-tab-actions{display:inline-flex;align-items:center;gap:.4rem}.hint{color:var(--muted);margin:.5rem 0;font-size:.9rem}.hint.hint-warning{color:#b45309}.status{margin:.3rem 0;font-weight:600}.status.ok{color:#16a34a}.status.warn{color:#d97706}.status.err{color:#dc2626}.md5-line{display:grid;gap:.35rem;margin-top:.5rem;font-size:.9rem}.md5-line code{font-size:.85rem;overflow-wrap:anywhere}.log-panel{margin-top:.75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-control);min-height:240px;max-height:400px;overflow:auto;padding:.7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}.log-line{margin:0 0 .35rem;white-space:pre-wrap;overflow-wrap:anywhere}.log-line.info{color:#1d4ed8}.log-line.warn{color:#b45309}.log-line.error{color:#dc2626}.log-line.success{color:#15803d}.terminal-panel{margin-top:.75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-control);min-height:240px;max-height:400px;overflow:auto;padding:.7rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4;transition:transform .22s ease,max-height .22s ease,min-height .22s ease,box-shadow .22s ease}.console-terminal-focused .terminal-panel{min-height:320px;max-height:520px;transform:none;box-shadow:0 12px 28px #0f172a2e}.console-terminal-focused{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(1.04);width:min(1200px,calc(100% - 2rem));max-height:calc(100vh - 2rem);overflow:auto;z-index:40;box-shadow:0 22px 48px #0f172a3d;animation:terminalCardPop .24s ease}.terminal-focus-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:30}.terminal-focus-close{position:absolute;top:.75rem;right:.75rem;width:36px;height:36px;border-radius:999px;border:1px solid var(--border);background:var(--bg-control);color:var(--text);font-size:1.25rem;line-height:1;display:grid;place-items:center;z-index:1}.terminal-focus-close:hover{box-shadow:0 8px 16px #0f172a33}@keyframes terminalCardPop{0%{opacity:.65;transform:translate(-50%,-50%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1.04)}}.terminal-input-row{display:grid;grid-template-columns:1fr auto auto auto;gap:.5rem;margin-top:.75rem}.terminal-meta-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;color:var(--muted);font-size:.9rem}.terminal-meta-left,.terminal-meta-toggles{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.75rem}.terminal-meta-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-left:auto}.terminal-meta-group{display:inline-flex;align-items:center;gap:.5rem}.terminal-meta-group-tight{gap:.3rem}.terminal-toggle{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.9rem}.terminal-toggle input{width:auto}.terminal-special-row{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.65rem}.terminal-special-row span{color:var(--muted);font-size:.9rem}.footer{display:flex;justify-content:space-between;gap:.75rem;color:var(--muted);font-size:.9rem;flex-wrap:wrap}@media (max-width: 900px){.two-cols{grid-template-columns:1fr}.header{flex-direction:column}.terminal-input-row,.baudrate-row,.serial-params-row{grid-template-columns:1fr}.workflow-action-row{flex-wrap:wrap}.console-segmented{width:100%}.console-terminal-focused{transform:translate(-50%,-50%) scale(1)}}
