:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--text:var(--lightningcss-light,oklch(51.351% .02965 305))var(--lightningcss-dark,oklch(71.366% .01926 260));--text-h:var(--lightningcss-light,oklch(13% .01714 299))var(--lightningcss-dark,oklch(97% .00298 265));--bg:var(--lightningcss-light,oklch(100% .00011 271))var(--lightningcss-dark,oklch(21% .01201 278));--border:var(--lightningcss-light,oklch(92% .00425 300))var(--lightningcss-dark,oklch(31% .01815 275));--code-bg:var(--lightningcss-light,oklch(96% .00923 100))var(--lightningcss-dark,oklch(25% .01526 280));--star:var(--lightningcss-light,oklch(86% .17 109))var(--lightningcss-dark,oklch(92% .17 109));--accent:var(--lightningcss-light,oklch(61% .27 305))var(--lightningcss-dark,oklch(72% .17 305));--accent-bg:var(--lightningcss-light,oklch(61% .27 305/.1))var(--lightningcss-dark,oklch(72% .17 305/.15));--accent-border:var(--lightningcss-light,oklch(61% .27 305/.5))var(--lightningcss-dark,oklch(72% .17 305/.5));--social-bg:var(--lightningcss-light,oklch(96% .00923 100/.5))var(--lightningcss-dark,oklch(31% .01792 280/.5));--shadow:var(--lightningcss-light,#0000001a 0 10px 15px -3px)var(--lightningcss-dark,#0000000d 0 4px 6px -2px, #0006 0 10px 15px -3px, #00000040 0 4px 6px -2px);--warning:var(--lightningcss-light,oklch(58% .21 25))var(--lightningcss-dark,oklch(58% .21 25));--warning-bg:var(--lightningcss-light,oklch(58% .21 25/.16))var(--lightningcss-dark,oklch(58% .21 25/.24));--warning-bg-soft:var(--lightningcss-light,oklch(58% .21 25/.06))var(--lightningcss-dark,oklch(58% .21 25/.1));--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1540px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.warning{color:var(--warning);font-weight:600}.header{text-align:center;padding:20px}.header h1{font-size:3rem}.header h1:hover .star{animation:.3s star-bounce}.header h1:hover .spark{animation:.5s ease-out forwards spark-shoot}.header h1 .star-wrap{display:inline-block;position:relative}.header h1 .star{color:var(--star);font-size:2.6rem;transition:color .5s;transform:rotate(13deg)}.header h1 .spark{color:var(--star);opacity:0;pointer-events:none;font-size:.7rem;position:absolute;top:50%;left:50%}.header h1 .spark-1{--tx:-26px;--ty:-24px}.header h1 .spark-2{--tx:28px;--ty:-18px;animation-delay:50ms}.header h1 .spark-3{--tx:4px;--ty:-34px;animation-delay:90ms}.header h1 .highlight{z-index:1;letter-spacing:-.6rem;color:var(--accent);font-weight:700;position:relative}.header h1 .base-text{letter-spacing:-.2rem;margin-left:.05rem}@keyframes star-bounce{0%{transform:rotate(13deg)}40%{transform:rotate(20deg)}70%{transform:rotate(11deg)}to{transform:rotate(13deg)}}@keyframes spark-shoot{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)rotate(0)}20%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(1) rotate(120deg)}}.settings-bar{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:12px 20px;display:flex}.settings-bar .divider{background:var(--border);width:1px;height:22px;margin:0 6px}.settings-bar .label{text-transform:uppercase;letter-spacing:1px;margin-right:6px;font-size:13px}.settings-bar .toggle{font:14px var(--sans);color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:5px 14px 5px 10px;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.settings-bar .toggle .dot{background:var(--border);border-radius:50%;width:9px;height:9px;transition:background .2s}.settings-bar .toggle:hover{border-color:var(--accent-border)}.settings-bar .toggle.on{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.settings-bar .toggle.on .dot{background:var(--accent)}.settings-bar .toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.course-chip{font-family:var(--sans);text-align:left;background:var(--social-bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 10px;transition:border-color .2s,box-shadow .2s;display:flex}.course-chip .name{color:var(--text-h);white-space:nowrap;font-size:13px}.course-chip .meta{color:var(--text);font-size:11px;font-family:var(--mono)}.course-chip.empty .meta{font-family:var(--sans);font-style:italic}.course-chip:hover{border-color:var(--accent-border)}.course-chip.selected{border-color:var(--accent);background:var(--accent-bg)}.course-chip.selected .name{color:var(--accent);font-weight:600}.course-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.course-list{flex-direction:column;gap:12px;display:flex}.course-list .course-group{align-items:baseline;gap:12px;display:flex}.course-list .course-group h3{text-transform:uppercase;letter-spacing:1px;color:var(--text);text-align:right;flex:0 0 92px;margin:0;font-size:12px;font-weight:600}.course-list .course-group .chips{flex-wrap:wrap;flex:1;gap:6px;display:flex}.time-grid{--star-head-img-size:22px;--star-head-top-bottom-padding:1px;--star-head-left-right-padding:4px;--input-min-width:3rem}.time-grid .grid-scroll{max-height:calc(100dvh - 40px);overflow:auto}.time-grid table{border-collapse:separate;border-spacing:0;width:100%}.time-grid th,.time-grid td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:0}.time-grid thead th{border-top:1px solid var(--border);z-index:2;position:sticky;top:0}.time-grid th:first-child,.time-grid td:first-child{border-left:1px solid var(--border)}.time-grid .riders-row-label{z-index:3;text-transform:uppercase;letter-spacing:1px;color:var(--text);background:linear-gradient(to top right, transparent calc(50% - .5px), var(--border) calc(50% - .5px), var(--border) calc(50% + .5px), transparent calc(50% + .5px)), var(--code-bg);padding:3px 6px;font-size:11px;font-weight:600;left:0}.time-grid .riders-row-label .riders-label{position:absolute;top:2px;right:12px;rotate:13deg}.time-grid .riders-row-label .stars-label{position:absolute;bottom:2px;left:12px;rotate:13deg}.time-grid .rider-head{background-color:var(--bg);background-image:linear-gradient(var(--social-bg), var(--social-bg));text-align:center;width:44px;padding:3px 0 1px}.time-grid .rider-head img{object-fit:contain;width:26px;height:26px}.time-grid .group-row th{text-align:left;text-transform:uppercase;letter-spacing:1px;color:var(--text);background:var(--code-bg);padding:4px 8px;font-size:11px;font-weight:600}.time-grid .group-row th span{display:inline-block;position:sticky;left:8px}.time-grid .star-head{width:118px;padding:var(--star-head-top-bottom-padding) var(--star-head-left-right-padding);background-color:var(--bg);background-image:linear-gradient(var(--social-bg), var(--social-bg));z-index:1;font-weight:400;position:sticky;left:0}.time-grid .star-head div{align-items:center;gap:6px;display:flex}.time-grid .star-head img{width:var(--star-head-img-size);height:var(--star-head-img-size);object-fit:contain;flex-shrink:0}.time-grid .star-head span{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;text-align:left;font-size:11px;overflow:hidden}.time-grid tbody td{height:24px;position:relative}.time-grid td{min-width:var(--input-min-width)}.time-grid td input{box-sizing:border-box;color:var(--text-h);font:10.5px var(--mono);text-align:center;background:0 0;border:none;padding:0 1px;position:absolute;inset:0}.time-grid td input::placeholder{color:var(--border)}.time-grid td input:hover:not(:disabled){background:var(--accent-bg)}.time-grid td input:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-bg)}.time-grid td input.best{color:var(--accent);background:var(--accent-bg);font-weight:700}.time-grid td input.best-of-best{color:var(--star)}.time-grid td input.below-avg{background:var(--warning-bg-soft)}.time-grid td input.worst{color:var(--warning);background:var(--warning-bg)}.time-grid tbody.off{opacity:.45}.time-grid tbody.off td input{cursor:not-allowed}.time-grid tbody tr:hover td{background:var(--code-bg)}.time-grid .rider-head,.time-grid .star-head{cursor:pointer;-webkit-user-select:none;user-select:none}.time-grid .view-toggle{font:inherit;color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:.75em;transition:border-color .2s,color .2s,background .2s}.time-grid .view-toggle:hover{border-color:var(--accent-border)}.time-grid .view-toggle.on{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.time-grid .rider-head:hover,.time-grid .star-head:hover,.time-grid th.sel{background-image:linear-gradient(var(--accent-bg), var(--accent-bg))}.time-grid td.sel,.time-grid tbody tr:hover td.sel{background:var(--accent-bg)}.time-grid .star-head.sel span{color:var(--accent);font-weight:700}.time-grid-title{align-items:baseline;gap:14px;margin-bottom:10px;display:flex}.time-grid-title h2{letter-spacing:-.03em;background:linear-gradient(105deg, var(--accent), oklch(from var(--accent) calc(l + .08) c calc(h + 40)));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;padding-right:.12em;font-size:2.5em;font-style:italic;font-weight:800}.time-grid-title .hint{color:var(--text);font-size:.65em}.time-grid-title .title-actions{align-self:center;align-items:center;gap:8px;margin-left:auto;display:flex}.time-grid-title .clear-times-button{font:inherit;color:var(--text);background:var(--code-bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:.75em}.time-grid-title .clear-times-button:hover{color:var(--text-h);border-color:var(--accent-border);background:var(--accent-bg)}.clear-times-dialog{border:1px solid var(--border);color:var(--text);background:var(--bg);box-shadow:var(--shadow);border-radius:10px;margin:auto;padding:0}.clear-times-dialog::backdrop{background:#00000073}.clear-times-dialog .clear-times-dialog-body{padding:20px 24px}.clear-times-dialog h3{color:var(--text-h);margin:0 0 6px}.clear-times-dialog p{margin:0 0 16px;font-size:.85em}.clear-times-dialog .dialog-actions{justify-content:center;gap:10px;display:flex}.clear-times-dialog .dialog-actions button{font:inherit;color:var(--text);background:var(--code-bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8em}.clear-times-dialog .dialog-actions button em{font-weight:600}.clear-times-dialog .dialog-actions button:hover{color:var(--text-h);border-color:var(--accent-border);background:var(--accent-bg)}.clear-times-dialog .dialog-actions button.danger{color:oklch(58% .21 25);border-color:oklch(58% .21 25/.4)}.clear-times-dialog .dialog-actions button.danger:hover{color:oklch(97% .01 25);background:oklch(58% .21 25);border-color:oklch(58% .21 25)}.data-button{font:14px var(--sans);color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:5px 14px;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.data-button:hover{color:var(--text-h);border-color:var(--accent-border);background:var(--accent-bg)}.data-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.data-transfer-dialog{border:1px solid var(--border);color:var(--text);background:var(--bg);box-shadow:var(--shadow);border-radius:10px;margin:auto;padding:0}.data-transfer-dialog::backdrop{background:#00000073}.data-transfer-dialog .data-transfer-dialog-body{max-width:460px;padding:20px 24px}.data-transfer-dialog h3{color:var(--text-h);margin:0 0 6px}.data-transfer-dialog p{margin:0 0 16px;font-size:.85em}.data-transfer-dialog p em{color:var(--text-h);font-style:normal;font-weight:600}.data-transfer-dialog .dialog-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.data-transfer-dialog .dialog-actions button{font:inherit;color:var(--text);background:var(--code-bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 14px;font-size:.8em}.data-transfer-dialog .dialog-actions button em{font-weight:600}.data-transfer-dialog .dialog-actions button:hover{color:var(--text-h);border-color:var(--accent-border);background:var(--accent-bg)}.data-transfer-dialog .dialog-actions button.danger{color:oklch(58% .21 25);border-color:oklch(58% .21 25/.4)}.data-transfer-dialog .dialog-actions button.danger:hover{color:oklch(97% .01 25);background:oklch(58% .21 25);border-color:oklch(58% .21 25)}.dev-fill-button{font:14px var(--sans);color:var(--accent);border:1px dashed var(--accent-border);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:5px 14px;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.dev-fill-button:hover{background:var(--accent-bg);border-style:solid}.dev-fill-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.route-card{border:1px solid var(--border);border-radius:8px;flex:1 1 0;min-width:0}@media (width<=1024px){.route-card{box-sizing:border-box;width:100%}}.route-card .route-head{background:var(--social-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;padding:8px 12px;display:flex}.route-card .route-head .rank{color:var(--text);font-size:13px;font-weight:600}.route-card .route-head .total{font:700 17px var(--mono);color:var(--accent)}.route-card .route-body{flex-wrap:wrap;gap:6px;padding:12px;display:flex}.route-card .route-body .pick{border:1px solid var(--border);background:var(--social-bg);border-radius:999px;align-items:center;gap:5px;padding:3px 10px;display:flex}.route-card .route-body .pick-changed{background:var(--accent-bg);border-color:var(--accent-border)}.route-card .route-body .pick-stacked{border-radius:10px;flex-direction:column;gap:1px;padding:4px 12px}.route-card .route-body .pick-stacked .pick-row{align-items:center;gap:5px;display:flex}.route-card .route-body .pick-stacked .time:before{content:none}.route-card .route-body .course{color:var(--text-h);white-space:nowrap;font-size:13px}.route-card .route-body img{object-fit:contain;flex-shrink:0;width:14px;height:14px}.route-card .route-body .time{font:11px var(--mono);color:var(--text)}.route-card .route-body .time:before{content:"·";opacity:.5;margin-inline-end:5px}.route-results{border-top:1px solid var(--border);text-align:left;padding:20px}.route-results .results-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.route-results .results-head h2{margin:0;font-size:20px}.route-results .tabs{background:var(--code-bg);border-radius:8px;gap:4px;padding:3px;display:flex}.route-results .tabs button{font:13px var(--sans);color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 14px;transition:color .2s,background .2s}.route-results .tabs button.active{color:var(--accent);background:var(--bg);box-shadow:var(--shadow)}.route-results .tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.route-results .pick-style-toggle{color:var(--text);justify-content:flex-end;align-items:center;gap:8px;margin:-6px 0 14px;font-size:13px;display:flex}.route-results .pick-style-toggle .tabs button{padding:4px 10px}.route-results .status{color:var(--text);font-size:14px}.route-results .status .missing{color:var(--text-h)}.route-results .truncated-notice{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;display:flex}.route-results .truncated-notice p{margin:0}.route-results .truncated-notice .find-optimal{font:14px var(--sans);color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 16px;transition:color .2s,background .2s}.route-results .truncated-notice .find-optimal:hover{background:var(--accent-border);color:var(--text-h)}.route-results .truncated-notice .find-optimal:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.route-results .route-cards{flex-direction:column;align-items:flex-start;gap:12px;display:flex}@media (width<=1024px){.route-results .route-cards{flex-direction:column}}.solver-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:var(--lightningcss-light,#ffffffb3)var(--lightningcss-dark,#0009);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.solver-overlay .solver-panel{text-align:center;background:var(--bg);border:1px solid var(--border);max-width:380px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:28px 32px;display:flex}.solver-overlay .solver-panel h2{color:var(--text-h);margin:0;font-size:18px}.solver-overlay .solver-panel p{color:var(--text);margin:0;font-size:14px}.solver-overlay .solver-panel .solver-progress{font:13px var(--mono);color:var(--accent);min-height:1.4em}.solver-overlay .solver-panel button{font:14px var(--sans);color:var(--text-h);background:var(--code-bg);border:1px solid var(--border);cursor:pointer;border-radius:8px;margin-top:6px;padding:7px 22px;transition:color .2s,border-color .2s}.solver-overlay .solver-panel button:hover{color:var(--accent);border-color:var(--accent-border)}.solver-overlay .solver-panel button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.solver-overlay .solver-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite solver-spin}@keyframes solver-spin{to{transform:rotate(360deg)}}.planner{border-top:1px solid var(--border);text-align:left;flex-direction:column;gap:18px;padding:20px;display:flex}
