.card.svelte-fzoehp{border:1px solid #dbdcdd;border-top:4px solid var(--accent);cursor:pointer;box-shadow:none;background:#fff;border-radius:8px;flex-direction:column;gap:12px;padding:18px 20px;transition:background-color .18s,border-color .18s,transform .18s;display:flex;position:relative}.card-open.svelte-fzoehp{z-index:1;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0;position:absolute;inset:0}.card.svelte-fzoehp:hover{box-shadow:none;background:#f7f8fa;border-color:#c7c9cc;transform:translateY(-1px)}.card.svelte-fzoehp:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #1865f224}.card-open.svelte-fzoehp:focus{outline:none}.card.selected.svelte-fzoehp{border-color:#1865f2;box-shadow:0 0 0 2px #1865f238}.compare-checkbox.svelte-fzoehp{cursor:pointer;color:#9ca3af;z-index:10;opacity:1;background:#fff;border:2px solid #d1d5db;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.compare-checkbox.checked.svelte-fzoehp{opacity:1;color:#fff;background:#1865f2;border-color:#1865f2}.compare-checkbox.svelte-fzoehp:hover{color:#1865f2;border-color:#1865f2}.compare-checkbox.checked.svelte-fzoehp:hover{color:#fff;background:#1b50b3}.card-header.svelte-fzoehp{justify-content:space-between;align-items:center;gap:8px;display:flex}.category.svelte-fzoehp{text-transform:uppercase;letter-spacing:.6px;color:var(--cat-color,var(--accent));background:#fff;border:1px solid #dbdcdd;border-radius:6px;align-items:center;gap:5px;padding:5px 10px;font-size:10px;font-weight:700;display:inline-flex}.category-icon.svelte-fzoehp{font-size:12px;line-height:1}.header-badges.svelte-fzoehp{align-items:center;gap:6px;display:flex}.status-badge.svelte-fzoehp{background:var(--status-bg,#f1f5f9);color:var(--status-color,#64748b);border-radius:6px;justify-content:center;align-items:center;padding:4px 6px;font-size:12px;line-height:1;display:inline-flex}.year.svelte-fzoehp{color:#6b7280;background:#f7f8fa;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:600}.name.svelte-fzoehp{color:#1f2937;margin:0;font-size:19px;font-weight:700;line-height:1.35}.tagline.svelte-fzoehp{color:#6b7280;margin:0;font-size:13px;line-height:1.55}.quick-stats.svelte-fzoehp{flex-wrap:wrap;gap:10px;display:flex}.stat-badge.svelte-fzoehp{background:#f7f8fa;border:1px solid #dbdcdd;border-radius:6px;align-items:center;gap:5px;padding:4px 8px;display:inline-flex}.stat-badge.svelte-fzoehp svg:where(.svelte-fzoehp){flex-shrink:0}.stat-text.svelte-fzoehp{color:#4b5563;font-size:11px;font-weight:600}.technologies.svelte-fzoehp{flex-wrap:wrap;gap:6px;display:flex}.tech-tag.svelte-fzoehp{color:var(--tag-color,#4b5563);background:#f7f8fa;border:1px solid #dbdcdd;border-radius:6px;align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:500;display:inline-flex}.tech-tag.svelte-fzoehp svg:where(.svelte-fzoehp){flex-shrink:0}.card-footer.svelte-fzoehp{margin-top:auto;padding-top:12px}.view-details.svelte-fzoehp{color:var(--accent);align-items:center;gap:6px;font-size:13px;font-weight:600;transition:gap .2s;display:inline-flex}.card.svelte-fzoehp:hover .view-details:where(.svelte-fzoehp){gap:10px}.grid.svelte-1wquk3r{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;display:grid}.empty.svelte-1wquk3r{text-align:center;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;padding:80px 20px;display:flex}.empty-icon.svelte-1wquk3r{border:2px solid #64748b;border-radius:50%;width:42px;height:42px;margin-bottom:16px;position:relative}.empty-icon.svelte-1wquk3r:after{content:"";transform-origin:0;background:#64748b;width:18px;height:3px;position:absolute;top:33px;left:31px;transform:rotate(45deg)}.empty.svelte-1wquk3r h2:where(.svelte-1wquk3r){color:#21242c;margin:0 0 8px;font-size:18px}.empty.svelte-1wquk3r p:where(.svelte-1wquk3r){color:#475774;margin:0;font-size:14px}.empty.svelte-1wquk3r button:where(.svelte-1wquk3r){color:#21242c;cursor:pointer;font:inherit;background:#fff;border:1px solid #c7c9cc;border-radius:6px;min-height:38px;margin-top:6px;padding:.45rem .8rem;font-size:14px;font-weight:600}.empty.svelte-1wquk3r button:where(.svelte-1wquk3r):hover,.empty.svelte-1wquk3r button:where(.svelte-1wquk3r):focus-visible{background:#edf3fe;border-color:#1865f2;outline:none}@media (width<=768px){.grid.svelte-1wquk3r{grid-template-columns:1fr;gap:16px}}.search-filter.svelte-1gay34q{gap:16px;margin-bottom:28px;display:flex}.sr-only.svelte-1gay34q{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.search-wrapper.svelte-1gay34q{flex:1;align-items:center;display:flex;position:relative}.search-icon.svelte-1gay34q{color:#6b7280;pointer-events:none;position:absolute;left:16px}input.svelte-1gay34q{color:#1f2937;width:100%;box-shadow:none;background:#fff;border:1px solid #dbdcdd;border-radius:8px;outline:none;padding:14px 76px 14px 44px;font-size:14px;transition:border-color .18s,box-shadow .18s}input.svelte-1gay34q::placeholder{color:#9ca3af}input.svelte-1gay34q:focus{background:#fff;border-color:#1865f2;box-shadow:0 0 0 3px #1865f224}.clear-btn.svelte-1gay34q{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex;position:absolute;right:12px}.clear-btn.svelte-1gay34q:hover{color:#1f2937;background:#f3f4f6}.help-btn.svelte-1gay34q{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex;position:absolute;right:44px}.help-btn.svelte-1gay34q:hover{color:#1865f2;background:#edf3fe}.search-help.svelte-1gay34q{box-shadow:none;z-index:100;background:#fff;border:1px solid #dbdcdd;border-radius:8px;margin-top:8px;position:absolute;top:100%;left:0;right:0;overflow:hidden}.help-header.svelte-1gay34q{background:#f7f8fa;border-bottom:1px solid #dbdcdd;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.help-header.svelte-1gay34q strong:where(.svelte-1gay34q){color:#1f2937;font-size:13px}.help-hint.svelte-1gay34q{color:#6b7280;font-size:11px}.help-examples.svelte-1gay34q{flex-direction:column;gap:4px;padding:8px;display:flex}.example-btn.svelte-1gay34q{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;transition:background .2s;display:flex}.example-btn.svelte-1gay34q:hover{background:#f0f9ff}.example-btn.svelte-1gay34q code:where(.svelte-1gay34q){color:#1b50b3;white-space:nowrap;background:#edf3fe;border-radius:4px;padding:4px 8px;font-family:SF Mono,Monaco,monospace;font-size:12px}.example-btn.svelte-1gay34q span:where(.svelte-1gay34q){color:#6b7280;font-size:12px}.filter-wrapper.svelte-1gay34q{align-items:center;display:flex;position:relative}.filter-wrapper.svelte-1gay34q label:where(.svelte-1gay34q){color:#6b7280;pointer-events:none;z-index:1;align-items:center;display:flex;position:absolute;left:14px}select.svelte-1gay34q{appearance:none;color:#1f2937;cursor:pointer;min-width:200px;box-shadow:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center no-repeat;border:1px solid #dbdcdd;border-radius:8px;outline:none;padding:14px 40px 14px 44px;font-size:14px;font-weight:500;transition:border-color .18s,box-shadow .18s,background-color .18s}select.svelte-1gay34q:hover{background-color:#fafafa;border-color:#d1d5db}select.svelte-1gay34q:focus{border-color:#1865f2;box-shadow:0 0 0 3px #1865f224}select.svelte-1gay34q option:where(.svelte-1gay34q){color:#1f2937;background:#fff;padding:12px}@media (width<=768px){.search-filter.svelte-1gay34q{flex-direction:column}select.svelte-1gay34q{width:100%}}.filter-panel.svelte-x10slk{box-shadow:none;background:#fff;border:1px solid #dbdcdd;border-radius:8px;margin-bottom:24px;overflow:hidden}.filter-header.svelte-x10slk{background:#f9fafb;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.collapsed.svelte-x10slk .filter-header:where(.svelte-x10slk){border-bottom:none}.toggle-btn.svelte-x10slk{cursor:pointer;color:#1f2937;background:0 0;border:none;align-items:center;gap:10px;padding:0;font-size:14px;font-weight:600;display:flex}.toggle-btn.svelte-x10slk svg:where(.svelte-x10slk){color:#6b7280;transition:transform .2s}.toggle-btn.svelte-x10slk svg.rotated:where(.svelte-x10slk){transform:rotate(-90deg)}.header-title.svelte-x10slk{font-weight:600}.filter-count.svelte-x10slk{color:#fff;background:#1865f2;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.clear-all.svelte-x10slk{color:#dc2626;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:13px;font-weight:500;transition:background .2s}.clear-all.svelte-x10slk:hover{background:#fee2e2}.filter-content.svelte-x10slk{flex-direction:column;gap:20px;padding:18px;display:flex}.filter-section.svelte-x10slk{flex-direction:column;gap:10px;display:flex}.section-label.svelte-x10slk{color:#6b7280;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.filter-chips.svelte-x10slk{flex-wrap:wrap;gap:8px;display:flex}.filter-chip.svelte-x10slk{color:#4b5563;cursor:pointer;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:border-color .18s,box-shadow .18s;display:inline-flex}.filter-chip.svelte-x10slk:hover{background:#e5e7eb;border-color:#d1d5db}.filter-chip.active.svelte-x10slk{color:#fff;background:#1865f2;border-color:#1865f2}.status-chip.svelte-x10slk .status-dot:where(.svelte-x10slk){background:var(--status-color,#6b7280);border-radius:50%;width:8px;height:8px}.status-chip.active.svelte-x10slk .status-dot:where(.svelte-x10slk){box-shadow:0 0 0 2px var(--status-color);background:#fff}.icon-chip.svelte-x10slk svg:where(.svelte-x10slk){flex-shrink:0}.icon-chip.active.svelte-x10slk svg:where(.svelte-x10slk) path:where(.svelte-x10slk){fill:#fff}.sort-section.svelte-x10slk{border-bottom:1px solid #e5e7eb;padding-bottom:16px}.sort-controls.svelte-x10slk{gap:8px;display:flex}.sort-controls.svelte-x10slk select:where(.svelte-x10slk){color:#1f2937;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:8px;outline:none;flex:1;padding:10px 14px;font-size:14px}.sort-controls.svelte-x10slk select:where(.svelte-x10slk):focus{border-color:#1865f2;box-shadow:0 0 0 2px #1865f224}.sort-order-btn.svelte-x10slk{cursor:pointer;color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.sort-order-btn.svelte-x10slk:hover{color:#1f2937;background:#f3f4f6}.sort-order-btn.svelte-x10slk svg.desc:where(.svelte-x10slk){transform:rotate(180deg)}.year-range.svelte-x10slk{flex-direction:column;gap:10px;display:flex}.year-inputs.svelte-x10slk{align-items:center;gap:10px;display:flex}.year-inputs.svelte-x10slk input:where(.svelte-x10slk){color:#1f2937;background:#fff;border:1px solid #e5e7eb;border-radius:8px;outline:none;width:90px;padding:8px 12px;font-size:14px}.year-inputs.svelte-x10slk input:where(.svelte-x10slk):focus{border-color:#1865f2;box-shadow:0 0 0 2px #1865f224}.year-separator.svelte-x10slk{color:#6b7280;font-size:13px}.year-presets.svelte-x10slk{gap:8px;display:flex}.preset-btn.svelte-x10slk{color:#4b5563;cursor:pointer;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s}.preset-btn.svelte-x10slk:hover{background:#e5e7eb}.preset-btn.active.svelte-x10slk{color:#fff;background:#1865f2;border-color:#1865f2}.preset-btn.clear.svelte-x10slk{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.preset-btn.clear.svelte-x10slk:hover{background:#fee2e2}@media (width<=768px){.filter-content.svelte-x10slk{padding:14px}.filter-chip.svelte-x10slk{padding:6px 12px;font-size:12px}.year-inputs.svelte-x10slk{flex-wrap:wrap}.year-inputs.svelte-x10slk input:where(.svelte-x10slk){flex:1;min-width:70px}}.compare-bar.svelte-1wdlyiw{box-shadow:none;z-index:100;background:#fff;border-top:1px solid #e5e7eb;animation:.3s ease-out svelte-1wdlyiw-slideUp;position:fixed;bottom:0;left:0;right:0}@keyframes svelte-1wdlyiw-slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.compare-bar-content.svelte-1wdlyiw{justify-content:space-between;align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.selected-products.svelte-1wdlyiw{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.selection-count.svelte-1wdlyiw{color:#6b7280;white-space:nowrap;font-size:13px;font-weight:600}.product-chips.svelte-1wdlyiw{flex-wrap:wrap;flex:1;gap:10px;min-width:0;display:flex}.product-chip.svelte-1wdlyiw{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:8px;max-width:180px;padding:6px 10px 6px 6px;display:flex}.product-chip.svelte-1wdlyiw img:where(.svelte-1wdlyiw){object-fit:cover;background:#fff;border-radius:6px;width:28px;height:28px}.chip-icon.svelte-1wdlyiw{background:var(--icon-bg,#f3f4f6);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.chip-emoji.svelte-1wdlyiw{font-size:14px;line-height:1}.chip-name.svelte-1wdlyiw{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:500;overflow:hidden}.chip-remove.svelte-1wdlyiw{cursor:pointer;color:#9ca3af;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;transition:all .2s;display:flex}.chip-remove.svelte-1wdlyiw:hover{color:#dc2626;background:#e5e7eb}.compare-actions.svelte-1wdlyiw{flex-shrink:0;gap:12px;display:flex}.clear-btn.svelte-1wdlyiw{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #e5e7eb;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:500;transition:all .2s}.clear-btn.svelte-1wdlyiw:hover{color:#1f2937;background:#f3f4f6}.compare-btn.svelte-1wdlyiw{color:#fff;cursor:pointer;background:#003a70;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.compare-btn.svelte-1wdlyiw:hover:not(:disabled){background:#002855}.compare-btn.svelte-1wdlyiw:disabled{cursor:not-allowed;background:#9ca3af}@media (width<=768px){.compare-bar-content.svelte-1wdlyiw{flex-direction:column;gap:16px;padding:14px 16px}.selected-products.svelte-1wdlyiw{flex-direction:column;align-items:flex-start;gap:10px;width:100%}.product-chips.svelte-1wdlyiw{width:100%}.product-chip.svelte-1wdlyiw{max-width:140px}.compare-actions.svelte-1wdlyiw{width:100%}.clear-btn.svelte-1wdlyiw,.compare-btn.svelte-1wdlyiw{flex:1;justify-content:center}}body{color:#21242c;background:#fff;margin:0}.app.svelte-1n46o8q{--product-page-bg:var(--flat-surface,#fff);--product-surface:var(--flat-surface,#fff);--product-surface-muted:var(--flat-surface-muted,#f7f8fa);--product-border:var(--flat-border,#dbdcdd);--product-border-strong:var(--flat-border-strong,#c7c9cc);--product-text:var(--flat-text,#21242c);--product-text-muted:var(--flat-text-muted,#475774);--product-text-subtle:var(--flat-text-subtle,#646b7a);--product-accent:var(--flat-accent,#1865f2);--product-accent-soft:var(--learn-blue-soft,#edf3fe);--product-control-bg:var(--flat-control-bg,#f1f3f5);--product-control-hover:var(--flat-control-hover,#e7ebf0);--product-control-border:var(--flat-border-strong,#cfd4da);--product-radius-sm:var(--flat-radius-md,6px);--product-radius-md:var(--flat-radius-lg,8px);--product-info-accent:#546e7a;background:var(--product-page-bg);flex-direction:column;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.header.svelte-1n46o8q{z-index:100;flex:none}.iot-tool-nav-logo.svelte-1n46o8q{gap:8px;text-decoration:none}.subtitle.svelte-1n46o8q{color:var(--product-text-muted);margin:10px auto 0;font-size:13px}.main.svelte-1n46o8q{background:var(--product-page-bg);flex:1;padding:24px 24px 120px}.offline-banner.svelte-1n46o8q{border:1px solid var(--product-border);border-left:4px solid var(--product-info-accent);border-radius:var(--product-radius-md);background:var(--product-surface-muted);width:min(920px,100%);color:var(--product-text-muted);align-items:center;gap:10px;margin:0 auto 16px;padding:12px 14px;display:flex}.offline-banner.svelte-1n46o8q strong:where(.svelte-1n46o8q){color:var(--product-text);flex:none;font-size:13px}.offline-banner.svelte-1n46o8q span:where(.svelte-1n46o8q){font-size:13px;line-height:1.45}.lazy-modal-backdrop.svelte-1n46o8q{z-index:2000;background:#21242c61;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lazy-modal-status.svelte-1n46o8q{border:1px solid var(--product-control-border);border-radius:var(--product-radius-md);background:var(--product-surface);min-width:min(260px,100%);color:var(--product-text);text-align:center;padding:16px 18px;font-weight:800}.modal-error-state.svelte-1n46o8q{border:1px solid var(--product-border);border-radius:var(--product-radius-md);background:var(--product-surface);width:min(460px,100%);color:var(--product-text);text-align:center;padding:22px}.modal-error-state.svelte-1n46o8q h2:where(.svelte-1n46o8q){color:#be123c;margin:0 0 10px;font-size:20px}.modal-error-state.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--product-text-muted);margin:0;line-height:1.5}.modal-error-actions.svelte-1n46o8q{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.modal-error-actions.svelte-1n46o8q button:where(.svelte-1n46o8q){border:1px solid var(--product-border-strong);border-radius:var(--product-radius-sm);background:var(--product-surface);min-height:38px;color:var(--product-text);cursor:pointer;font:inherit;padding:.45rem .9rem;font-weight:700}.modal-error-actions.svelte-1n46o8q button:where(.svelte-1n46o8q):first-child{border-color:var(--product-accent);background:var(--product-accent);color:var(--product-surface)}.content.svelte-1n46o8q{max-width:1400px;margin:0 auto}.info-banner.svelte-1n46o8q{background:var(--product-surface);border:1px solid var(--product-border);border-left:4px solid var(--product-info-accent);border-radius:var(--product-radius-md);box-shadow:none;gap:16px;margin-bottom:22px;padding:16px 18px;display:flex}.info-icon.svelte-1n46o8q{color:var(--product-info-accent);flex-shrink:0;align-items:flex-start;display:flex}.info-text.svelte-1n46o8q{font-size:14px;line-height:1.6}.info-text.svelte-1n46o8q strong:where(.svelte-1n46o8q){color:var(--product-text);margin-bottom:6px;font-size:15px;display:block}.info-text.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--product-text-muted);margin:0}.info-text.svelte-1n46o8q p:where(.svelte-1n46o8q) strong:where(.svelte-1n46o8q){font-size:inherit;margin:0;display:inline}.results-toolbar.svelte-1n46o8q{background:var(--product-surface);border:1px solid var(--product-border);border-radius:var(--product-radius-md);justify-content:space-between;align-items:center;margin:0 0 18px;padding:12px 16px;display:flex}.results-toolbar.svelte-1n46o8q>div:where(.svelte-1n46o8q){color:var(--product-text-muted);flex-wrap:wrap;align-items:center;gap:6px;line-height:1.4;display:flex}.results-toolbar.svelte-1n46o8q strong:where(.svelte-1n46o8q){color:var(--product-text)}.toolbar-context.svelte-1n46o8q{border-left:1px solid var(--product-border);color:var(--product-text-subtle);margin-left:4px;padding-left:10px}.results-toolbar.svelte-1n46o8q button:where(.svelte-1n46o8q){background:var(--product-surface);border:1px solid var(--product-border-strong);border-radius:var(--product-radius-sm);color:var(--product-text);cursor:pointer;font:inherit;min-height:36px;padding:.35rem .7rem;font-size:13px;font-weight:600}.results-toolbar.svelte-1n46o8q button:where(.svelte-1n46o8q):hover,.results-toolbar.svelte-1n46o8q button:where(.svelte-1n46o8q):focus-visible{background:var(--product-accent-soft);border-color:var(--product-accent);outline:none}.loading.svelte-1n46o8q{min-height:420px;color:var(--product-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex}.error.svelte-1n46o8q{min-height:400px;color:var(--product-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.app-state.svelte-1n46o8q{border:1px solid var(--product-border);border-radius:var(--product-radius-md);background:var(--product-surface);text-align:center;max-width:680px;margin:24px auto;padding:24px}.app-loading-state.svelte-1n46o8q{border:1px solid var(--product-border);border-radius:var(--product-radius-md);background:var(--product-surface);width:min(860px,100%);margin:0 auto;padding:28px}.loading-copy.svelte-1n46o8q{text-align:center;max-width:520px}.loading-kicker.svelte-1n46o8q{color:var(--product-accent);letter-spacing:0;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800;display:inline-block}.loading.svelte-1n46o8q h2:where(.svelte-1n46o8q){color:var(--product-text);margin:0;font-size:22px;line-height:1.2}.loading.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--product-text-muted);margin:8px 0 0;line-height:1.5}.loading-skeleton-grid.svelte-1n46o8q{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;display:grid}.loading-skeleton-card.svelte-1n46o8q{border:1px solid var(--product-border);border-radius:var(--product-radius-md);background:var(--product-surface-muted);min-height:132px;padding:16px}.skeleton-line.svelte-1n46o8q,.skeleton-meta-row.svelte-1n46o8q span:where(.svelte-1n46o8q){background:var(--product-control-hover);border-radius:999px;height:12px;display:block}.skeleton-line.svelte-1n46o8q{width:100%;margin-bottom:12px}.skeleton-line-accent.svelte-1n46o8q{background:var(--product-accent-soft);width:38%}.skeleton-line-medium.svelte-1n46o8q{width:68%}.skeleton-meta-row.svelte-1n46o8q{gap:8px;margin-top:18px;display:flex}.skeleton-meta-row.svelte-1n46o8q span:where(.svelte-1n46o8q){width:76px;height:22px}.error.svelte-1n46o8q h2:where(.svelte-1n46o8q){color:#be123c;margin:0}.error.svelte-1n46o8q p:where(.svelte-1n46o8q){color:#6c757d}.error.svelte-1n46o8q button:where(.svelte-1n46o8q){color:#fff;cursor:pointer;box-shadow:none;background:#1865f2;border:none;border-radius:8px;padding:12px 28px;font-weight:600;transition:background-color .18s}.error.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:#1b50b3}@media (width<=768px){.iot-tool-hero.svelte-1n46o8q{padding:18px 16px}.iot-tool-title.svelte-1n46o8q{font-size:1.6rem}.iot-tool-meta-row.svelte-1n46o8q{margin-top:12px}.iot-tool-switcher.svelte-1n46o8q{gap:6px;margin-top:14px}.iot-tool-switcher.svelte-1n46o8q a:where(.svelte-1n46o8q){min-height:34px;padding:7px 9px;font-size:.78rem}.main.svelte-1n46o8q{padding:18px 16px}.offline-banner.svelte-1n46o8q{flex-direction:column;align-items:flex-start;gap:4px}.app-loading-state.svelte-1n46o8q{padding:22px}.loading-skeleton-grid.svelte-1n46o8q{grid-template-columns:1fr}.info-banner.svelte-1n46o8q{gap:10px;padding:14px}.info-icon.svelte-1n46o8q{padding-top:1px}.info-text.svelte-1n46o8q{font-size:13px;line-height:1.45}.info-text.svelte-1n46o8q strong:where(.svelte-1n46o8q){margin-bottom:4px;font-size:14px}.results-toolbar.svelte-1n46o8q{flex-direction:column;align-items:stretch;gap:10px}.results-toolbar.svelte-1n46o8q button:where(.svelte-1n46o8q){width:100%}}:root{--iot-tool-bg:var(--flat-surface,#fff);--iot-tool-surface:var(--flat-surface,#fff);--iot-tool-surface-hover:var(--flat-surface-hover,#f7f8fa);--iot-tool-border:var(--flat-border,#dbdcdd);--iot-tool-border-strong:var(--flat-border-strong,#c7c9cc);--iot-tool-text:var(--flat-text,#21242c);--iot-tool-muted:var(--flat-text-muted,#475774);--iot-tool-subtle:var(--flat-text-subtle,#646b7a);--iot-tool-accent:var(--flat-accent,#1865f2);--iot-tool-control-bg:var(--flat-control-bg,#f1f3f5);--iot-tool-control-hover:var(--flat-control-hover,#e7ebf0);--iot-tool-control-border:var(--flat-border-strong,#cfd4da);--iot-tool-focus-ring:color-mix(in srgb, var(--iot-tool-accent) 28%, transparent);--iot-tool-radius-sm:var(--flat-radius-md,6px);--iot-tool-radius-md:var(--flat-radius-lg,8px);--iot-tool-warning-bg:#fff3bf;--iot-tool-warning-border:#e2b400;--iot-tool-warning-text:#5c4300;--iot-tool-footer-bg:#2b3038;--iot-tool-footer-text:#d8dde6;--iot-tool-width:1120px;--iot-tool-wide:1400px}.iot-tool-page{background:var(--iot-tool-bg);min-height:100vh;color:var(--iot-tool-text)}.iot-tool-navbar{z-index:1000;border-bottom:1px solid var(--iot-tool-border);background:color-mix(in srgb, var(--iot-tool-surface) 96%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;min-height:56px;padding:10px 28px;display:grid;position:sticky;top:0}.iot-tool-nav-logo{color:var(--iot-tool-accent);align-items:center;gap:8px;font-weight:800;text-decoration:none;display:inline-flex}.iot-tool-nav-logo img{width:auto;height:34px;display:block}.iot-tool-nav-toggle{border:1px solid var(--iot-tool-border);border-radius:var(--iot-tool-radius-sm);background:var(--iot-tool-surface);width:38px;height:38px;color:var(--iot-tool-text);cursor:pointer;justify-content:center;align-items:center;display:none}.iot-tool-nav-toggle:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-surface-hover)}.iot-tool-nav-toggle:focus-visible{outline:3px solid var(--iot-tool-focus-ring);outline-offset:2px}.iot-tool-nav-toggle-lines,.iot-tool-nav-toggle-lines:before,.iot-tool-nav-toggle-lines:after{content:"";background:currentColor;border-radius:2px;width:18px;height:2px;display:block}.iot-tool-nav-toggle-lines{position:relative}.iot-tool-nav-toggle-lines:before,.iot-tool-nav-toggle-lines:after{position:absolute;left:0}.iot-tool-nav-toggle-lines:before{top:-6px}.iot-tool-nav-toggle-lines:after{top:6px}.iot-tool-logo-mark{background:var(--iot-tool-surface-hover);border:1px solid var(--iot-tool-border);border-radius:var(--iot-tool-radius-sm);color:var(--iot-tool-text);flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.iot-tool-nav-center{justify-content:center;align-items:center;gap:22px;min-width:0;display:flex}.iot-tool-nav-center a,.iot-tool-nav-right a{color:var(--iot-tool-muted);white-space:nowrap;font-size:.86rem;font-weight:700;text-decoration:none}.iot-tool-nav-center a:hover,.iot-tool-nav-center a.iot-tool-nav-active,.iot-tool-nav-right a:hover{color:var(--iot-tool-accent)}.iot-tool-nav-right{justify-content:flex-end;align-items:center;gap:10px;display:flex}.iot-tool-nav-login-btn{border:1px solid var(--iot-tool-control-border);border-radius:var(--iot-tool-radius-sm);background:var(--iot-tool-control-bg);min-height:34px;color:var(--iot-tool-text);font:inherit;cursor:pointer;padding:8px 16px;font-size:.84rem;font-weight:800}.iot-tool-nav-login-btn:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-control-hover)}.iot-tool-hero{border-bottom:1px solid var(--iot-tool-border);background:var(--iot-tool-surface);text-align:center;padding:28px 24px 26px}.iot-tool-hero-inner{max-width:var(--iot-tool-width);margin:0 auto}.iot-tool-hero--wide .iot-tool-hero-inner{max-width:var(--iot-tool-wide)}.iot-tool-kicker{border-left:3px solid var(--iot-tool-accent);width:fit-content;color:var(--iot-tool-accent);letter-spacing:0;text-transform:uppercase;align-items:center;margin-bottom:8px;padding-left:9px;font-size:.72rem;font-weight:800;line-height:1.2;display:inline-flex}.iot-tool-title{color:var(--iot-tool-text);margin:0;font-size:2.1rem;font-weight:800;line-height:1.15}.iot-tool-subtitle{max-width:720px;color:var(--iot-tool-muted);margin:10px auto 0;font-size:1rem;line-height:1.55}.iot-tool-meta-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:16px;display:flex}.iot-tool-pill{border:1px solid var(--iot-tool-border);background:var(--iot-tool-surface-hover);min-height:28px;color:var(--iot-tool-muted);border-radius:999px;align-items:center;padding:6px 10px;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.iot-tool-status-tag{border:1px solid var(--iot-tool-warning-border);background:var(--iot-tool-warning-bg);min-height:24px;color:var(--iot-tool-warning-text);text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.iot-tool-switcher{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.iot-tool-switcher a{border:1px solid var(--iot-tool-border);border-left:3px solid var(--tool-accent,var(--iot-tool-accent));border-radius:var(--iot-tool-radius-sm);background:var(--iot-tool-surface);min-height:36px;color:var(--iot-tool-text);align-items:center;padding:8px 13px;font-size:.86rem;font-weight:800;text-decoration:none;display:inline-flex}.iot-tool-switcher a:hover,.iot-tool-switcher a.iot-tool-switcher-active{border-color:var(--iot-tool-border-strong);border-left-color:var(--tool-accent,var(--iot-tool-accent));background:var(--iot-tool-surface-hover);color:var(--tool-accent,var(--iot-tool-accent))}.iot-tool-panel,.iot-tool-card{border:1px solid var(--iot-tool-border);border-radius:var(--iot-tool-radius-md);background:var(--iot-tool-surface);box-shadow:none}.iot-tool-card:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-surface-hover)}.iot-tool-button-primary,.iot-tool-button-secondary{border-radius:var(--iot-tool-radius-sm);justify-content:center;align-items:center;min-height:36px;padding:8px 14px;font-size:.88rem;font-weight:800;text-decoration:none;display:inline-flex}.iot-tool-button-primary{border:1px solid var(--iot-tool-accent);background:var(--iot-tool-accent);color:var(--iot-tool-surface)}.iot-tool-button-secondary{border:1px solid var(--iot-tool-control-border);background:var(--iot-tool-control-bg);color:var(--iot-tool-text)}.iot-tool-button-secondary:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-control-hover)}.iot-tool-footer{border-top:1px solid var(--iot-tool-border);background:var(--iot-tool-footer-bg);color:var(--iot-tool-footer-text);margin-top:auto}.iot-tool-footer-inner{max-width:var(--iot-tool-wide);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin:0 auto;padding:28px 24px;display:flex}.iot-tool-footer a{color:var(--iot-tool-footer-text);text-decoration:none}.iot-tool-footer a:hover{color:var(--iot-tool-surface)}@media (width<=760px){.iot-tool-navbar{grid-template-columns:auto auto;gap:10px;padding:8px 12px}.iot-tool-nav-logo{min-width:0}.iot-tool-nav-toggle{justify-self:end;display:inline-flex}.iot-tool-nav-center,.iot-tool-nav-right{display:none}.iot-tool-navbar[data-nav-open=true] .iot-tool-nav-center{flex-direction:column;grid-column:1/-1;justify-content:flex-start;align-items:stretch;gap:4px;padding:8px 0 0;display:flex;overflow:visible}.iot-tool-nav-center a{border-radius:var(--iot-tool-radius-sm);border:1px solid #0000;align-items:center;min-height:36px;padding:0 10px;font-size:.78rem;display:flex}.iot-tool-nav-center a:hover,.iot-tool-nav-center a:focus-visible,.iot-tool-nav-center a.iot-tool-nav-active{border-color:var(--iot-tool-border);background:var(--iot-tool-surface-hover)}.iot-tool-navbar[data-nav-open=true] .iot-tool-nav-right{grid-column:1/-1;justify-content:stretch;padding-top:4px;display:flex}.iot-tool-nav-logo img{height:28px}.iot-tool-logo-mark{width:28px;height:28px}.iot-tool-nav-login-btn{width:100%;min-height:30px;padding:6px 12px;font-size:.78rem}.iot-tool-hero{padding:22px 16px}.iot-tool-title{font-size:1.65rem}.iot-tool-subtitle{font-size:.92rem}.iot-tool-switcher{flex-wrap:wrap;justify-content:center;padding-bottom:0;overflow-x:visible}.iot-tool-switcher a{white-space:nowrap}}
