:root{--ground: #0b1315;--surface: #111c1f;--raised: #162428;--line: #1e2e32;--text: #e6ebea;--dim: #93a3a6;--faint: #728487;--signal: #e9a94d;--alert: #c75b4a;--r: 6px;--gutter: 22px;--ease: cubic-bezier(.2, .7, .2, 1)}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--ground)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px var(--gutter);min-height:52px}.origin{display:flex;align-items:baseline;gap:8px;min-width:0}.origin-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);flex-shrink:0}.origin-value{font-size:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-button{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;background:none;border:none;border-radius:var(--r);color:var(--faint);cursor:pointer;transition:color .15s var(--ease)}.icon-button:hover{color:var(--text)}.main{flex:1;display:flex;flex-direction:column;justify-content:center;padding:8px var(--gutter) 24px}.sheet{width:100%;max-width:380px;margin:0 auto}.verdict-eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--signal);margin-bottom:6px}.verdict-name{font-size:clamp(38px,13vw,52px);font-weight:300;letter-spacing:-.035em;line-height:1;color:var(--text);margin:0}.verdict-meta{display:flex;align-items:baseline;gap:8px;margin-top:10px;font-size:14px;color:var(--dim);font-variant-numeric:tabular-nums}.verdict-flag{color:var(--signal)}.verdict-flag.is-alert{color:var(--alert)}.rail{list-style:none;margin:30px 0 0;padding:0}.leg{position:relative;padding-left:24px;padding-bottom:clamp(14px,calc(var(--span, 10) * 1.15px),82px)}.leg:last-child{padding-bottom:0}.leg:before{content:"";position:absolute;left:0;top:5px;width:9px;height:9px;border-radius:50%;border:1px solid var(--faint);background:var(--ground);box-sizing:border-box}.leg:after{content:"";position:absolute;left:4px;top:16px;bottom:2px;width:1px;background:var(--line)}.leg:last-child:after{display:none}.leg.is-sail:before{border-color:var(--signal);background:var(--signal)}.leg.is-end:before{border-color:var(--dim);background:var(--dim)}.leg-head{display:flex;align-items:baseline;gap:10px}.leg-time{font-size:15px;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.leg-what{font-size:13px;color:var(--dim);flex:1;min-width:0}.leg-dur{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}.leg-note{margin-top:3px;font-size:11.5px;color:var(--faint)}.leg-note.is-alert{color:var(--alert)}.alts{margin-top:28px;border-top:1px solid var(--line)}.alt{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--dim)}.alt-icon{color:var(--faint);display:grid;place-items:center}.alt-name{flex:1;min-width:0}.alt-delta{font-variant-numeric:tabular-nums;color:var(--faint)}.closecall-head{margin-bottom:22px}.closecall-note{font-size:13px;color:var(--dim);margin-top:6px}.option{padding:18px 0;border-top:1px solid var(--line)}.option:last-of-type{border-bottom:1px solid var(--line)}.option-head{display:flex;align-items:baseline;gap:10px}.option-icon{color:var(--dim);align-self:center;display:grid;place-items:center}.option-name{font-size:19px;font-weight:400;letter-spacing:-.02em;color:var(--text);flex:1}.option-total{font-size:14px;color:var(--dim);font-variant-numeric:tabular-nums}.option-line{margin-top:6px;font-size:12.5px;color:var(--faint);font-variant-numeric:tabular-nums}.option-line.is-alert{color:var(--alert)}.error,.notice{font-size:13.5px;line-height:1.5;color:var(--text);border-left:2px solid var(--alert);padding:2px 0 2px 12px;margin-bottom:20px}.notice{border-left-color:var(--faint);color:var(--dim)}.warnings{margin-top:22px;display:flex;flex-direction:column;gap:5px}.warning{font-size:11.5px;color:var(--alert)}.waiting{font-size:14px;color:var(--faint)}.pending{display:flex;flex-direction:column;gap:14px}.pending-bar{height:1px;background:var(--line);position:relative;overflow:hidden}.pending-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--faint);transform:translate(-100%);animation:sweep 1.4s var(--ease) infinite}.pending-bar:nth-child(2):after{animation-delay:.12s}.pending-bar:nth-child(3):after{animation-delay:.24s}@keyframes sweep{to{transform:translate(100%)}}.footer{display:flex;align-items:center;gap:18px;padding:14px var(--gutter);padding-bottom:max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}.bias{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:var(--faint)}.bias input[type=range]{flex:1;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:1px;background:var(--line);cursor:pointer}.bias input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:11px;height:11px;border-radius:50%;background:var(--dim);transition:background .15s var(--ease)}.bias input[type=range]::-moz-range-thumb{width:11px;height:11px;border:none;border-radius:50%;background:var(--dim)}.bias input[type=range]:hover::-webkit-slider-thumb,.bias input[type=range]:focus-visible::-webkit-slider-thumb{background:var(--signal)}.text-button{background:none;border:none;color:var(--dim);font-size:12px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:6px 0;transition:color .15s var(--ease)}.text-button:hover:not(:disabled){color:var(--text)}.text-button:disabled{color:var(--faint);cursor:default}.page{min-height:100vh;min-height:100dvh;background:var(--ground);padding:14px var(--gutter) 40px}.page-header{display:flex;align-items:center;justify-content:space-between;min-height:38px;margin-bottom:30px}.page-title{font-size:15px;font-weight:400;letter-spacing:.02em;color:var(--text);margin:0}.page-body{max-width:380px;margin:0 auto}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}.field label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.field input[type=text]{background:transparent;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:8px 0;font-size:16px;font-family:inherit;color:var(--text);outline:none;transition:border-color .15s var(--ease)}.field input[type=text]::placeholder{color:var(--faint)}.field input[type=text]:focus{border-bottom-color:var(--signal)}.field input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:1px;background:var(--line);cursor:pointer;margin:10px 0}.field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--signal)}.field input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--signal)}.field .hint{font-size:12px;line-height:1.5;color:var(--faint)}.primary-button{width:100%;background:transparent;color:var(--signal);border:1px solid var(--signal);border-radius:var(--r);padding:14px;font-size:14px;font-family:inherit;letter-spacing:.02em;cursor:pointer;transition:opacity .15s var(--ease)}.primary-button:hover:not(:disabled){background:#e9a94d14}.primary-button:disabled{opacity:.3;cursor:default}.detail-route{padding:22px 0;border-top:1px solid var(--line)}.detail-route:last-of-type{border-bottom:1px solid var(--line)}.detail-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}.detail-icon{color:var(--dim);display:grid;place-items:center}.detail-name{flex:1;font-size:17px;letter-spacing:-.015em;color:var(--text)}.detail-route.is-best .detail-name{color:var(--signal)}.detail-total{font-size:14px;color:var(--dim);font-variant-numeric:tabular-nums}.detail-rows{display:flex;flex-direction:column;gap:7px}.detail-row{display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--dim);font-variant-numeric:tabular-nums}.detail-row span:first-child{color:var(--faint)}.detail-row.is-missed span:last-child{color:var(--alert);text-decoration:line-through}.detail-link{display:inline-block;margin-top:16px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:3px;transition:color .15s var(--ease),border-color .15s var(--ease)}.detail-link:hover{color:var(--text);border-bottom-color:var(--dim)}.picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#040809b8;display:flex;align-items:flex-end;justify-content:center;z-index:100}.picker{background:var(--surface);border-top:1px solid var(--line);padding:20px var(--gutter) max(20px,env(safe-area-inset-bottom));width:100%;max-width:420px;max-height:70vh;overflow-y:auto}.picker-title{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}.picker-option{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--line);color:var(--dim);padding:13px 0;font-size:14px;font-family:inherit;text-align:left;cursor:pointer;transition:color .15s var(--ease)}.picker-option:hover,.picker-option.is-active{color:var(--signal)}.quiet-button{align-self:flex-start;background:none;border:1px solid var(--line);border-radius:var(--r);color:var(--dim);padding:9px 14px;font-size:13px;font-family:inherit;cursor:pointer;transition:color .15s var(--ease),border-color .15s var(--ease)}.quiet-button:hover{color:var(--text);border-color:var(--dim)}.test-locations{margin-top:26px}.test-locations p{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}.test-location-buttons{display:flex;flex-wrap:wrap;gap:7px}.enter>*{animation:rise .5s var(--ease) both}.enter>*:nth-child(2){animation-delay:.05s}.enter>*:nth-child(3){animation-delay:.1s}.enter>*:nth-child(4){animation-delay:.15s}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}:focus-visible{outline:1px solid var(--signal);outline-offset:3px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0b1315;color:#e6ebea;font-size:16px;line-height:1.35;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}button,input{font-family:inherit}
