:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--pf-bg-body: #f5f7fa;--pf-bg-surface: #ffffff;--pf-bg-muted: #f3f4f6;--pf-bg-table-header: #3d5a80;--pf-bg-table-row-hover: #f8f9fa;--pf-bg-footer: #2c3e50;--pf-bg-tooltip: #1e293b;--pf-bg-input-disabled: #f5f5f5;--pf-bg-dropzone: #f7fafc;--pf-bg-dropzone-active: #ebf8ff;--pf-text-primary: #333333;--pf-text-secondary: #666666;--pf-text-muted: #6b7280;--pf-text-heading: #111827;--pf-text-on-dark: #ffffff;--pf-text-on-table-header: #ffffff;--pf-border-default: #e5e7eb;--pf-border-input: #dddddd;--pf-border-table: #e9ecef;--pf-border-dropzone: #cbd5e0;--pf-accent-primary: #4a90e2;--pf-accent-primary-hover: #357abd;--pf-accent-link: #2563eb;--pf-accent-link-hover: #1d4ed8;--pf-status-success: #10b981;--pf-status-success-text: #047857;--pf-status-success-bg: #ecfdf5;--pf-status-error: #ef4444;--pf-status-error-text: #b91c1c;--pf-status-error-bg: #fef2f2;--pf-status-warning: #ff9800;--pf-status-warning-bg: #feebc8;--pf-highlight: #ffeb3b;--pf-highlight-text: inherit;--pf-shadow-color: rgba(0, 0, 0, .1);--pf-shadow-strong: rgba(0, 0, 0, .12);--pf-spinner-track: #f3f3f3;--pf-spinner-active: #4a90e2;--pf-pricing-bg: #f8fafc;--pf-pricing-text: #333333;--pf-pricing-tier-qty: #666666;--pf-badge-bg: #e5e7eb;--pf-badge-text: #6b7280;--pf-copy-btn-color: #9ca3af;--pf-copy-btn-hover-color: #6b7280;--pf-copy-btn-hover-bg: #f3f4f6;--pf-copy-btn-success: #10b981;--pf-copy-btn-success-bg: #d1fae5;--pf-rate-value: #059669;--pf-source-tme-bg: #e6fffa;--pf-source-tme-text: #234e52;--pf-source-digikey-bg: #fff5f5;--pf-source-digikey-text: #742a2a;--pf-source-mouser-bg: #ebf4ff;--pf-source-mouser-text: #2c5282;--pf-bom-searching-bg: #e6fffa;--pf-bom-searching-text: #234e52;--pf-bom-on-stock-bg: #c6f6d5;--pf-bom-on-stock-text: #22543d;--pf-bom-not-on-stock-bg: #feebc8;--pf-bom-not-on-stock-text: #7c2d12;--pf-bom-not-found-bg: #fed7d7;--pf-bom-not-found-text: #742a2a;--pf-bom-fulltext-bg: #dbeafe;--pf-bom-fulltext-text: #1e40af;--pf-progress-bg: #e2e8f0;--pf-progress-fill: #4299e1;--pf-progress-completed: #38a169;--pf-progress-failed: #e53e3e;--pf-scrollbar-track: #f1f1f1;--pf-scrollbar-thumb: #cbd5e0;--pf-scrollbar-thumb-hover: #a0aec0}@media(prefers-color-scheme:dark){:root{--pf-bg-body: #0f172a;--pf-bg-surface: #1e293b;--pf-bg-muted: #334155;--pf-bg-table-header: #1e3a5f;--pf-bg-table-row-hover: #334155;--pf-bg-footer: #0f172a;--pf-bg-tooltip: #475569;--pf-bg-input-disabled: #1e293b;--pf-bg-dropzone: #1e293b;--pf-bg-dropzone-active: #1e3a5f;--pf-text-primary: #f1f5f9;--pf-text-secondary: #cbd5e1;--pf-text-muted: #94a3b8;--pf-text-heading: #f8fafc;--pf-text-on-dark: #ffffff;--pf-text-on-table-header: #f1f5f9;--pf-border-default: #334155;--pf-border-input: #475569;--pf-border-table: #334155;--pf-border-dropzone: #475569;--pf-accent-primary: #60a5fa;--pf-accent-primary-hover: #3b82f6;--pf-accent-link: #60a5fa;--pf-accent-link-hover: #93c5fd;--pf-status-success: #34d399;--pf-status-success-text: #34d399;--pf-status-success-bg: #064e3b;--pf-status-error: #f87171;--pf-status-error-text: #f87171;--pf-status-error-bg: #7f1d1d;--pf-status-warning: #fbbf24;--pf-status-warning-bg: #78350f;--pf-highlight: #854d0e;--pf-highlight-text: #fef3c7;--pf-shadow-color: rgba(0, 0, 0, .4);--pf-shadow-strong: rgba(0, 0, 0, .5);--pf-spinner-track: #334155;--pf-spinner-active: #60a5fa;--pf-pricing-bg: #1e293b;--pf-pricing-text: #f1f5f9;--pf-pricing-tier-qty: #94a3b8;--pf-badge-bg: #334155;--pf-badge-text: #94a3b8;--pf-copy-btn-color: #64748b;--pf-copy-btn-hover-color: #94a3b8;--pf-copy-btn-hover-bg: #334155;--pf-copy-btn-success: #34d399;--pf-copy-btn-success-bg: #064e3b;--pf-rate-value: #34d399;--pf-source-tme-bg: #064e3b;--pf-source-tme-text: #6ee7b7;--pf-source-digikey-bg: #7f1d1d;--pf-source-digikey-text: #fca5a5;--pf-source-mouser-bg: #1e3a5f;--pf-source-mouser-text: #93c5fd;--pf-bom-searching-bg: #064e3b;--pf-bom-searching-text: #6ee7b7;--pf-bom-on-stock-bg: #14532d;--pf-bom-on-stock-text: #86efac;--pf-bom-not-on-stock-bg: #78350f;--pf-bom-not-on-stock-text: #fcd34d;--pf-bom-not-found-bg: #7f1d1d;--pf-bom-not-found-text: #fca5a5;--pf-bom-fulltext-bg: #1e3a5f;--pf-bom-fulltext-text: #93c5fd;--pf-progress-bg: #334155;--pf-progress-fill: #60a5fa;--pf-progress-completed: #34d399;--pf-progress-failed: #f87171;--pf-scrollbar-track: #1e293b;--pf-scrollbar-thumb: #475569;--pf-scrollbar-thumb-hover: #64748b}}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}.search-bar{width:100%;max-width:800px;margin:0 auto 2rem}.search-input-group{display:flex;gap:.5rem;margin-bottom:.75rem}.search-input{flex:1;padding:.75rem 1rem;font-size:1rem;border:2px solid var(--pf-border-input);border-radius:8px;outline:none;transition:border-color .2s;background-color:var(--pf-bg-surface);color:var(--pf-text-primary)}.search-input:focus{border-color:var(--pf-accent-primary)}.search-input:disabled{background-color:var(--pf-bg-input-disabled);cursor:not-allowed}.search-button{padding:.75rem 2rem;font-size:1rem;font-weight:600;color:var(--pf-text-on-dark);background-color:var(--pf-accent-primary);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s;white-space:nowrap}.search-button:hover:not(:disabled){background-color:var(--pf-accent-primary-hover)}.search-button:disabled{background-color:var(--pf-bg-muted);color:var(--pf-text-muted);cursor:not-allowed}.search-options{margin-bottom:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--pf-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed}.checkbox-label span{cursor:pointer}.quantity-input-group{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.quantity-label{font-size:.9rem;color:var(--pf-text-secondary);white-space:nowrap}.quantity-input{width:100px;padding:.35rem .5rem;font-size:.9rem;border:2px solid var(--pf-border-input);border-radius:6px;outline:none;transition:border-color .2s;background-color:var(--pf-bg-surface);color:var(--pf-text-primary);font-variant-numeric:tabular-nums}.quantity-input:focus{border-color:var(--pf-accent-primary)}.quantity-input:disabled{background-color:var(--pf-bg-input-disabled);cursor:not-allowed}.search-examples{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--pf-text-secondary);flex-wrap:wrap}.example-btn{padding:.25rem .75rem;font-size:.85rem;color:var(--pf-accent-primary);background:none;border:1px solid var(--pf-accent-primary);border-radius:4px;cursor:pointer;transition:all .2s}.example-btn:hover{background-color:var(--pf-accent-primary);color:var(--pf-text-on-dark)}.results-container{width:100%;margin:2rem auto}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.results-header h2{margin:0;color:var(--pf-text-primary);font-size:1.5rem}.results-info{display:flex;gap:1.5rem;font-size:.9rem;color:var(--pf-text-secondary);flex-wrap:wrap}.results-count{font-weight:600;color:var(--pf-accent-primary)}.exchange-rate-info{font-size:.85rem;color:var(--pf-text-secondary);font-style:italic;cursor:help;position:relative;display:inline-block}.exchange-rate-tooltip{visibility:hidden;opacity:0;position:absolute;top:calc(100% + 10px);right:0;background:var(--pf-bg-surface);border:1px solid var(--pf-border-default);border-radius:6px;box-shadow:0 8px 20px var(--pf-shadow-strong);padding:0;min-width:200px;max-width:220px;z-index:1000;transition:opacity .2s ease-in-out,visibility .2s ease-in-out;pointer-events:none}.exchange-rate-info:hover .exchange-rate-tooltip{visibility:visible;opacity:1}.exchange-rate-tooltip:after{content:"";position:absolute;bottom:100%;right:20px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--pf-bg-surface)}.exchange-rate-tooltip:before{content:"";position:absolute;bottom:100%;right:19px;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid var(--pf-border-default)}.tooltip-header{background:linear-gradient(135deg,var(--pf-accent-primary) 0%,var(--pf-accent-primary-hover) 100%);color:var(--pf-text-on-dark);font-weight:600;font-size:.8rem;padding:.5rem .75rem;border-radius:6px 6px 0 0;font-style:normal}.tooltip-date{padding:.35rem .75rem;font-size:.7rem;color:var(--pf-text-muted);border-bottom:1px solid var(--pf-border-default);font-style:normal;text-align:left}.tooltip-rates{padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.rate-item{display:grid;grid-template-columns:3.5rem auto 1fr;gap:.4rem;align-items:center;font-size:.75rem;padding:.1rem 0;font-style:normal}.rate-currency{font-weight:700;color:var(--pf-text-secondary);text-align:right;font-family:Courier New,monospace}.rate-equals{color:var(--pf-text-muted);text-align:center}.rate-value{font-weight:600;color:var(--pf-rate-value);font-family:Courier New,monospace;text-align:right;font-variant-numeric:tabular-nums}.table-wrapper{background:var(--pf-bg-surface);border-radius:8px;box-shadow:0 2px 8px var(--pf-shadow-color)}.results-table{width:100%;border-collapse:collapse;font-size:.9rem}.results-table thead{background:var(--pf-bg-table-header);color:var(--pf-text-on-table-header);position:sticky;top:0;z-index:10}.results-table th{padding:1rem;text-align:left;font-weight:600;white-space:nowrap;border-bottom:2px solid rgba(0,0,0,.2)}.results-table th[title]{cursor:help;position:relative;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.results-table tbody tr{border-bottom:1px solid var(--pf-border-table);transition:background-color .15s}.results-table tbody tr:hover{background:var(--pf-bg-table-row-hover)}.results-table tbody tr:last-child{border-bottom:none}.results-table td{padding:.75rem 1rem;vertical-align:top}.part-number-cell{min-width:200px;vertical-align:top}.part-number-content{display:flex;flex-direction:column;gap:.25rem}.part-number{font-family:Courier New,monospace;font-size:1rem;font-weight:700;color:var(--pf-text-primary);word-break:break-all}.manufacturer{font-size:.8rem;color:var(--pf-text-secondary);font-weight:500}.description-cell{max-width:400px;color:var(--pf-text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis}.distributor-cell{min-width:100px}.distributor-link{color:var(--pf-accent-link);text-decoration:none;font-weight:600;transition:color .2s}.distributor-link:hover{color:var(--pf-accent-link-hover);text-decoration:underline}.sku-cell{font-family:Courier New,monospace;font-size:.85rem;min-width:120px}.sku-cell-content{display:flex;align-items:flex-start;gap:.5rem}.sku-link{color:var(--pf-accent-link);text-decoration:none;transition:color .2s}.sku-link:hover{color:var(--pf-accent-link-hover);text-decoration:underline}.sku-info{display:flex;flex-direction:column;gap:.2rem}.package-type{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.75rem;color:var(--pf-badge-text);font-weight:500;padding:.1rem .4rem;background:var(--pf-badge-bg);border-radius:3px;display:inline-block;max-width:fit-content}.copy-btn{background:none;border:none;cursor:pointer;padding:.25rem;display:inline-flex;align-items:center;justify-content:center;color:var(--pf-copy-btn-color);transition:all .2s ease;border-radius:4px;flex-shrink:0;opacity:.6}.copy-btn:hover{opacity:1;color:var(--pf-copy-btn-hover-color);background:var(--pf-copy-btn-hover-bg)}.copy-btn:focus{outline:2px solid var(--pf-accent-primary);outline-offset:2px;opacity:1}.copy-btn:active{transform:scale(.95)}.copy-btn.copied{color:var(--pf-copy-btn-success);opacity:1}.copy-btn.copied:hover{background:var(--pf-copy-btn-success-bg)}.copy-btn svg{display:block;width:14px;height:14px}.stock-cell{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--pf-text-primary);min-width:80px}.pricing-cell{font-family:Courier New,monospace;font-size:.85rem;color:var(--pf-pricing-text);min-width:160px;max-width:220px;background:var(--pf-pricing-bg);padding:.5rem .75rem;border-radius:4px;font-variant-numeric:tabular-nums}.pricing-cell-czk{font-family:Courier New,monospace;font-size:.85rem;color:var(--pf-pricing-text);min-width:150px;max-width:200px;background:var(--pf-pricing-bg);padding:.5rem .75rem;border-radius:4px;font-variant-numeric:tabular-nums}.pricing-tiers{display:flex;flex-direction:column;gap:.25rem;line-height:1.6}.pricing-tier{display:grid;grid-template-columns:auto auto 1fr;gap:.25rem;align-items:baseline;white-space:nowrap}.tier-qty{font-weight:600;color:var(--pf-pricing-tier-qty);text-align:right;min-width:3ch}.tier-colon{font-weight:600;color:var(--pf-pricing-tier-qty)}.tier-price,.tier-price-czk{font-weight:700;color:var(--pf-pricing-text);text-align:left}.tier-highlighted{background-color:var(--pf-highlight);border-radius:3px;padding:1px 4px;margin:-1px -4px}.tier-highlighted .tier-qty,.tier-highlighted .tier-colon,.tier-highlighted .tier-price,.tier-highlighted .tier-price-czk{color:var(--pf-highlight-text)}.no-pricing{color:var(--pf-text-muted);font-style:italic}.loading-pricing{color:var(--pf-text-muted);font-style:italic;font-size:.8rem}.moq-cell{text-align:center;font-weight:600;color:var(--pf-text-secondary);min-width:60px}.no-availability{background:var(--pf-bg-table-row-hover)}.no-data-cell{text-align:center;color:var(--pf-text-muted);font-style:italic;padding:1.5rem}.highlight{background-color:var(--pf-highlight);color:var(--pf-highlight-text);font-weight:700;padding:2px 4px;border-radius:2px}.czk-header{position:relative}.loading-indicator{font-size:.8rem;margin-left:.25rem}.error-indicator{font-size:.8rem;margin-left:.25rem;color:var(--pf-status-warning);cursor:help}@media(max-width:1200px){.results-table{font-size:.85rem}.results-table th,.results-table td{padding:.75rem}.description-cell{max-width:300px}.pricing-cell,.pricing-cell-czk{max-width:180px}}@media(max-width:768px){.results-container{margin:1rem auto}.results-header{flex-direction:column;align-items:flex-start}.results-info{flex-direction:column;gap:.5rem}.table-wrapper{border-radius:4px}.results-table{font-size:.8rem}.results-table th,.results-table td{padding:.5rem}.part-number-cell{min-width:150px}.description-cell{max-width:200px;font-size:.75rem}.pricing-cell,.pricing-cell-czk{font-size:.75rem;min-width:130px}.tier-qty{min-width:40px}.exchange-rate-info{font-size:.75rem}.exchange-rate-tooltip{right:auto;left:50%;transform:translate(-50%);min-width:180px;max-width:200px}.exchange-rate-tooltip:after{right:auto;left:50%;transform:translate(-50%)}.exchange-rate-tooltip:before{right:auto;left:calc(50% - 1px);transform:translate(-50%)}.rate-item{font-size:.7rem;grid-template-columns:3rem auto 1fr;gap:.3rem;padding:.05rem 0}.tooltip-header{font-size:.75rem;padding:.4rem .6rem}.tooltip-date{font-size:.65rem;padding:.3rem .6rem}.tooltip-rates{padding:.4rem .6rem;gap:.2rem}.sku-cell-content{gap:.25rem}.copy-btn{padding:.2rem}.copy-btn svg{width:12px;height:12px}}.connector-status{margin:0;font-size:.875rem;line-height:1.4;color:var(--pf-text-muted);display:inline-flex;align-items:center}.connector-status-label{font-weight:500;margin-right:.35rem}.connector-status-item{font-weight:500;white-space:nowrap}.connector-status-item.success{color:var(--pf-status-success)}.connector-status-item.partial{color:var(--pf-status-warning)}.connector-status-item.failed{color:var(--pf-status-error)}.user-info{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.user-info-text{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.user-name{font-weight:600;color:var(--pf-text-primary, #1a1a1a)}.user-email{font-size:.75rem;color:var(--pf-text-secondary, #666)}.user-signout{background:transparent;border:1px solid var(--pf-border-default, #ccc);border-radius:4px;padding:.35rem .7rem;cursor:pointer;color:var(--pf-text-secondary, #444);font-size:.8rem;transition:background .15s,border-color .15s}.user-signout:hover{background:var(--pf-bg-muted, #f5f5f5);border-color:var(--pf-text-secondary, #999)}.user-signout:focus-visible{outline:2px solid #0066cc;outline-offset:2px}@media(max-width:768px){.user-email{display:none}}.bom-upload{max-width:800px;margin:0 auto;padding:2rem}.bom-upload-header{margin-bottom:2rem}.bom-upload-header h2{font-size:1.75rem;font-weight:600;margin-bottom:.5rem;color:var(--pf-text-heading)}.bom-upload-description{color:var(--pf-text-secondary);margin-bottom:1rem}.bom-upload-requirements{list-style:none;padding:0;margin:0;color:var(--pf-text-secondary)}.bom-upload-requirements li{padding:.25rem 0}.bom-upload-requirements strong{color:var(--pf-text-primary);font-weight:600}.bom-upload-dropzone{border:2px dashed var(--pf-border-dropzone);border-radius:8px;padding:3rem 2rem;text-align:center;transition:all .2s;background-color:var(--pf-bg-dropzone);cursor:pointer}.bom-upload-dropzone.active{border-color:var(--pf-accent-primary);background-color:var(--pf-bg-dropzone-active)}.bom-upload-dropzone.has-file{background-color:var(--pf-bg-surface);cursor:default}.bom-upload-dropzone-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.bom-upload-icon{width:64px;height:64px;color:var(--pf-text-muted)}.bom-upload-text{font-size:1rem;color:var(--pf-text-secondary);margin:0}.bom-upload-browse-button{color:var(--pf-accent-primary);font-weight:500;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;font-size:inherit}.bom-upload-browse-button:hover{color:var(--pf-accent-primary-hover)}.bom-upload-hint{font-size:.875rem;color:var(--pf-text-muted);margin:0}.bom-upload-file-info{display:flex;align-items:center;gap:1rem;padding:1rem;background-color:var(--pf-bg-dropzone);border-radius:6px}.bom-upload-file-icon{width:40px;height:40px;color:var(--pf-accent-primary);flex-shrink:0}.bom-upload-file-details{flex:1;text-align:left}.bom-upload-file-name{font-weight:500;color:var(--pf-text-primary);margin:0 0 .25rem}.bom-upload-file-size{font-size:.875rem;color:var(--pf-text-muted);margin:0}.bom-upload-clear-button{background:none;border:none;cursor:pointer;color:var(--pf-text-muted);padding:.5rem;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.bom-upload-clear-button:hover{color:var(--pf-status-error);background-color:var(--pf-status-error-bg)}.bom-upload-error{display:flex;align-items:center;gap:.5rem;padding:1rem;margin-top:1rem;background-color:var(--pf-status-error-bg);border:1px solid var(--pf-status-error);border-radius:6px;color:var(--pf-status-error-text)}.bom-upload-error svg{flex-shrink:0}.bom-upload-actions{display:flex;justify-content:center;margin-top:1.5rem}.bom-upload-submit{background-color:var(--pf-accent-primary);color:var(--pf-text-on-dark);padding:.75rem 2rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.bom-upload-submit:hover:not(:disabled){background-color:var(--pf-accent-primary-hover)}.bom-upload-submit:disabled{background-color:var(--pf-bg-muted);color:var(--pf-text-muted);cursor:not-allowed}.bom-results{padding:1rem;max-width:100%;margin:0 auto}@media(min-width:768px){.bom-results{padding:2rem}}.bom-results-empty{text-align:center;padding:3rem;color:var(--pf-text-muted)}.bom-results-loading{display:flex;justify-content:center;align-items:center;padding:4rem 2rem;min-height:300px}.bom-loading-content{text-align:center;max-width:500px;width:100%}.bom-loading-spinner{width:48px;height:48px;border:4px solid var(--pf-progress-bg);border-top-color:var(--pf-progress-fill);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.bom-loading-content h3{font-size:1.25rem;font-weight:600;color:var(--pf-text-primary);margin-bottom:1.5rem}.bom-loading-content .bom-progress-bar-container{margin-bottom:.75rem}.bom-loading-percentage{font-size:.875rem;color:var(--pf-text-secondary);font-weight:500}.bom-loading-hint{font-size:.875rem;color:var(--pf-text-muted);margin-top:.5rem}.bom-results-header{margin-bottom:2rem}.bom-results-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.bom-results-header h2{font-size:1.75rem;font-weight:600;color:var(--pf-text-heading);margin:0}.bom-export-container{position:relative}.bom-export-button{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background-color:var(--pf-accent-primary);color:var(--pf-text-on-dark);border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s;white-space:nowrap}.bom-export-button:hover:not(:disabled){background-color:var(--pf-accent-primary-hover)}.bom-export-button:active:not(:disabled){transform:scale(.98)}.bom-export-button:disabled{opacity:.6;cursor:not-allowed}.bom-export-button svg{flex-shrink:0}.bom-export-arrow{margin-left:-.25rem}.bom-export-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.bom-export-menu{position:absolute;top:calc(100% + .5rem);right:0;background-color:var(--pf-bg-surface);border:1px solid var(--pf-border-default);border-radius:6px;box-shadow:0 10px 15px -3px var(--pf-shadow-color),0 4px 6px -2px var(--pf-shadow-color);min-width:240px;z-index:50;overflow:hidden}.bom-export-menu-item{display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;text-align:left;cursor:pointer;transition:background-color .15s}.bom-export-menu-item:hover{background-color:var(--pf-bg-dropzone)}.bom-export-menu-item:not(:last-child){border-bottom:1px solid var(--pf-border-default)}.bom-export-menu-item svg{flex-shrink:0;margin-top:.125rem;color:var(--pf-accent-primary)}.bom-export-menu-item-text{display:flex;flex-direction:column;gap:.25rem}.bom-export-menu-item-title{font-size:.875rem;font-weight:500;color:var(--pf-text-primary)}.bom-export-menu-item-desc{font-size:.75rem;color:var(--pf-text-muted)}.bom-export-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background-color:var(--pf-status-error-bg);border:1px solid var(--pf-status-error);border-radius:6px;color:var(--pf-status-error-text);font-size:.875rem;margin-bottom:1rem}.bom-export-error svg{flex-shrink:0;color:var(--pf-status-error)}@media(max-width:640px){.bom-results-header-top{flex-direction:column;align-items:flex-start}.bom-export-button{align-self:flex-end}.bom-export-menu{right:0;left:auto}}.bom-results-progress{display:flex;flex-direction:column;gap:.5rem}.bom-progress-bar-container{width:100%;height:8px;background-color:var(--pf-progress-bg);border-radius:4px;overflow:hidden}.bom-progress-bar{height:100%;background-color:var(--pf-progress-fill);transition:width .3s ease}.bom-progress-text{font-size:.875rem;color:var(--pf-text-secondary)}.bom-progress-completed-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.bom-progress-completed{color:var(--pf-progress-completed);font-weight:500}.bom-progress-separator{color:var(--pf-border-dropzone);font-weight:400}.bom-progress-failed{color:var(--pf-progress-failed);font-weight:500}.bom-results-table-container{position:relative;overflow-x:auto;border:1px solid var(--pf-border-default);border-radius:8px;background-color:var(--pf-bg-surface);max-width:100%;-webkit-overflow-scrolling:touch;box-shadow:inset -8px 0 8px -8px var(--pf-shadow-color)}.bom-results-table-container::-webkit-scrollbar{height:10px}.bom-results-table-container::-webkit-scrollbar-track{background:var(--pf-scrollbar-track);border-radius:0 0 8px 8px}.bom-results-table-container::-webkit-scrollbar-thumb{background:var(--pf-scrollbar-thumb);border-radius:4px}.bom-results-table-container::-webkit-scrollbar-thumb:hover{background:var(--pf-scrollbar-thumb-hover)}.bom-results-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.75rem}.bom-results-table thead{background-color:var(--pf-bg-dropzone);border-bottom:2px solid var(--pf-border-default)}.bom-results-table th{padding:.5rem .625rem;text-align:left;font-weight:600;color:var(--pf-text-primary);white-space:nowrap;font-size:.75rem}.bom-results-table tbody tr{border-bottom:1px solid var(--pf-border-default);transition:background-color .2s}.bom-results-table tbody tr:hover{background-color:var(--pf-bg-dropzone)}.bom-results-table td{padding:.5rem .625rem;color:var(--pf-text-secondary);white-space:nowrap}.bom-results-table th:nth-child(1),.bom-results-table td:nth-child(1){position:sticky;left:0;background-color:var(--pf-bg-dropzone);z-index:10;min-width:45px;text-align:center}.bom-results-table tbody tr:hover td:nth-child(1){background-color:var(--pf-bg-muted)}.bom-results-table th:nth-child(2),.bom-results-table td:nth-child(2){position:sticky;left:45px;background-color:var(--pf-bg-dropzone);z-index:10;min-width:120px}.bom-results-table tbody tr:hover td:nth-child(2){background-color:var(--pf-bg-muted)}.bom-results-table thead th:nth-child(1),.bom-results-table thead th:nth-child(2){background-color:var(--pf-bg-dropzone);z-index:11}.bom-pn-cell{font-family:Monaco,Menlo,monospace;font-size:.6875rem;font-weight:600;color:var(--pf-text-primary);text-align:center}.bom-mpn-cell{font-family:Monaco,Menlo,monospace;font-size:.6875rem;font-weight:500;color:var(--pf-text-primary);max-width:150px;overflow:hidden;text-overflow:ellipsis}.bom-description-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6875rem}.bom-qty-cell{text-align:right;font-weight:500;min-width:40px}.bom-price-cell{text-align:right;font-family:Monaco,Menlo,monospace;font-size:.6875rem;min-width:80px}.bom-tier-cell{text-align:center;font-family:Monaco,Menlo,monospace;font-size:.6875rem;font-weight:500;color:var(--pf-text-secondary);min-width:50px}.bom-source-cell{text-align:center}.bom-source-badge{display:inline-block;padding:.125rem .375rem;border-radius:3px;font-size:.625rem;font-weight:600;text-transform:uppercase;white-space:nowrap}.bom-source-badge.source-tme{background-color:var(--pf-source-tme-bg);color:var(--pf-source-tme-text)}.bom-source-badge.source-digikey{background-color:var(--pf-source-digikey-bg);color:var(--pf-source-digikey-text)}.bom-source-badge.source-mouser{background-color:var(--pf-source-mouser-bg);color:var(--pf-source-mouser-text)}.bom-spn-cell{min-width:120px}.bom-spn-text{font-family:Monaco,Menlo,monospace;font-size:.6875rem;font-weight:500;color:var(--pf-text-primary)}.bom-status-stock-cell{text-align:center;min-width:95px}.bom-available-cell{text-align:right;font-family:Monaco,Menlo,monospace;font-size:.6875rem;font-weight:500;color:var(--pf-text-primary);min-width:70px}.bom-status-badge{display:inline-block;padding:.125rem .375rem;border-radius:3px;font-size:.625rem;font-weight:600;text-transform:capitalize;white-space:nowrap}.bom-status-badge.searching{background-color:var(--pf-bom-searching-bg);color:var(--pf-bom-searching-text)}.bom-status-badge.on-stock{background-color:var(--pf-bom-on-stock-bg);color:var(--pf-bom-on-stock-text)}.bom-status-badge.not-on-stock{background-color:var(--pf-bom-not-on-stock-bg);color:var(--pf-bom-not-on-stock-text)}.bom-status-badge.not-found,.bom-status-badge.error{background-color:var(--pf-bom-not-found-bg);color:var(--pf-bom-not-found-text)}.bom-status-badge.found-fulltext{background-color:var(--pf-bom-fulltext-bg);color:var(--pf-bom-fulltext-text);cursor:help}.bom-status-badge-wrapper{position:relative;display:inline-block}.bom-status-badge-wrapper:hover .bom-status-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.bom-status-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-4px);background-color:var(--pf-bg-tooltip);color:var(--pf-text-on-dark);padding:.75rem;border-radius:6px;font-size:.75rem;white-space:normal;min-width:200px;max-width:300px;z-index:100;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s,transform .2s;box-shadow:0 10px 15px -3px var(--pf-shadow-strong),0 4px 6px -2px var(--pf-shadow-color);pointer-events:none}.bom-status-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--pf-bg-tooltip)}.bom-tooltip-header{font-weight:600;margin-bottom:.5rem;font-size:.75rem;line-height:1.3}.bom-tooltip-content{display:flex;flex-direction:column;gap:.375rem}.bom-tooltip-label{font-weight:500;font-size:.6875rem;color:var(--pf-text-muted);margin-bottom:.125rem}.bom-tooltip-list{display:flex;flex-direction:column;gap:.25rem}.bom-tooltip-item{font-family:Monaco,Menlo,monospace;font-size:.6875rem;padding:.25rem .375rem;background-color:#ffffff1a;border-radius:3px;line-height:1.3}.bom-link-cell{text-align:center}.bom-link{color:var(--pf-accent-link);text-decoration:none;font-weight:500;font-size:.6875rem;transition:color .2s;white-space:nowrap}.bom-link:hover{color:var(--pf-accent-link-hover);text-decoration:underline}.bom-results-summary{display:flex;gap:2rem;padding:1.5rem;background-color:var(--pf-bg-dropzone);border-radius:8px;margin-top:2rem}.bom-summary-stat{display:flex;flex-direction:column;gap:.25rem}.bom-summary-label{font-size:.875rem;color:var(--pf-text-muted);font-weight:500}.bom-summary-value{font-size:1.5rem;font-weight:600;color:var(--pf-text-primary)}.bom-summary-found{color:var(--pf-progress-completed)}.bom-summary-not-found{color:var(--pf-status-warning)}.bom-summary-error{color:var(--pf-progress-failed)}.auth-gate{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--pf-bg-body);color:var(--pf-text-secondary)}.auth-gate-spinner{width:40px;height:40px;border:3px solid var(--pf-spinner-track);border-top-color:var(--pf-spinner-active);border-radius:50%;animation:auth-gate-spin .8s linear infinite}.auth-gate-message{margin:0;font-size:.95rem}@keyframes auth-gate-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.auth-gate-spinner{animation:none}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--pf-bg-body);color:var(--pf-text-primary)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--pf-bg-surface);border-bottom:1px solid var(--pf-border-default);padding:1rem 1.5rem}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem}.header-left{display:flex;align-items:baseline;gap:1rem}.header-right{display:flex;align-items:center;gap:.75rem}.logo{font-size:1.5rem;font-weight:600;color:var(--pf-text-heading);letter-spacing:-.025em;display:flex;align-items:center;gap:.5rem}.logo-icon{font-size:1.75rem;display:inline-flex;align-items:center;filter:drop-shadow(0 1px 2px var(--pf-shadow-color))}.subtitle{font-size:.875rem;color:var(--pf-text-muted);font-weight:400}.backend-status{display:flex;align-items:center}.status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background-color:var(--pf-bg-muted);border-radius:6px;font-size:.8125rem;font-weight:500;color:var(--pf-text-muted);transition:all .2s}.status-dot{width:6px;height:6px;border-radius:50%;background-color:var(--pf-text-muted);transition:background-color .2s}.status-indicator.online{background-color:var(--pf-status-success-bg);color:var(--pf-status-success-text)}.status-indicator.online .status-dot{background-color:var(--pf-status-success)}.status-indicator.offline{background-color:var(--pf-status-error-bg);color:var(--pf-status-error-text)}.status-indicator.offline .status-dot{background-color:var(--pf-status-error)}.app-mode-tabs{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;gap:.5rem;background-color:var(--pf-bg-muted);border-bottom:1px solid var(--pf-border-default)}.mode-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--pf-text-muted);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s}.mode-tab:hover{color:var(--pf-text-secondary);background-color:var(--pf-bg-muted)}.mode-tab.active{color:var(--pf-accent-primary);border-bottom-color:var(--pf-accent-primary);background-color:var(--pf-bg-surface)}.mode-tab svg{flex-shrink:0}.app-main{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:2rem 1rem}.error-message{background-color:var(--pf-status-error-bg);color:var(--pf-status-error-text);padding:1rem 1.5rem;border-radius:8px;margin:1rem 0;display:flex;align-items:center;gap:.75rem;border-left:4px solid var(--pf-status-error)}.error-icon{font-size:1.5rem}.loading-message{text-align:center;padding:3rem 1rem}.spinner{width:50px;height:50px;margin:0 auto 1rem;border:4px solid var(--pf-spinner-track);border-top:4px solid var(--pf-spinner-active);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message p{color:var(--pf-text-secondary);font-size:1.1rem}.welcome-message{text-align:center;padding:3rem 1rem;max-width:800px;margin:0 auto}.welcome-message h2{font-size:2rem;color:var(--pf-text-primary);margin-bottom:1rem}.welcome-message>p{font-size:1.1rem;color:var(--pf-text-secondary)}.app-footer{background-color:var(--pf-bg-footer);color:var(--pf-text-on-dark);padding:1.5rem;text-align:center;margin-top:auto}.app-footer p{margin:0;font-size:.9rem;opacity:.9}.app-footer .warning{color:var(--pf-status-warning)}@media(max-width:768px){.app-header h1{font-size:2rem}.subtitle{font-size:1rem}.app-main{padding:1rem}.header-content{flex-direction:column;align-items:flex-start;gap:1rem}.header-right{width:100%;justify-content:space-between}}
