:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: #333333;--text-secondary: #666666;--border-color: #dddddd;--accent-color: #4CAF50}@media (prefers-color-scheme: dark){:root{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--text-primary: #ffffff;--text-secondary: #cccccc;--border-color: #404040;--accent-color: #66BB6A}}html,body{margin:0;padding:0;width:100%;min-height:100vh}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}#app{width:100%;min-height:100vh;display:flex;flex-direction:column}a,.green{text-decoration:none;color:#00bd7e;transition:.4s;padding:3px}@media (hover: hover){a:hover{background-color:#00bd7e33}}.gear-visualization[data-v-f79614e3]{background:var(--bg-secondary);border-radius:0;padding:1rem;box-shadow:0 4px 6px #0000004d;border:none;width:100%;box-sizing:border-box;overflow:hidden;color-scheme:dark;position:relative;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.gear-visualization.fullscreen[data-v-f79614e3]{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;z-index:9999;padding:0;margin:0;display:flex;flex-direction:column}.fullscreen-toggle[data-v-f79614e3]{position:absolute;top:1rem;right:1rem;z-index:10;background:var(--accent-color);color:var(--bg-primary);border:none;border-radius:4px;padding:.5rem 1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.fullscreen-toggle[data-v-f79614e3]:hover{background-color:var(--accent-color-hover, #0056b3)}.zoom-controls[data-v-f79614e3]{position:absolute;top:1rem;left:1rem;z-index:10;display:flex;align-items:center;gap:.5rem;background:var(--bg-primary);padding:.5rem;border-radius:4px;box-shadow:0 2px 4px #0003}.zoom-button[data-v-f79614e3]{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:var(--accent-color);color:var(--bg-primary);border:none;border-radius:4px;font-size:1.2rem;font-weight:700;cursor:pointer;transition:background-color .2s}.zoom-button[data-v-f79614e3]:hover{background-color:var(--accent-color-hover, #0056b3)}.zoom-level[data-v-f79614e3]{font-size:.9rem;color:var(--text-primary);min-width:3.5rem;text-align:center}.reset-button[data-v-f79614e3]{background:var(--bg-secondary);color:var(--text-primary);border:none;border-radius:4px;padding:.25rem .5rem;font-size:.8rem;cursor:pointer;transition:background-color .2s}.reset-button[data-v-f79614e3]:hover{background-color:var(--border-color)}.fullscreen-instructions[data-v-f79614e3]{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background:var(--bg-primary);color:var(--text-secondary);padding:.5rem 1rem;border-radius:4px;font-size:.8rem;box-shadow:0 2px 4px #0003;z-index:10;text-align:center;max-width:90%}.chart-container[data-v-f79614e3]{width:100%;max-width:100%;margin:0 auto;overflow-x:auto;overflow-y:visible;flex:1}.fullscreen .chart-container[data-v-f79614e3]{overflow:hidden;cursor:grab;margin:0;padding:0}.fullscreen .chart-container[data-v-f79614e3]:active{cursor:grabbing}.gear-chart[data-v-f79614e3]{width:100%;height:auto;min-width:800px;max-width:100%;display:block}.fullscreen .gear-chart[data-v-f79614e3]{width:100%;height:100%;max-height:100vh;object-fit:contain;margin:0;padding:0}@media (max-width: 800px){.gear-visualization[data-v-f79614e3]{padding:1rem}.gear-visualization.fullscreen[data-v-f79614e3]{position:fixed;top:0;left:0;width:100%;height:100%;max-width:100vw;max-height:100vh;overflow:hidden;padding:0;margin:0;z-index:9999}.fullscreen .chart-container[data-v-f79614e3]{width:100%;height:100%;overflow:hidden}.fullscreen-toggle[data-v-f79614e3]{padding:.5rem;min-width:44px;min-height:44px;top:.5rem;right:.5rem}.zoom-button[data-v-f79614e3]{width:1.5rem;height:1.5rem;font-size:1rem}.chart-container[data-v-f79614e3]{margin:0}.fullscreen-instructions[data-v-f79614e3]{font-size:.7rem;padding:.25rem .5rem}.zoom-controls[data-v-f79614e3]{gap:.25rem}}.grid-line[data-v-f79614e3]{stroke:var(--border-color);stroke-width:1;opacity:.2}.base-line[data-v-f79614e3]{stroke:var(--border-color);stroke-width:1}.tick-line[data-v-f79614e3]{stroke:var(--text-secondary);stroke-width:1}.tick-label[data-v-f79614e3]{font-size:9.6px;fill:var(--text-primary);font-weight:500}.tick-label-bg[data-v-f79614e3]{fill:var(--bg-secondary);opacity:.9}.ratio-label.internal-ratio[data-v-f79614e3]{font-size:10px;fill:var(--text-secondary)}rect.ratio-label-bg[data-v-f79614e3]{fill:var(--bg-secondary);rx:2px;ry:2px}.gear-line[data-v-f79614e3]{stroke-width:2}.gear-line.disabled[data-v-f79614e3]{stroke-dasharray:4;opacity:.4}.chart-title[data-v-f79614e3]{font-size:18px;font-weight:600;fill:var(--text-primary)}.legend[data-v-f79614e3]{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.legend-separator[data-v-f79614e3]{width:1px;height:20px;background:var(--border-color)}.legend-item[data-v-f79614e3]{display:flex;align-items:center;gap:.5rem;font-size:14px;color:var(--text-secondary);white-space:nowrap}.legend-marker[data-v-f79614e3]{display:inline-block;width:20px;height:2px;background:var(--accent-color)}.legend-marker.disabled[data-v-f79614e3]{background:var(--text-secondary);opacity:.4;stroke-dasharray:4}.hover-area[data-v-f79614e3]{opacity:0;pointer-events:all}.ratio-label-group[data-v-f79614e3]{cursor:pointer;z-index:100}.ratio-label-bg[data-v-f79614e3]{fill:var(--bg-secondary);rx:3px;ry:3px}.ratio-label[data-v-f79614e3]{font-size:12px;fill:var(--text-primary);font-weight:500;pointer-events:none;filter:drop-shadow(0 0 2px var(--bg-secondary))}.ratio-label.disabled[data-v-f79614e3]{fill:var(--text-secondary);opacity:.4}.ratio-label.cross-chaining[data-v-f79614e3],.gear-line.cross-chaining[data-v-f79614e3]{display:none}.percentage-label[data-v-f79614e3]{font-size:11px;fill:var(--text-secondary);font-weight:500;pointer-events:none;filter:drop-shadow(0 0 2px var(--bg-primary))}.set-name[data-v-f79614e3]{font-size:14px;font-weight:600;fill:var(--text-primary);dominant-baseline:middle}.hover-line[data-v-f79614e3],.hover-line.min-rpm-hover[data-v-f79614e3],.hover-line.max-rpm-hover[data-v-f79614e3]{stroke:#fff;stroke-width:1;stroke-dasharray:4;pointer-events:none}.hover-label-bg[data-v-f79614e3]{fill:var(--accent-color);opacity:.9;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));z-index:100}.hover-label[data-v-f79614e3]{font-size:9.6px;fill:var(--bg-primary);font-weight:600;pointer-events:none;z-index:100}.gear-stats-group[data-v-f79614e3]{pointer-events:none}.stats-label-title[data-v-f79614e3]{font-size:10px;fill:var(--text-secondary);font-weight:400}.stats-value[data-v-f79614e3]{font-size:11px;fill:var(--text-primary);font-weight:500}.min-speed-line[data-v-f79614e3],.max-speed-line[data-v-f79614e3]{stroke-width:2;opacity:.8}.min-speed-line.disabled[data-v-f79614e3],.max-speed-line.disabled[data-v-f79614e3]{stroke-dasharray:4;opacity:.4}.gear-connector-line[data-v-f79614e3]{stroke-width:1;opacity:.6}.gear-connector-line.disabled[data-v-f79614e3]{stroke-dasharray:2;opacity:.3}.rpm-label[data-v-f79614e3]{font-size:10px;fill:var(--text-secondary);font-weight:400}.chainring-legend[data-v-f79614e3]{pointer-events:none}.chainring-legend .legend-title[data-v-f79614e3]{font-size:12px;font-weight:600;fill:var(--text-primary)}.chainring-legend .legend-text[data-v-f79614e3]{font-size:11px;fill:var(--text-secondary)}.chainring-legend .set-name-small[data-v-f79614e3]{font-size:12px;font-weight:600;fill:var(--text-primary)}.chainring-legend .tick-label[data-v-f79614e3]{font-size:9.6px;fill:var(--text-primary);font-weight:500}.chainring-legend .tick-label-bg[data-v-f79614e3]{fill:var(--bg-secondary);opacity:.9}.gear-calculator[data-v-111d46ea]{width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch}.configurations[data-v-111d46ea]{width:100%;margin:1rem auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(25rem,1fr));gap:1.5rem;padding:0 1rem;box-sizing:border-box}.configuration[data-v-111d46ea]{background:var(--bg-secondary);padding:1.25rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;min-width:0;transition:opacity .3s ease}.config-header[data-v-111d46ea]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.config-controls[data-v-111d46ea]{display:flex;gap:.25rem}.move-btn[data-v-111d46ea]{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:.25rem .4rem;border-radius:4px;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.move-btn[data-v-111d46ea]:hover{background:var(--bg-primary);color:var(--text-primary)}.config-name[data-v-111d46ea]{font-size:1.1rem;font-weight:600;border:none;background:transparent;color:var(--text-primary);padding:.25rem;border-radius:4px;width:calc(100% - 90px);min-width:0;overflow:hidden;text-overflow:ellipsis}.config-name[data-v-111d46ea]:hover,.config-name[data-v-111d46ea]:focus{background:var(--bg-primary);outline:none}.remove-btn[data-v-111d46ea]{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px}.remove-btn[data-v-111d46ea]:hover{background:var(--bg-primary);color:var(--text-primary)}.add-config-btn[data-v-111d46ea]{grid-column:1 / -1;width:100%;padding:1rem;background:var(--bg-secondary);border:2px dashed var(--border-color);color:var(--text-secondary);font-size:1rem;cursor:pointer;border-radius:8px;transition:all .2s ease}.add-config-btn[data-v-111d46ea]:hover{background:var(--bg-primary);border-color:var(--text-secondary);color:var(--text-primary)}.input-form[data-v-111d46ea]{width:100%;display:grid;gap:1rem}.form-group[data-v-111d46ea]{display:flex;flex-direction:column;gap:.5rem;width:100%}label[data-v-111d46ea]{font-weight:600}input[data-v-111d46ea],select[data-v-111d46ea]{width:100%;box-sizing:border-box;font-size:.95rem;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);min-width:0}input[data-v-111d46ea]{font-family:monospace}input[data-v-111d46ea]:focus,select[data-v-111d46ea]:focus{outline:none;border-color:var(--text-secondary)}@media (max-width: 800px){.configurations[data-v-111d46ea]{grid-template-columns:1fr;padding:0;gap:1rem}.configuration[data-v-111d46ea]{padding:1rem;margin-bottom:.5rem}.input-form[data-v-111d46ea]{gap:.75rem}.form-group[data-v-111d46ea]{gap:.25rem}input[data-v-111d46ea],select[data-v-111d46ea]{padding:.4rem;font-size:16px}label[data-v-111d46ea]{font-size:.9rem}.config-header[data-v-111d46ea]{margin-bottom:.75rem}.add-config-btn[data-v-111d46ea]{padding:.75rem}}.global-display-settings[data-v-111d46ea]{width:100%;margin:0 auto 1rem;padding:1rem;background:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;gap:1.5rem}.settings-row[data-v-111d46ea]{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:2rem}.display-mode-section[data-v-111d46ea],.cadence-section[data-v-111d46ea]{display:flex;align-items:center;gap:1rem}.label[data-v-111d46ea]{font-weight:600;white-space:nowrap}.toggle-buttons[data-v-111d46ea]{display:flex}.toggle-buttons button[data-v-111d46ea]{padding:.5rem 1rem;background:#2b2b2b;border:none;color:#fff;font-size:.9rem;cursor:pointer;transition:all .2s ease}.toggle-buttons button[data-v-111d46ea]:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.toggle-buttons button[data-v-111d46ea]:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.toggle-buttons button.active[data-v-111d46ea]{background-color:#4caf50}.cadence-inputs[data-v-111d46ea]{display:flex;align-items:center;gap:.5rem}.cadence-inputs input[data-v-111d46ea]{width:80px;text-align:center;font-size:1rem;padding:.5rem;background:#222;color:#fff;border:none;border-radius:4px;-moz-appearance:textfield}.cadence-inputs input[data-v-111d46ea]::-webkit-outer-spin-button,.cadence-inputs input[data-v-111d46ea]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.separator[data-v-111d46ea]{font-weight:700;color:#777}.share-section[data-v-111d46ea]{margin-top:1rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-start}.share-url[data-v-111d46ea]{display:flex;flex-grow:1}.share-url input[data-v-111d46ea]{flex-grow:1;padding:.5rem;border:none;border-radius:4px 0 0 4px;background:#222;color:#fff;font-family:monospace}.share-btn[data-v-111d46ea]{background-color:#4caf50;color:#fff;padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-weight:600}.copy-btn[data-v-111d46ea]{padding:.5rem 1rem;background-color:#2196f3;color:#fff;border:none;border-radius:0 4px 4px 0;cursor:pointer;font-weight:600}@media (max-width: 800px){.global-display-settings[data-v-111d46ea]{padding:.75rem}.settings-row[data-v-111d46ea]{flex-direction:column;align-items:flex-start;gap:1rem}.display-mode-section[data-v-111d46ea],.cadence-section[data-v-111d46ea]{width:100%;justify-content:space-between}}@media (max-width: 500px){.settings-row[data-v-111d46ea]{gap:.75rem}.display-mode-section[data-v-111d46ea],.cadence-section[data-v-111d46ea]{flex-direction:column;align-items:flex-start;gap:.5rem}.toggle-buttons[data-v-111d46ea],.cadence-inputs[data-v-111d46ea]{width:100%}.toggle-buttons button[data-v-111d46ea]{flex-grow:1;text-align:center}}.toggle-btn[data-v-111d46ea]{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:.25rem .4rem;border-radius:4px;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.toggle-btn[data-v-111d46ea]:hover{background:var(--bg-primary);color:var(--text-primary)}.toggle-btn-off[data-v-111d46ea]{opacity:.6}.toggle-icon-svg[data-v-111d46ea]{display:block;width:18px;height:18px}.configuration[data-visible=false][data-v-111d46ea]{opacity:.5;filter:grayscale(70%)}.no-visible-configs[data-v-111d46ea]{margin:2rem auto;padding:2rem;text-align:center;background:var(--bg-secondary);border-radius:8px;border:1px dashed var(--border-color);color:var(--text-secondary)}.no-visible-configs p[data-v-111d46ea]{margin:.5rem 0}.toggle-icon-example-svg[data-v-111d46ea]{display:inline-block;width:18px;height:18px;vertical-align:middle;margin:0 2px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;margin:0;padding:0;min-height:100vh;width:100%;background:var(--bg-primary);color:var(--text-primary)}.app-container{width:100%;flex:1;padding:2rem;box-sizing:border-box;display:flex;flex-direction:column}@media (max-width: 800px){.app-container{padding:1rem}}input,select{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:.5rem}input:focus,select:focus{border-color:var(--accent-color);outline:none;box-shadow:0 0 0 2px #4caf5033}option{background:var(--bg-secondary);color:var(--text-primary)}
