.custom-form{display:flex;flex-direction:column;gap:16px}.custom-field{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.custom-field input{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 10px;font:inherit;font-size:13px}.custom-section{display:flex;flex-direction:column;gap:6px}.custom-section__head{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--text)}.custom-row{display:flex;align-items:center;gap:6px}.custom-row input,.custom-row select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font:inherit;font-size:12px;min-width:0}.custom-row__name,.custom-row__val{flex:1}.custom-row select{flex:0 0 auto}.custom-row__del{flex:0 0 auto;width:26px;height:28px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--muted);cursor:pointer}.custom-row__del:hover{background:#f8717126;color:#fca5a5}.custom-hint{margin:0;font-size:11px;color:var(--muted)}.custom-error{margin:0;color:#fca5a5;font-size:12px}.palette-create{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 4px;border-radius:10px;border:1px dashed var(--border);background:transparent;color:var(--muted);cursor:pointer;font-size:10.5px;min-height:78px;transition:border-color .12s,color .12s}.palette-create:hover{border-color:var(--accent, #2dd4bf);color:var(--text)}.palette-create__plus{font-size:20px;line-height:1}.vendor{display:grid;grid-template-columns:220px 1fr;gap:14px;height:100%;min-height:0}.vendor__cats{display:flex;flex-direction:column;gap:2px;overflow-y:auto;padding-right:4px;border-right:1px solid var(--border)}.vendor__cat{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:var(--text);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none}.vendor__cat:hover{background:var(--panel-2)}.vendor__cat--active{background:var(--accent);color:#04121a;font-weight:600}.vendor__cat-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vendor__cat-count{flex-shrink:0;font-size:11px;opacity:.7}.vendor__main{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}.vendor__bar{display:flex;align-items:center;gap:12px}.vendor__search{flex:1;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);padding:8px 10px;font:inherit;font-size:13px}.vendor__count{flex-shrink:0;font-size:12px;color:var(--muted)}.vendor__grid{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;align-content:start;padding-right:2px}.vendor-card{display:flex;flex-direction:column;gap:8px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);-webkit-user-select:none;user-select:none;transition:border-color .12s ease,background .12s ease}.vendor-card:hover{border-color:#35506b;background:#1b2a3d}.vendor-card__name{margin:0;font-size:12.5px;font-weight:600;line-height:1.3;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.vendor-card__meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.vendor-card__cat{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vendor-card__actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.vendor-card__link{font-size:12px;color:var(--accent, #60a5fa);text-decoration:none}.vendor-card__link:hover{text-decoration:underline}.vendor__pager{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:4px}.vendor__pageinfo{font-size:12px;color:var(--muted)}.palette{width:272px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-right:1px solid var(--border)}.palette__header{padding:12px 12px 8px;border-bottom:1px solid var(--border)}.palette__search{width:100%;margin-top:8px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);font:inherit;font-size:13px}.palette__store{width:100%;margin-top:8px;padding:7px 10px;border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--accent, #60a5fa);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.palette__store:hover{border-color:var(--accent, #60a5fa);background:var(--panel-2)}.palette__groups{flex:1;overflow-y:auto;padding:4px 12px 16px}.palette__category{display:flex;justify-content:space-between;margin:14px 0 8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.palette__category span{color:var(--muted);font-family:var(--mono)}.palette__heading{display:flex;align-items:center;gap:8px}.palette__total{padding:1px 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-family:var(--mono);font-size:10px}.palette-group{margin-top:6px}.palette-group__header{display:flex;align-items:center;gap:8px;width:100%;padding:7px 4px;border:0;background:none;color:var(--text);font:inherit;font-size:12px;cursor:pointer;border-radius:6px}.palette-group__header:hover{background:var(--panel-2)}.palette-group__chevron{font-size:8px;color:var(--muted);transition:transform .15s}.palette-group__chevron--open{transform:rotate(90deg)}.palette-group__title{flex:1;text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-size:11px}.palette-group__count{color:var(--muted);font-family:var(--mono);font-size:10px}.palette__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:2px 0 6px}.palette__skeleton-heading{display:block;margin:14px 0 8px}.palette-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border-radius:10px;background:linear-gradient(180deg,#172233,#111a28);border:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color .12s,transform .12s}.palette-item:hover{border-color:var(--accent);transform:translateY(-1px)}.palette-item:active{cursor:grabbing}.palette-item__thumb{width:52px;height:52px;display:grid;place-items:center}.palette-item__name{font-size:10.5px;line-height:1.2;text-align:center;color:var(--text);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.palette-item--preset{position:relative;background:linear-gradient(180deg,#1b2740,#131c2e);border-color:#2a3a57}.palette-item__remove{position:absolute;top:2px;right:2px;width:16px;height:16px;padding:0;display:none;align-items:center;justify-content:center;border:none;border-radius:5px;background:#0f172acc;color:var(--muted);font-size:12px;line-height:1;cursor:pointer}.palette-item--preset:hover .palette-item__remove{display:flex}.palette-item__remove:hover{background:#f8717133;color:#fca5a5}.part-defs{position:absolute;width:0;height:0;overflow:hidden}.part-art,.part-thumb{overflow:visible;display:block}.lead__core{fill:none;stroke:#64748b;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}.lead__shine{fill:none;stroke:#e2e8f0;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.shine{fill:none;stroke:#fff;stroke-opacity:.35;stroke-width:1.4;stroke-linecap:round}.shine--thick{stroke-width:2.6;stroke-opacity:.45}.silk{font-family:JetBrains Mono,ui-monospace,monospace;font-weight:600;pointer-events:none;-webkit-user-select:none;user-select:none}.silk--silk{fill:#f1f5f9}.silk--ink{fill:#1f2937}.silk--dim{fill:#a1a1aa}.silk--lcd{fill:#4ade80;font-weight:700}.pcb__edge{fill:none;stroke:#fff;stroke-opacity:.12}.pcb__hole{fill:#0f172a}.header__base{fill:#111827}.chip__dot{fill:#52525b}.part-clickable{cursor:pointer}.fan-rotor--on{animation:fan-spin linear infinite}.buzz{animation:buzz-pulse .4s ease-in-out infinite alternate}@keyframes fan-spin{to{transform:rotate(360deg)}}@keyframes buzz-pulse{0%{opacity:.3}to{opacity:1}}.led-glow{animation:led-flicker 1.6s ease-in-out infinite;transform-origin:center}@keyframes led-flicker{0%,to{opacity:inherit}46%{transform:scale(1)}48%{transform:scale(.94)}50%{transform:scale(1.02)}52%{transform:scale(.97)}54%{transform:scale(1)}}.board{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.board__canvas{position:relative;flex:1;min-height:0;background:radial-gradient(ellipse at 30% 20%,rgba(45,120,125,.25),transparent 60%),linear-gradient(160deg,#0d2a2d,#081c1f 55%,#061416)}.board__canvas .react-flow{--xy-background-color: transparent}.board-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--border)}.board-toolbar__end{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0}.board-toolbar__examples{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font:inherit;font-size:12px}.sim-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.status-badge{font-size:11px;font-family:var(--mono);padding:3px 9px;border-radius:999px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.status-badge--ok{color:#86efac;border-color:#166534}.status-badge--busy{color:#fcd34d;border-color:#854d0e}.status-badge--stale{color:#cbd5e1;border-style:dashed}.status-badge--error{color:#fca5a5;border-color:#7f1d1d}.part-node{position:relative}.part-node__rot{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:center}.part-node__art{position:absolute;top:0;right:0;bottom:0;left:0}.part-node__label{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);font-size:11px;font-weight:700;font-family:var(--mono);color:#e2e8f0;text-shadow:0 1px 2px #000;white-space:nowrap;pointer-events:none}.part-node__readout{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);padding:1px 7px;border-radius:999px;background:#020617cc;border:1px solid #1e3a3f;color:#a7f3d0;font-size:10px;font-family:var(--mono);white-space:nowrap;pointer-events:none}.part-node--selected .part-node__art{outline:2px dashed rgba(251,191,36,.8);outline-offset:6px;border-radius:6px}.part-node--fault .part-node__label{color:#fca5a5}.react-flow__handle.pin{width:10px;height:10px;min-width:0;min-height:0;border-radius:50%;background:transparent;border:2px solid transparent;transition:border-color .12s,background .12s}.react-flow__node:hover .react-flow__handle.pin,.react-flow__handle.pin.connectingfrom,.react-flow__handle.pin.connectingto{border-color:#fbbf24;background:#fbbf2459}.react-flow__handle.pin.connectionindicator{cursor:crosshair}.react-flow__handle.pin.pin--highlight{background:#fbbf24;border-color:#fde68a;animation:pin-flash .7s ease-out 3}@keyframes pin-flash{0%{box-shadow:0 0 0 2px #fbbf24d9}to{box-shadow:0 0 0 12px #fbbf2400}}.wire__shadow{fill:none;stroke:#00000073;stroke-width:7;stroke-linecap:round;transform:translateY(2px)}.react-flow__edge-path.wire__body{stroke-width:4;stroke-linecap:round}.wire__shine{fill:none;stroke:#ffffff59;stroke-width:1.2;stroke-linecap:round;pointer-events:none;transform:translate(-.8px,-1px)}.wire__flow{fill:none;stroke:#ffffffbf;stroke-width:1.6;stroke-dasharray:2 12;stroke-linecap:round;pointer-events:none;animation:wire-flow .8s linear infinite}.wire__current{fill:none;stroke-width:3;stroke-dasharray:3 11;stroke-linecap:round;pointer-events:none;opacity:0;animation:wire-flow 1s linear infinite}.flow-anim .wire__current{opacity:.95}.heatmap .wire__body{stroke:var(--heat, #334155)!important}.heatmap .wire__shine,.heatmap .wire__flow{opacity:0}.wire__selected{fill:none;stroke:#fbbf24;stroke-width:8;stroke-opacity:.35;pointer-events:none}.wire__joint{fill:#fbbf24;stroke:#0b1220;stroke-width:1.5;cursor:grab;pointer-events:all}.wire__joint:hover{fill:#fde68a}.wire__joint:active{cursor:grabbing}.wire__label{position:absolute;padding:1px 6px;border-radius:6px;background:#020617d9;color:#fde68a;font-size:10px;font-family:var(--mono);pointer-events:none}@keyframes wire-flow{to{stroke-dashoffset:-14}}.board-empty{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:min(460px,90%);height:fit-content;padding:24px;text-align:center;background:#081619e6;border:1px dashed #2b5d62;border-radius:14px;color:var(--muted)}.board-empty h2{margin:0 0 6px;color:var(--text);font-size:18px}.board-empty__examples{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}.board-skeleton{flex:1;display:flex;flex-direction:column}.board-skeleton__toolbar{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border)}.board-skeleton__spacer{flex:1}.board-skeleton__mat{position:relative;flex:1;margin:12px;border-radius:12px;overflow:hidden;background:radial-gradient(circle,#1f4b4f 1px,transparent 1px) 0 0 / 16px 16px,#081c1f;opacity:.8}.board-skeleton__part{position:absolute;display:flex;flex-direction:column;gap:6px}.board-skeleton__pins{display:flex;justify-content:space-around;padding:0 10px}.board-skeleton__pin{width:7px;height:7px;border-radius:50%;background:#1f4b4f}.context-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.context-menu{position:fixed;z-index:41;min-width:168px;margin:0;padding:4px;list-style:none;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #00000080}.context-menu__item{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:6px 10px;border:0;border-radius:6px;background:none;color:var(--text);font:inherit;font-size:13px;text-align:left;cursor:pointer}.context-menu__item:hover{background:#26374d}.context-menu__item--danger{color:#fca5a5}.context-menu__item kbd{font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.zoom-control{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:7px;background:var(--panel-2);padding:1px}.zoom-control button{width:24px;height:24px;border:0;background:none;color:var(--text);font-size:14px;cursor:pointer;border-radius:5px}.zoom-control button:hover{background:#26374d}.zoom-control input{width:34px;border:0;background:none;color:var(--text);font:inherit;font-family:var(--mono);font-size:12px;text-align:right}.zoom-control__unit{color:var(--muted);font-size:11px;margin-right:2px}.inspector{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;padding:12px;background:var(--panel);border-left:1px solid var(--border)}.inspector__title{margin:0}.inspector__body{display:flex;flex-direction:column;gap:14px}.inspector__header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.inspector__header h3{margin:0;font-size:15px}.inspector__muted{margin:4px 0 0;font-size:12px;color:var(--muted)}.inspector__buy{display:inline-block;margin:6px 0 0;font-size:12px;font-weight:600;color:var(--accent, #60a5fa);text-decoration:none}.inspector__buy:hover{text-decoration:underline}.inspector__warning{margin:6px 0 0;font-size:12px;color:#fca5a5}.inspector__chip{flex-shrink:0;padding:2px 8px;border-radius:999px;border:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.inspector__swatch{width:22px;height:22px;border-radius:6px;border:1px solid var(--border)}.inspector__section{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--border)}.inspector__section .panel-heading{margin:0}.inspector__pins{display:flex;flex-wrap:wrap;gap:4px}.inspector__orient{display:flex;gap:8px}.inspector__actions{display:flex;flex-direction:column;gap:8px}.inspector__save-preset{display:flex;align-items:center;gap:6px}.inspector__preset-name{flex:1;min-width:0;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font:inherit;font-size:12px}.inspector__preset-name:focus{outline:none;border-color:var(--accent)}.pin-chip{padding:1px 6px;border-radius:5px;border:1px solid var(--border);background:transparent;font-family:var(--mono);font-size:10.5px;color:var(--muted);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.pin-chip:hover{border-color:var(--accent)}.pin-chip--wired{background:#ffffff0d;color:var(--text);font-weight:600}.pin-chip__dot{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;vertical-align:middle;box-shadow:0 0 0 1px #e2e8f080}.pin-chip--power{border-color:#7f1d1d;color:#fca5a5}.pin-chip--ground{border-color:#334155;color:#cbd5e1}.pin-chip--high{border-color:#166534;color:#86efac;background:#16653440}.readout{margin:0;display:flex;flex-direction:column;gap:4px}.readout__row{display:flex;justify-content:space-between;gap:10px;font-size:12px}.readout__row dt{color:var(--muted)}.readout__row dd{margin:0;font-family:var(--mono);color:var(--text);text-align:right}.readout__row--pins dd{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px}.firmware{display:flex;flex-direction:column;gap:6px}.firmware__head{display:flex;justify-content:space-between;align-items:center}.firmware__editor{display:flex;border:1px solid var(--border);border-radius:8px;background:#0a0f1a;overflow:hidden}.firmware__gutter{margin:0;padding:8px 6px;min-width:26px;text-align:right;color:#475569;background:#0d1422;font:11.5px/1.5 var(--mono);-webkit-user-select:none;user-select:none}.firmware__code{flex:1;padding:8px;border:0;outline:none;resize:vertical;background:transparent;color:#e2e8f0;font:11.5px/1.5 var(--mono);white-space:pre;overflow-x:auto;-moz-tab-size:4;tab-size:4}.firmware__fault{margin:0;font-size:12px;color:#fca5a5}.firmware__api{font-size:11.5px;color:var(--muted)}.firmware__api summary{cursor:pointer;color:var(--accent)}.firmware__api dl{margin:6px 0 0;display:flex;flex-direction:column;gap:4px}.firmware__api dt{font-family:var(--mono);color:var(--text)}.firmware__api dd{margin:0 0 0 8px}.right-panel{width:100%;height:100%;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-left:1px solid var(--border)}.right-dock{position:relative;flex-shrink:0;width:320px;overflow:hidden;transition:width .22s ease}.right-dock--collapsed{width:22px}.right-dock__panel{position:absolute;top:0;right:0;bottom:0;left:0;width:320px;display:flex;transition:transform .22s ease,opacity .18s ease}.right-dock--collapsed .right-dock__panel{transform:translate(320px);opacity:0;pointer-events:none}.right-panel__collapse{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--muted);font-size:15px;line-height:1;cursor:pointer}.right-panel__collapse:hover{color:var(--text);border-color:var(--accent)}.panel-reopen{position:absolute;top:0;left:0;bottom:0;width:22px;display:flex;align-items:center;justify-content:center;background:var(--panel);border:0;border-left:1px solid var(--border);color:var(--muted);font-size:16px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .18s ease}.right-dock--collapsed .panel-reopen{opacity:1;pointer-events:auto}.panel-reopen:hover{color:var(--text);background:var(--panel-2)}.right-panel__body{flex:1;min-height:0;min-width:0;display:flex}.right-panel .inspector{width:100%;border-left:0;background:none}.assistant{display:flex;flex-direction:column;gap:12px;padding:14px;flex:1;min-height:0;min-width:0}.assistant__badge{align-self:flex-start;padding:3px 10px;border-radius:999px;background:linear-gradient(90deg,#6d28d9,#2563eb);color:#fff;font-size:11px;font-weight:700}.assistant__badge--ok{background:linear-gradient(90deg,#059669,#0891b2)}.assistant__actions{display:flex;flex-wrap:wrap;gap:6px}.assistant__action{padding:5px 11px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--text);font:inherit;font-size:12px;cursor:pointer}.assistant__action:hover:not(:disabled){border-color:var(--accent)}.assistant__action:disabled{opacity:.5;cursor:default}.assistant__action--fix{color:#fbbf24;border-color:#fbbf2480}.mem-editor{display:flex;flex-direction:column;gap:6px}.mem-editor__bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.mem-editor__title{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.mem-editor__radix{display:flex;gap:4px}.mem-radix{padding:2px 7px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--muted);font:600 10.5px var(--mono);cursor:pointer}.mem-radix--on{color:#04121a;background:var(--accent);border-color:var(--accent)}.mem-editor__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.mem-cell{display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:6px;padding:2px 4px;background:var(--panel)}.mem-cell__addr{font:600 10px var(--mono);color:var(--muted);min-width:14px;text-align:right}.mem-cell__input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font:600 12px var(--mono);padding:2px 0}.mem-cell__input:focus{outline:none;color:var(--accent)}.assistant__models{display:flex;gap:8px}.assistant__model-field{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.assistant__select{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:7px;background:var(--panel-2);color:var(--text);padding:5px 7px;font:inherit;font-size:12px;text-transform:none;letter-spacing:normal}.assistant__select:focus{outline:none;border-color:var(--accent)}.assistant__lead{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.assistant__ideas{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.assistant__idea{width:100%;text-align:left;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer}.assistant__idea:hover{border-color:var(--accent)}.assistant__thread{flex:1;min-height:0;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px}.assistant__msg{padding:8px 11px;border-radius:10px;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;max-width:92%}.assistant__msg--user{align-self:flex-end;background:var(--accent);color:#04121a;font-weight:500}.assistant__msg--assistant{align-self:flex-start;background:var(--panel-2);border:1px solid var(--border);color:var(--text)}.assistant__msg--typing{color:var(--muted);font-style:italic}.assistant__msg--note{align-self:stretch;max-width:100%;background:transparent;border:1px dashed var(--border);color:var(--muted);font-size:12px}.assistant__composer{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px dashed var(--border);border-radius:10px}.assistant__input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);padding:8px;font:inherit;font-size:13px;resize:none}.assistant__composer .btn{align-self:flex-end}.assistant__note{margin:0;font-size:11.5px;color:var(--muted)}.code-sheet{display:flex;flex-direction:column;gap:12px}.code-sheet__picker{max-width:320px}.code-sheet__note{margin:0;font-size:12px;color:var(--muted)}.code-preview{display:flex;flex-direction:column;gap:6px}.code-preview__head{display:flex;align-items:center;justify-content:space-between}.code-preview__code{width:100%;border:1px solid var(--border);border-radius:8px;background:#0a0f1a;color:#cbd5e1;padding:8px;font:11.5px/1.5 var(--mono);resize:vertical;white-space:pre;overflow-x:auto}.code-preview__fault,.code-editor__fault{margin:0;font-size:12px;color:#fca5a5}.code-editor{display:flex;flex-direction:column;gap:10px;height:100%}.code-editor__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.code-editor__file{font-family:var(--mono);font-size:12px;color:var(--muted)}.code-editor__actions{display:flex;gap:6px;flex-wrap:wrap}.code-editor__monaco{height:60vh;min-height:320px;border:1px solid var(--border);border-radius:8px;overflow:hidden}.code-editor__textarea{width:100%;height:100%;box-sizing:border-box;border:0;resize:none;background:#1e1e1e;color:#e6e6e6;font-family:var(--mono);font-size:13px;line-height:1.5;-moz-tab-size:4;tab-size:4;padding:10px 12px}.code-editor__textarea:focus{outline:none}.code-editor__status{margin:0;font-size:12px}.code-editor__status--ok{color:#86efac}.code-editor__status--soon{color:#fcd34d}.code-editor__status--info{color:#93c5fd}.code-editor__status--busy{color:var(--muted)}.code-editor__status--error{color:#fca5a5}.calc{display:flex;flex-direction:column;gap:8px}.calc__resistor{width:100%;height:auto}.calc__field{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12px;padding:3px 0;border-bottom:1px dashed var(--border)}.calc__field span{color:var(--muted)}.calc__field b{font-family:var(--mono)}.calc__field--accent b{color:var(--accent)}.calc__input{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.calc__input input{width:92px;padding:5px 7px;border-radius:7px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:12px}.results{display:flex;flex-direction:column;flex-shrink:0;background:var(--panel);border-top:1px solid var(--border)}.results__body{min-height:0;overflow:auto;padding:10px 14px;height:232px;transition:height .22s ease,padding .2s ease,opacity .16s ease}.results__body--collapsed{height:0;padding-top:0;padding-bottom:0;opacity:0;overflow:hidden}.results__body--updating{opacity:.45;transition:opacity .15s ease}.results__updating{font-size:11px;font-family:var(--mono);color:var(--accent, #2dd4bf);white-space:nowrap;animation:results-pulse 1.1s ease-in-out infinite}@keyframes results-pulse{0%,to{opacity:.55}50%{opacity:1}}.results__skeleton{display:flex;flex-direction:column;gap:12px;padding:12px 14px}.results__collapse{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);border-radius:6px;width:26px;height:24px;cursor:pointer}.overview{display:flex;flex-direction:column;gap:8px}.overview__muted{margin:0;color:var(--muted);font-size:13px}.overview__ai{display:flex;flex-wrap:wrap;gap:8px}.notice{display:flex;gap:8px;align-items:baseline;margin:0;padding:7px 10px;border-radius:8px;font-size:12.5px;color:var(--text);border:1px solid}.notice--warning{border-color:#854d0e;background:#854d0e2e}.notice--critical{border-color:#991b1b;background:#991b1b33}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.stat{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:var(--panel-2);border:1px solid var(--border)}.stat__label{font-size:11px;color:var(--muted)}.stat__value{font-size:17px;font-weight:700;font-family:var(--mono);color:var(--text)}.waveforms{display:flex;flex-direction:column;gap:8px}.waveforms__bar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.legend{display:flex;flex-wrap:wrap;gap:4px 12px}.legend__item{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--text);font:inherit;font-size:12px;cursor:pointer;padding:2px 0}.legend__item i,.chart__tooltip i{width:10px;height:3px;border-radius:2px;display:inline-block}.legend__item--off{color:var(--muted);text-decoration:line-through}.legend__more{font-size:12px;color:var(--muted)}.chart{position:relative;width:100%}.chart svg{display:block;overflow:visible}.chart__grid{stroke:#1e293b;stroke-width:1}.chart__axis{stroke:#334155}.chart__tick{fill:var(--muted);font-size:10px;font-family:var(--mono)}.chart__lane-label,.chart__direct{fill:var(--text);font-size:11px;font-family:var(--mono)}.chart__line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart__crosshair{stroke:#64748b;stroke-dasharray:3 3}.chart__band{fill:#94a3b81f}.chart__dot{stroke:var(--panel);stroke-width:2}.chart__tooltip{position:absolute;top:6px;z-index:2;display:flex;flex-direction:column;gap:2px;min-width:160px;padding:6px 9px;border-radius:8px;background:#020617f2;border:1px solid var(--border);font-size:11.5px;pointer-events:none}.chart__tooltip span{display:flex;align-items:center;gap:6px;color:var(--muted)}.chart__tooltip b{margin-left:auto;color:var(--text);font-family:var(--mono)}.series-table{max-height:180px;overflow:auto}.series-table table{width:100%;border-collapse:collapse;font-size:11.5px;font-family:var(--mono)}.series-table th,.series-table td{padding:3px 8px;text-align:right;border-bottom:1px solid #1e293b;white-space:nowrap}.series-table th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-weight:600}.serial{font-family:var(--mono);font-size:12px;background:#050a12;border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-height:100%}.serial__line{display:flex;gap:10px;line-height:1.6}.serial__time{color:#475569;min-width:52px}.serial__source{color:#7dd3fc}.serial__text{color:#d1fae5;white-space:pre-wrap}.playback{display:flex;align-items:center;gap:8px}.playback input{width:180px;accent-color:var(--accent)}.playback__toggle{width:28px;height:24px;border-radius:6px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;font-size:11px}.playback__time{min-width:56px;font-size:11px;font-family:var(--mono);color:var(--muted)}.chart__bus-rail{fill:none;stroke-width:1.4;opacity:.85}.serial-wrap{display:flex;flex-direction:column;height:100%;min-height:0}.serial-wrap__toggle{align-self:flex-end;margin:2px 6px 6px}.serial-plot{display:flex;flex-direction:column;gap:8px;padding:4px 8px 8px;overflow:auto}.serial-plot__chart{width:100%;height:auto;background:var(--panel-2);border:1px solid var(--border);border-radius:8px}.serial-plot__axis{fill:var(--muted);font-size:9px;font-family:var(--mono)}.serial-plot__legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}.serial-plot__item{display:inline-flex;align-items:center;gap:6px}.serial-plot__item i{width:12px;height:3px;border-radius:2px}.serial-plot__item b{color:var(--text);font-family:var(--mono)}.workspace{flex:1;display:flex;min-width:0;min-height:0}.workspace__main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.workspace-tabs{display:flex;gap:6px;padding:6px 12px;background:var(--bg);border-bottom:1px solid var(--border)}.workspace-tabs__tab{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 14px;border:1px solid transparent;border-radius:8px;background:none;color:var(--muted);font:inherit;cursor:pointer;line-height:1.25}.workspace-tabs__tab strong{font-size:13px;color:var(--text)}.workspace-tabs__tab span{font-size:10.5px}.workspace-tabs__tab--active{background:var(--panel-2);border-color:var(--border)}.workspace-tabs__tab--active strong{color:var(--accent)}.shortcuts{display:flex;flex-direction:column;gap:16px}.shortcuts__group{display:flex;flex-direction:column;gap:6px}.shortcuts__title{margin:0;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.shortcuts__list{margin:0;display:flex;flex-direction:column;gap:4px}.shortcuts__row{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:12px}.shortcuts__key{display:inline-block;font:600 12px var(--mono);padding:2px 8px;border-radius:6px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);white-space:nowrap}.shortcuts__desc{font-size:13px;color:var(--text)}:root{--bg: #0b1019;--panel: #0f1720;--panel-2: #172231;--border: #243244;--text: #e2e8f0;--muted: #8b9bb0;--accent: #38bdf8;--mono: "JetBrains Mono", "Cascadia Code", ui-monospace, monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100vh}.app__header{display:flex;align-items:baseline;gap:10px;padding:10px 16px;background:linear-gradient(90deg,#0f1720,#0c1a22);border-bottom:1px solid var(--border)}.app__logo{font-size:18px}.app__name{font-weight:800;font-size:17px;letter-spacing:.01em}.app__tag{color:var(--muted);font-size:12.5px}.app__credit{margin-left:auto;color:var(--muted);font-size:12.5px;font-weight:600}.app__help{width:24px;height:24px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font:700 13px var(--mono);cursor:pointer;align-self:center}.app__help:hover{color:var(--text);border-color:var(--accent)}.app__body{flex:1;display:flex;min-height:0}.panel-heading{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:7px;cursor:pointer;font:inherit;font-weight:600;white-space:nowrap;transition:background .12s,border-color .12s}.btn--md{padding:7px 14px;font-size:13px}.btn--sm{padding:4px 10px;font-size:12px}.btn:hover:not(:disabled){border-color:#3b4f68}.btn:disabled{opacity:.55;cursor:default}.btn--primary{background:var(--accent);border-color:var(--accent);color:#062033}.btn--primary:hover:not(:disabled){background:#7dd3fc}.btn--danger{align-self:flex-start;border-color:#7f1d1d;color:#fca5a5;background:transparent}.field{display:flex;flex-direction:column;gap:4px}.field__label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.field__hint{font-family:var(--mono);font-size:11px}.field__input{padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--panel-2);color:var(--text);font:inherit;font-size:13px}.field__input:focus,.number-input input:focus{outline:2px solid rgba(56,189,248,.5);outline-offset:0}.field__range{accent-color:var(--accent)}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle__track{position:relative;width:32px;height:18px;border-radius:999px;background:#334155;transition:background .15s}.toggle__track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#e2e8f0;transition:transform .15s}.toggle input:checked+.toggle__track{background:#16a34a}.toggle input:checked+.toggle__track:after{transform:translate(14px)}.toggle input:focus-visible+.toggle__track{outline:2px solid var(--accent)}.segmented{display:inline-flex;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.segmented__item{border:0;background:none;color:var(--muted);padding:4px 10px;border-radius:6px;font:inherit;font-size:12px;cursor:pointer}.segmented__item--active{background:#26374d;color:var(--text)}.number-input{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.number-input input{width:68px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--text);font:inherit;font-family:var(--mono)}.tabs{display:flex;align-items:center;gap:2px;padding:6px 10px 0;border-bottom:1px solid var(--border)}.tabs__tab{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.tabs__tab--active{color:var(--text);border-bottom-color:var(--accent)}.tabs__badge{min-width:18px;padding:0 5px;border-radius:999px;background:#26374d;font-size:10.5px;font-family:var(--mono);color:var(--text)}.tabs__trailing{margin-left:auto;display:flex;align-items:center;gap:10px;padding-bottom:4px}.empty-state{padding:18px;text-align:center;color:var(--muted);font-size:13px}.empty-state strong{display:block;margin-bottom:4px;color:var(--text)}.empty-state p{margin:0}.error-notice{margin:auto;padding:20px;max-width:420px;text-align:center}.error-notice p{margin:8px 0 12px;color:#fca5a5;font-family:var(--mono);font-size:12px;white-space:pre-wrap}.error-notice--compact{margin:12px;padding:12px;border:1px solid #7f1d1d;border-radius:10px;background:#7f1d1d26}.skeleton{display:inline-block;background:linear-gradient(90deg,var(--panel-2) 25%,#22324a 37%,var(--panel-2) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;justify-content:flex-end}.sheet__scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#02061799;cursor:pointer}.sheet__panel{position:relative;width:min(560px,92vw);display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--border);box-shadow:-16px 0 40px #00000080;animation:sheet-in .18s ease}@keyframes sheet-in{0%{transform:translate(24px);opacity:.6}to{transform:translate(0);opacity:1}}.sheet__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.sheet__header h2{margin:0;font-size:15px}.sheet__actions{display:flex;align-items:center;gap:10px}.sheet__soon{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:2px 8px}.sheet__close{width:28px;height:26px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--text);cursor:pointer}.sheet__body{flex:1;min-height:0;overflow-y:auto;padding:16px}
