:root{--bg-primary: #ffffff;--bg-secondary: #f0f0f0;--bg-tertiary: #e5e5e5;--text-primary: #1a1a1a;--text-secondary: #666666;--border: #dddddd;--accent: #2563eb;--accent-hover: #1d4ed8;--error: #dc2626;--success: #16a34a;--panel-bg: #ffffff;--panel-header-bg: #f5f5f5}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--text-primary: #e5e5e5;--text-secondary: #a3a3a3;--border: #404040;--accent: #3b82f6;--accent-hover: #60a5fa;--error: #f87171;--success: #4ade80;--panel-bg: #252525;--panel-header-bg: #333333}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,monospace;font-size:13px;color:var(--text-primary);background:var(--bg-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.app-layout{display:flex;flex-direction:column;height:100%}.app-header{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--panel-header-bg);border-bottom:1px solid var(--border);flex-shrink:0;min-height:36px}.app-main{flex:1;display:flex;min-height:0;overflow:hidden}.app-footer{padding:4px 12px;background:var(--panel-header-bg);border-top:1px solid var(--border);flex-shrink:0;font-size:12px;min-height:28px;display:flex;align-items:center}.splitter-h{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.splitter-v{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.splitter-pane{overflow:hidden;display:flex;flex-direction:column;min-width:0;min-height:0}.splitter-handle-h{width:5px;cursor:col-resize;background:var(--border);flex-shrink:0}.splitter-handle-v{height:5px;cursor:row-resize;background:var(--border);flex-shrink:0}.splitter-handle-h:hover,.splitter-handle-v:hover{background:var(--accent)}body.splitter-dragging{-webkit-user-select:none;user-select:none}.switcher{display:flex;flex:1;min-height:0;min-width:0;overflow:hidden}.switcher-v{flex-direction:column}.switcher-h{flex-direction:row}.switcher-tabs{display:flex;flex-shrink:0;background:var(--panel-header-bg);gap:0}.switcher-tabs-v{flex-direction:row;border-bottom:1px solid var(--border)}.switcher-tabs-h{flex-direction:column;border-right:1px solid var(--border)}.switcher-tab{padding:4px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid transparent}.switcher-tabs-v .switcher-tab{border-bottom:2px solid transparent;margin-bottom:-1px}.switcher-tabs-h .switcher-tab{border-right:2px solid transparent;margin-right:-1px}.switcher-tab:hover{color:var(--accent)}.switcher-tab-active{color:var(--accent);background:var(--bg-primary)}.switcher-tabs-v .switcher-tab-active{border-bottom-color:var(--accent)}.switcher-tabs-h .switcher-tab-active{border-right-color:var(--accent)}.switcher-content{flex:1;min-height:0;min-width:0;overflow:hidden;position:relative}.switcher-pane{height:100%;width:100%;overflow:hidden;display:flex;flex-direction:column}.panel-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden}.panel-header{padding:4px 8px;background:var(--panel-header-bg);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);flex-shrink:0}.panel-content{flex:1;overflow:hidden;position:relative;background:var(--panel-bg)}.btn{padding:4px 10px;border:1px solid var(--border);border-radius:3px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:12px;font-family:inherit;transition:background .15s}.btn:hover{background:var(--bg-tertiary)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-small{padding:2px 8px;font-size:11px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.modal-dialog{background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;width:420px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000040}.text-editor{display:flex;flex-direction:column;height:100%;overflow:hidden}.tutorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:2000;transition:clip-path .3s ease}.tutorial-tooltip{position:fixed;z-index:2001;background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 32px #0000004d;width:340px;max-width:calc(100vw - 32px);font-size:12px;line-height:1.5}.tutorial-tooltip-title{padding:10px 14px 6px;font-size:14px;font-weight:600;color:var(--text-primary)}.tutorial-tooltip-body{padding:0 14px 10px;color:var(--text-secondary)}.tutorial-tooltip-body code{background:var(--bg-secondary);padding:1px 4px;border-radius:2px;font-size:11px}.tutorial-tooltip-body pre{white-space:pre;overflow-x:auto}.tutorial-tooltip-nav{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-top:1px solid var(--border)}.tutorial-tooltip-progress{font-size:11px;color:var(--text-secondary)}.tutorial-tooltip-buttons{display:flex;gap:6px}:root{--pin-unassigned: #9ca3af;--pin-assigned: #3b82f6;--pin-conflict: #ef4444;--pin-reserved: #374151}[data-theme=dark]{--pin-unassigned: #6b7280;--pin-assigned: #60a5fa;--pin-conflict: #f87171;--pin-reserved: #1f2937}#app{height:100%;display:flex;flex-direction:column}.header-left{display:flex;align-items:center;gap:12px}.app-title{font-weight:700;font-size:14px}.mcu-info{font-size:12px;color:var(--text-secondary)}.header-right{display:flex;gap:6px}.footer-content{display:flex;align-items:center;gap:12px}.footer-hint{color:var(--text-secondary)}.status-success{color:var(--success)}.status-error{color:var(--error)}.status-info{color:var(--accent)}.btn-abort{background:var(--error);color:#fff;border-color:var(--error)}.btn-abort:hover{opacity:.85}.drag-over{outline:2px dashed var(--accent);outline-offset:-4px}.package-viewer{width:100%;height:100%;position:relative;display:flex;flex-direction:column}.pv-toolbar{display:flex;align-items:center;gap:4px;padding:3px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}.pv-zoom-label{font-size:11px;color:var(--text-secondary);min-width:36px;text-align:center}.pv-toolbar-separator{width:1px;height:18px;background:var(--border);margin:0 4px;flex-shrink:0}.pv-search-input{padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-primary);color:var(--text-primary);font-size:11px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;width:160px;outline:none;transition:border-color .15s,box-shadow .15s}.pv-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb33}.pv-search-input::placeholder{color:var(--text-secondary);font-family:inherit}.pv-toast{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:var(--text-primary);color:var(--bg-primary);padding:6px 16px;border-radius:4px;font-size:12px;z-index:100;pointer-events:none;animation:pv-toast-fade 2s ease forwards}@keyframes pv-toast-fade{0%,70%{opacity:1}to{opacity:0}}.package-canvas{flex:1;min-height:0;display:block}.pin-tooltip{position:absolute;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:11px;line-height:1.4;pointer-events:none;z-index:100;max-width:300px;box-shadow:0 2px 8px #00000026}.tooltip-assigned{color:var(--pin-assigned);font-weight:700}.tooltip-dma{color:var(--text-secondary);font-weight:400;font-size:.9em}.tooltip-channel{color:var(--accent)}.tooltip-signals{color:var(--text-secondary);word-break:break-word}.tooltip-none{color:var(--text-secondary);font-style:italic}.tooltip-error{color:var(--error);font-weight:700}.tooltip-match{color:#fbbf24;font-weight:600;animation:signal-pulse 1.2s ease-in-out infinite}@keyframes signal-pulse{0%,to{opacity:.6}50%{opacity:1}}.pv-assign-popup{position:absolute;background:var(--panel-bg);border:1px solid var(--border);border-radius:4px;min-width:160px;max-width:240px;max-height:300px;display:flex;flex-direction:column;z-index:200;box-shadow:0 4px 16px #0003;font-size:11px}.pv-assign-header{padding:6px 8px;font-weight:700;font-size:12px;border-bottom:1px solid var(--border);color:var(--text-primary);background:var(--bg-secondary);border-radius:4px 4px 0 0}.pv-assign-list{overflow-y:auto;max-height:260px}.pv-assign-item{padding:4px 8px;cursor:pointer;color:var(--text-primary);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;white-space:nowrap}.pv-assign-item:hover{background:var(--accent);color:#fff}.pv-assign-current{background:var(--bg-tertiary);font-weight:600}.pv-assign-remove{color:var(--error);border-bottom:1px solid var(--border);font-family:inherit}.pv-assign-remove:hover{background:var(--error);color:#fff}.pv-assign-match{color:#fbbf24;font-weight:600;animation:signal-pulse 1.2s ease-in-out infinite}.pv-assign-match:hover{color:#fff;animation:none}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.settings-modal{background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;width:420px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000040}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border)}.settings-body{padding:12px;overflow-y:auto}.settings-section{margin-bottom:14px}.settings-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:6px}.settings-hint{font-size:11px;color:var(--text-secondary);margin-bottom:6px}.settings-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.settings-row label{font-size:12px}.settings-input{width:80px;padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-secondary);color:var(--text-primary);font-size:12px;font-family:inherit;text-align:right}.settings-row-vertical{flex-direction:column;align-items:flex-start;gap:4px}.settings-row-vertical>label{display:flex;align-items:center;gap:8px}.solver-preset-btns{display:inline-flex;gap:4px}.solver-checkbox-list{display:flex;flex-direction:column;gap:2px;padding-left:4px}.solver-checkbox{display:flex;align-items:center;gap:6px;font-size:12px;cursor:pointer}.solver-checkbox input[type=checkbox]{margin:0}.btn-tiny{padding:1px 6px;font-size:10px;border-radius:3px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer}.btn-tiny:hover{background:var(--bg-hover, var(--border))}.settings-actions{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.dm-modal{width:630px}.dm-list{display:flex;flex-direction:column;gap:2px}.dm-row{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:3px;font-size:12px}.dm-row:hover{background:var(--bg-secondary)}.dm-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-size{color:var(--text-secondary);font-size:11px;min-width:40px;text-align:right}.dm-delete{color:var(--error, #ef4444)}.dm-tags{display:flex;gap:3px;flex-shrink:0}.dm-tag{display:inline-block;padding:0 4px;font-size:9px;font-weight:600;line-height:16px;border-radius:3px;background:var(--accent, #3b82f6);color:#fff;letter-spacing:.3px}.header-center{display:flex;align-items:center;gap:4px}.project-select{padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-secondary);color:var(--text-primary);font-size:12px;font-family:inherit;max-width:160px}.ps-list{padding:6px 8px;overflow-y:auto;height:100%}.ps-row{display:flex;align-items:baseline;gap:6px;padding:2px 0;font-size:12px}.ps-port{font-weight:700;min-width:40px;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.ps-peripherals{color:var(--text-secondary);word-break:break-word}.ps-highlightable{cursor:pointer;border-radius:3px;padding:0 2px;transition:background-color .15s}.ps-highlightable:hover{background-color:#80808026}.ps-highlight-active{background-color:#80808033;outline:1px solid var(--text-secondary);outline-offset:1px}.ps-peripheral-instance{font-family:SF Mono,Fira Code,Cascadia Code,monospace}.ps-summary{font-size:11px;color:var(--text-secondary);padding-bottom:4px;margin-bottom:4px;border-bottom:1px solid var(--border)}.ps-empty{padding:8px;color:var(--text-secondary);font-size:11px;font-style:italic}.ps-unused{margin-top:6px;padding-top:4px;border-top:1px solid var(--border)}.ps-unused-header{font-size:11px;color:var(--text-secondary);margin-bottom:2px}.ps-unused-row{font-size:11px;color:var(--text-secondary);padding:1px 0;word-break:break-word}.dm-version-list{padding-left:20px}.dm-version-row{display:flex;align-items:center;gap:6px;padding:2px 4px;font-size:11px}.dm-version-row:hover{background:var(--bg-secondary)}.dm-version-id{font-weight:600;min-width:24px;color:var(--accent)}.dm-version-date{color:var(--text-secondary);min-width:120px}.dm-expand-btn{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:10px;width:16px;text-align:center;flex-shrink:0}.dm-storage-info{font-size:11px;color:var(--text-secondary);font-weight:400}.dm-inspect-panel{margin:2px 0 6px 20px;border:1px solid var(--border);border-radius:3px;background:var(--bg-primary);padding:4px;font-size:11px;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.dm-inspect-row{display:flex;align-items:center;gap:6px;padding:1px 4px}.dm-inspect-row:hover{background:var(--bg-secondary)}.dm-inspect-header{font-weight:700;border-bottom:1px solid var(--border);padding-bottom:2px;margin-bottom:2px}.dm-inspect-sub{font-weight:600;margin-top:3px;color:var(--accent)}.dm-inspect-detail{padding-left:16px;color:var(--text-secondary)}.dm-inspect-key{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-inspect-size{min-width:50px;text-align:right;flex-shrink:0}.dm-inspect-bar-cell{width:60px;flex-shrink:0}.dm-inspect-bar{display:block;height:8px;background:var(--accent);border-radius:2px;min-width:1px}.st-save-bar{display:flex;align-items:center;gap:8px;padding:4px 8px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.st-table-wrapper{height:100%;overflow-y:auto;outline:none}.st-empty{padding:12px;color:var(--text-secondary);font-size:12px;font-style:italic}.st-table{width:100%;border-collapse:collapse;font-size:12px}.st-table th{position:sticky;top:0;background:var(--panel-header-bg);border-bottom:1px solid var(--border);padding:3px 6px;text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary)}.st-table td{padding:2px 6px;border-bottom:1px solid var(--border);white-space:nowrap}.st-row-selected{background:var(--accent);color:#fff}.st-cell-mcu{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:10px}.st-cell-id{width:30px;text-align:right;color:var(--text-secondary)}.st-row-selected .st-cell-id{color:inherit}.st-cell-cost{width:50px;text-align:right;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.st-cell-pins,.st-cell-perif{width:40px;text-align:right}.st-cell-name{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis}.st-cell-mcu{color:var(--text-secondary);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.st-row-selected .st-cell-name{color:inherit}.st-more{padding:6px;text-align:center;font-size:11px;color:var(--text-secondary)}.st-group-header{cursor:pointer;-webkit-user-select:none;user-select:none}.st-group-header td{padding:4px 6px 2px;font-size:10px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);letter-spacing:.3px;position:sticky;top:22px;z-index:1}.solver-debug-overlay{position:fixed;bottom:8px;right:8px;z-index:900;background:var(--panel-bg);border:1px solid var(--border);border-radius:4px;font-size:11px;box-shadow:0 2px 8px #00000026;max-height:50vh;overflow-y:auto;min-width:380px}.sdo-header{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;border-bottom:1px solid var(--border);font-weight:600;font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.sdo-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.sdo-close:hover{color:var(--text-primary)}.sdo-table{width:100%;border-collapse:collapse}.sdo-table th,.sdo-table td{padding:2px 6px;white-space:nowrap}.sdo-table thead th{font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);font-size:10px;text-transform:uppercase}.sdo-cell-name{text-align:left}.sdo-cell-state{text-align:center;width:24px}.sdo-cell-num{text-align:right;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:11px}.export-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.export-modal{background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;width:300px;box-shadow:0 8px 32px #00000040}.export-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border)}.export-body{padding:8px;display:flex;flex-direction:column;gap:4px}.export-option{display:flex;flex-direction:column;align-items:flex-start;padding:8px 12px;text-align:left;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);cursor:pointer;transition:background .15s}.export-option:hover:not(.disabled){background:var(--bg-tertiary)}.export-option.disabled{opacity:.4;cursor:default}.export-option-title{font-size:13px;font-weight:600;color:var(--text-primary)}.export-option-desc{font-size:11px;color:var(--text-secondary);margin-top:2px}.export-separator{height:1px;background:var(--border);margin:4px 0}.code-editor-wrap{position:relative;height:200px;border:1px solid var(--border);border-radius:3px;overflow:hidden}.code-editor-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb33}.code-editor-highlight,.export-code-editor{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:8px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;line-height:1.4;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto;word-wrap:normal}.code-editor-highlight{pointer-events:none;background:var(--bg-primary);color:var(--text-primary);z-index:0}.export-code-editor{background:transparent;color:transparent;caret-color:var(--text-primary);z-index:1;border:none;outline:none;resize:none;width:100%;height:100%}.hl-keyword{color:#c678dd}.hl-string{color:#98c379}.hl-comment{color:#7f848e;font-style:italic}.hl-number{color:#d19a66}[data-theme=dark] .hl-keyword{color:#c678dd}[data-theme=dark] .hl-string{color:#98c379}[data-theme=dark] .hl-comment{color:#7f848e}[data-theme=dark] .hl-number{color:#d19a66}:root .hl-keyword{color:#7c3aed}:root .hl-string{color:#16a34a}:root .hl-comment{color:#9ca3af;font-style:italic}:root .hl-number{color:#d97706}.export-error{font-size:11px;padding:4px 0;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.export-help{margin-top:6px;padding:8px;border:1px solid var(--border);border-radius:3px;background:var(--bg-secondary);font-size:11px;line-height:1.5}.export-help pre{margin:4px 0;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;white-space:pre;overflow-x:auto}.constraint-editor{display:flex;flex-direction:column;height:100%;overflow:hidden}.ce-toolbar{display:flex;align-items:center;gap:6px;padding:3px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.ce-toolbar-spacer{flex:1}.ce-stats{font-size:11px;color:var(--text-secondary)}.ce-solver-status{padding:2px 8px;font-size:11px;background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0;min-height:0}.ce-solver-status:empty{display:none}.ce-editor-wrapper{flex:1;display:flex;min-height:0;overflow:hidden;position:relative}.ce-minimap{flex-shrink:0;background:var(--bg-secondary);border-left:1px solid var(--border)}.ce-line-numbers{width:36px;flex-shrink:0;background:var(--bg-secondary);border-right:1px solid var(--border);padding:8px 0;overflow:hidden;-webkit-user-select:none;user-select:none}.ce-line-num{height:18px;line-height:18px;padding:0 6px;text-align:right;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;color:var(--text-secondary)}.ce-code-area{flex:1;position:relative;overflow:hidden;background:var(--panel-bg)}.ce-highlight,.ce-textarea{position:absolute;top:0;left:0;width:100%;height:100%;padding:8px 8px 50%;margin:0;border:none;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;line-height:18px;white-space:pre;overflow:auto;-moz-tab-size:2;tab-size:2;word-wrap:normal;background:transparent}.ce-highlight{pointer-events:none;color:var(--text-primary);overflow:hidden}.ce-textarea{color:transparent;caret-color:var(--text-primary);resize:none;outline:none}.ce-textarea::placeholder{color:var(--text-secondary);opacity:.5}.ce-textarea:placeholder-shown{color:var(--text-secondary);opacity:.5}.ce-keyword{color:#7c3aed;font-weight:600}[data-theme=dark] .ce-keyword{color:#a78bfa}.ce-string{color:#059669}[data-theme=dark] .ce-string{color:#34d399}.ce-comment{color:#9ca3af;font-style:italic}.ce-number{color:#d97706}[data-theme=dark] .ce-number{color:#fbbf24}.ce-builtin{color:#2563eb}[data-theme=dark] .ce-builtin{color:#60a5fa}.ce-operator{color:#dc2626}[data-theme=dark] .ce-operator{color:#f87171}.ce-error-line{background:#dc26261a;display:inline;border-bottom:1px wavy #dc2626}[data-theme=dark] .ce-error-line{background:#f871711a;border-bottom-color:#f87171}.ce-error-panel{max-height:100px;overflow-y:auto;background:var(--bg-secondary);border-top:1px solid var(--border);padding:4px 8px;font-size:11px;flex-shrink:0}.ce-error-item{padding:2px 0;display:flex;gap:8px;align-items:baseline}.ce-error-loc{color:var(--error);font-weight:600;white-space:nowrap;flex-shrink:0}.ce-error-msg{color:var(--text-primary)}.ce-suggestion{color:var(--accent);font-style:italic}.ce-error-more{color:var(--text-secondary);font-style:italic;padding:2px 0}.ce-help-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.ce-help-modal{background:var(--panel-bg);border:1px solid var(--border);border-radius:6px;width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.ce-help-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0;font-size:13px}.ce-help-body{overflow-y:auto;padding:14px;font-size:12px;line-height:1.5}.ce-help-body section{margin-bottom:16px}.ce-help-body h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin-bottom:6px}.ce-help-body p{margin:4px 0;color:var(--text-secondary)}.ce-help-code{background:var(--bg-secondary);border:1px solid var(--border);border-radius:3px;padding:8px 10px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;line-height:1.5;overflow-x:auto;white-space:pre;color:var(--text-primary)}.ce-help-body table{border-collapse:collapse;width:100%;font-size:11px}.ce-help-body table td{padding:3px 8px;border-bottom:1px solid var(--border);vertical-align:top}.ce-help-body table td:first-child{font-family:SF Mono,Fira Code,Cascadia Code,monospace;white-space:nowrap;color:var(--accent)}.ce-help-body table td:last-child{color:var(--text-secondary)}.ce-help-body code{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;background:var(--bg-secondary);padding:1px 4px;border-radius:2px}.solution-table{display:flex;flex-direction:column;height:100%;overflow:hidden}.st-toolbar{display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.st-stats{font-size:11px;color:var(--text-secondary)}.st-table-wrapper{flex:1;overflow:auto;min-height:0;outline:none;border:2px solid transparent}.st-table-wrapper:focus{border-color:var(--accent)}.st-empty{padding:20px;text-align:center;color:var(--text-secondary);font-size:12px}.st-table{width:100%;border-collapse:collapse;font-size:11px}.st-table thead{position:sticky;top:0;z-index:1}.st-table th{padding:4px 8px;text-align:left;background:var(--panel-header-bg);border-bottom:1px solid var(--border);font-weight:600;color:var(--text-secondary);white-space:nowrap}.st-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.st-sortable:hover{color:var(--accent)}.st-table td{padding:3px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.st-table tbody tr{cursor:pointer}.st-table tbody tr:hover{background:var(--bg-secondary)}.st-row-selected{background:var(--accent)!important;color:#fff}.st-row-selected td{color:#fff}.st-cell-id{color:var(--text-secondary);width:30px;text-align:right}.st-cell-cost{width:50px;text-align:right;font-weight:600}.st-cell-pins,.st-cell-perif{width:40px;text-align:center}.st-cell-assign{font-family:SF Mono,Fira Code,monospace;font-size:10px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;max-width:300px}.st-more{padding:8px;text-align:center;font-size:11px;color:var(--text-secondary);font-style:italic}.st-status{padding:2px 8px;font-size:11px;background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0;min-height:20px}.st-error{color:var(--error)}.st-warning{color:#d97706}[data-theme=dark] .st-warning{color:#fbbf24}.st-sender{color:#6b7280;font-weight:600}[data-theme=dark] .st-sender{color:#9ca3af}.st-save-bar{display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.st-save-info{font-size:11px;color:var(--text-secondary)}.st-group-header{cursor:pointer;background:var(--bg-secondary)}.st-group-header td{padding:4px 8px;font-weight:600;font-size:11px;color:var(--text-secondary)}.st-group-header:hover td{color:var(--accent)}.st-group-header.st-focused td{background:var(--accent);color:#fff}.st-cell-solver{width:30px;text-align:center;color:var(--text-secondary);font-size:10px}.st-cell-name{overflow:hidden;text-overflow:ellipsis;max-width:150px}
