:root{--text:#2d2a32;--text-muted:#6b6375;--bg:#f7f6f9;--surface:#fff;--border:#e5e4e7;--accent:#7c3aed;--accent-bg:#7c3aed1a;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}.app{max-width:1800px;margin:0 auto;padding:0 24px 48px}.app-header{border-bottom:1px solid var(--border);margin-bottom:24px;padding:32px 0 24px}.app-header h1{letter-spacing:-.5px;margin:0 0 4px;font-size:32px}.app-header p{color:var(--text-muted);margin:0}.app-body{grid-template-columns:280px 1fr;align-items:start;gap:24px;display:grid}@media (width<=860px){.app-body{grid-template-columns:1fr}}.filter-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:18px;padding:20px;display:flex;position:sticky;top:24px}@media (width<=860px){.filter-panel{position:static}}.filter-panel-header{justify-content:space-between;align-items:center;display:flex}.filter-panel-header h2{margin:0;font-size:18px}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px}.link-button:hover{text-decoration:underline}.filter-field{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.filter-field select,.filter-field input[type=number],.filter-field input[type=text]{font:inherit;color:var(--text);border:1px solid var(--border);background:var(--bg);border-radius:8px;width:100%;padding:8px 10px;font-weight:400}.range-values{float:right;color:var(--text);font-weight:400}.dual-range{height:28px;position:relative}.dual-range-track,.dual-range-track-fill{border-radius:2px;height:4px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.dual-range-track{background:var(--border)}.dual-range-track-fill{background:var(--accent)}.dual-range input[type=range]{pointer-events:none;appearance:none;background:0 0;width:100%;height:100%;margin:0;position:absolute;top:0;left:0;right:0}.dual-range input[type=range]::-webkit-slider-runnable-track{-webkit-appearance:none;background:0 0}.dual-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;background:var(--accent);border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:16px;height:16px;margin-top:0;box-shadow:0 1px 3px #0000004d}.dual-range input[type=range]::-moz-range-track{background:0 0;border:none}.dual-range input[type=range]::-moz-range-thumb{pointer-events:auto;background:var(--accent);border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0000004d}.segmented-control{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.segmented-control button{background:var(--bg);color:var(--text-muted);font:inherit;cursor:pointer;border:none;border-right:1px solid var(--border);flex:1;padding:8px 4px;font-size:12px;font-weight:600}.segmented-control button:last-child{border-right:none}.segmented-control button.active{background:var(--accent);color:#fff}.result-count{color:var(--text-muted);border-top:1px solid var(--border);padding-top:14px;font-size:13px;font-weight:400}.app-main{min-width:0;overflow-x:auto}.bike-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;overflow:hidden}.bike-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px;font-size:12px}.bike-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.bike-table th.sortable:hover{color:var(--text)}.sort-indicator{width:10px;margin-left:4px;font-size:10px;display:inline-block}.bike-table td{border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:10px 14px}.bike-row{cursor:pointer}.bike-row:hover{background:var(--accent-bg)}.thumb-cell img{object-fit:cover;border-radius:6px;width:72px;height:48px;display:block}.bike-name{font-weight:600}.bike-year{color:var(--text-muted);font-size:12px}.price-cell{font-weight:600}.expand-cell{text-align:center;color:var(--text-muted);width:24px}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-hardtail{color:#92400e;background:#fef3c7}.badge-full{color:#1e40af;background:#dbeafe}.badge-air{color:#3730a3;background:#e0e7ff;margin-left:6px}.badge-coil{color:#991b1b;background:#fee2e2;margin-left:6px}.badge-electric{color:#166534;vertical-align:middle;background:#dcfce7;margin-left:8px}.bike-detail-row td{white-space:normal;background:var(--bg);padding:20px 24px}.bike-description{color:var(--text-muted);margin:0 0 16px}.detail-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (width<=700px){.detail-columns{grid-template-columns:1fr}}.detail-columns h4{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 8px;font-size:13px}.geometry-table{border-collapse:collapse;width:100%;font-size:14px}.geometry-table th{text-align:left;color:var(--text-muted);white-space:normal;border:none;width:1%;padding:6px 8px 6px 0;font-weight:600}.geometry-table td{white-space:normal;border:none;padding:6px 12px 6px 0}.components-table th{white-space:nowrap;width:auto}.rating-cell{white-space:nowrap;text-align:right}.star-rating{color:#d97706;letter-spacing:1px;white-space:nowrap;font-size:15px}.star-rating-value{color:var(--text-muted);letter-spacing:normal;margin-left:4px;font-size:12px}.status-message{text-align:center;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:40px}.status-message.error{color:#b91c1c}
