:root{--sand-100: #f6f2ea;--sand-200: #e8dcc8;--pine-800: #125b50;--pine-900: #0e473e;--clay-600: #c76b2a;--ink-900: #1f2933;--ink-600: #52606d;--brand-carbon: #263238;--brand-volt: #78d600;--white: #ffffff}*{box-sizing:border-box}body{margin:0;font-family:Avenir Next,Segoe UI,sans-serif;color:var(--ink-900);background:radial-gradient(circle at 20% -10%,#f5d4b8 0%,transparent 40%),radial-gradient(circle at 95% 5%,#b8dfd8 0%,transparent 35%),var(--sand-100)}.app-shell{max-width:1280px;margin:0 auto;padding:2rem 1rem 3rem}.hero{position:relative;background:var(--white);color:var(--ink-900);border:1px solid rgba(31,41,51,.1);border-radius:8px;box-shadow:0 20px 40px #125b5033;animation:rise .65s ease}.hero>:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.hero>:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px;overflow:hidden}.hero-brand{position:relative;padding:1rem 1.5rem .9rem;text-align:center;background:var(--white)}.hero-brand__copy{width:fit-content;margin:0 auto}.wordmark{display:inline-flex;align-items:baseline;gap:.04em;margin:0;font-size:clamp(1.7rem,3.4vw,3rem);line-height:.95;letter-spacing:-.075em}.wordmark__emtb{color:var(--brand-carbon);font-family:Impact,Arial Black,Segoe UI,sans-serif;font-weight:900;text-transform:none}.wordmark__iq{color:var(--brand-volt);font-family:Segoe UI,Avenir Next,sans-serif;font-size:.92em;font-weight:400;letter-spacing:-.09em}.hero-brand p{margin:.45rem 0 0;color:var(--ink-900);font-size:clamp(.78rem,1.6vw,1.35rem);font-weight:600;line-height:1.15;letter-spacing:.045em}.hero-artwork,.hero-art{display:block;width:100%}.hero-artwork{aspect-ratio:2000 / 847;background:var(--white)}.hero-art{height:auto;aspect-ratio:2000 / 847;object-fit:cover}.hero-content{padding:1.25rem 1.5rem 1.5rem;border-top:1px solid rgba(31,41,51,.1)}.hero-content--session{padding-block:.85rem}.hero-content h1{margin:0 0 .35rem;font-size:1.45rem}.hero-content>p{margin:0;color:var(--ink-600)}.hero-content--signin{text-align:center}.user-profile{position:absolute;top:50%;right:1.25rem;z-index:10;transform:translateY(-50%)}.user-profile__trigger{display:flex;align-items:center;gap:.45rem;padding:0;border:0;background:transparent;color:var(--pine-900);font-weight:700}.user-profile__trigger:hover{background:transparent;color:var(--pine-800)}.user-profile__avatar{display:inline-grid;width:2.1rem;height:2.1rem;place-items:center;border-radius:50%;background:var(--pine-800);color:var(--white)}.user-profile__avatar svg{width:1.15rem;height:1.15rem}.user-profile__menu{position:absolute;top:calc(100% + .6rem);right:0;z-index:20;width:min(18rem,calc(100vw - 2rem));min-width:14rem;display:grid;gap:.65rem;padding:.75rem;border:1px solid #d7cebf;border-radius:10px;background:var(--white);box-shadow:0 12px 28px #0e473e2e;text-align:left}.user-profile__email{color:var(--ink-600);font-size:.82rem}.unit-system-selector{display:grid;gap:.35rem}.unit-system-selector label{display:grid;gap:.25rem;color:var(--ink-900);font-size:.82rem;font-weight:700}.unit-system-selector select{min-width:13rem}.unit-system-selector--compact label>span{color:var(--ink-900)}.user-profile__menu .unit-system-selector--compact{padding-top:.65rem;border-top:1px solid #e5ded3}.user-profile__menu .unit-system-selector--compact select{min-width:0}.unit-system-selector--compact select{min-width:12rem;padding:.45rem .6rem}.unit-system-selector__error{max-width:22rem;color:#9c2f22;font-size:.78rem}.account-delete-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:1rem;background:#101f1c9e}.account-delete-dialog{width:min(100%,31rem);display:grid;gap:1rem;padding:1.5rem;border:1px solid #d7cebf;border-radius:14px;background:var(--white);box-shadow:0 24px 64px #09211d4d}.account-delete-dialog h2,.account-delete-dialog p{margin:0}.account-delete-actions{display:flex;justify-content:flex-end;gap:.75rem}.legal-consent-dialog ul{margin:0;padding-left:1.25rem}.legal-consent-confirmation{display:flex;align-items:flex-start;gap:.65rem}.legal-consent-confirmation input{width:auto;margin-top:.2rem}.auth-card{margin-top:1rem;display:grid;grid-template-columns:1fr 1fr auto;gap:.6rem;align-items:end}.auth-card--entra{grid-template-columns:minmax(14rem,22rem);justify-content:center}.auth-provider-note{margin:.75rem 0 0;color:var(--ink-600);font-size:.82rem}.auth-card label{color:var(--ink-900)}.auth-card input{background:#fffffff2}.status-line{margin-top:.8rem;color:#d6f3ee;font-size:.9rem}.approved-users-panel ul{margin:0;padding-left:1.1rem}.approved-users-panel li{color:var(--ink-600)}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-top:1rem}.panel{background:#ffffffd6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border:1px solid #e9e1d5;border-radius:18px;padding:1rem;animation:rise .6s ease}.estimator-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:start}.catalog-note{display:grid;gap:.2rem;align-content:center;margin:0;min-width:0}.catalog-note__model{margin:0;color:var(--ink-900);font-size:.9rem;font-weight:600}.catalog-note__detail{margin:0;color:var(--ink-600);font-size:.82rem;line-height:1.4}.pairing-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.8rem}.collapsible-panel>summary{display:flex;align-items:center;gap:.6rem;cursor:pointer;list-style:none}.collapsible-panel>summary::-webkit-details-marker{display:none}.collapsible-panel>summary:before{content:"";flex:0 0 auto;width:.45rem;height:.45rem;border-right:2px solid var(--ink-600);border-bottom:2px solid var(--ink-600);transform:rotate(-45deg);transition:transform .15s ease}.collapsible-panel[open]>summary:before{transform:rotate(45deg)}.collapsible-panel>summary h2{margin:0}.collapsible-panel>summary h3,.collapsible-panel>summary h4{margin:0;font-size:1rem}.legacy-ride-details{margin-top:.9rem;padding:.85rem;border:1px solid #e9e1d5;border-radius:14px;background:#fbf8f3}.collapsible-panel>summary:focus-visible{outline:2px solid #62a89b;outline-offset:3px;border-radius:8px}.collapsible-panel__badge{padding:.15rem .55rem;border-radius:999px;background:#eee9e1;color:var(--ink-600);font-size:.75rem;font-weight:600}.collapsible-panel[open]>summary{margin-bottom:.6rem}.pairing-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.4rem;letter-spacing:.12em;padding:.3rem .7rem;border:1px dashed #b8a888;border-radius:10px;background:#ffffffb3}.pairing-code small{display:block;font-size:.75rem;letter-spacing:normal;opacity:.7}.results-card .actions{align-items:center}.ride-saved-panel{margin-top:.85rem;padding:.85rem;border:1px solid #ecdfca;border-left:3px solid #4f8a6d;border-radius:12px;background:#f9f5ee}.ride-saved-panel p{margin:0;color:var(--ink-900);font-weight:600}.ride-saved-panel .actions{margin-top:.7rem}.field-error{color:var(--error, #b42318)}.field-error input{border-color:#b42318;background:#fef3f2}.input-error{margin:.6rem 0 0;color:#b42318;font-size:.85rem;font-weight:600}.add-ride-panel{margin-top:1rem}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.field-grid>*,.field-grid.compact>*{min-width:0}.field-grid.compact{grid-template-columns:1fr 1fr}.field-group{margin-top:.9rem;padding:.9rem;border-radius:14px}.estimator-core>.field-group:first-child{margin-top:0}.field-group h3{margin:0;font-size:1rem}.field-group p{margin:.25rem 0 .7rem;color:var(--ink-600);font-size:.86rem}.field-group__heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}.field-group__heading p{margin-bottom:0}.route-upload{flex:0 0 auto;font-size:.82rem}.route-upload-actions{display:flex;justify-content:flex-start;gap:.5rem;flex-wrap:wrap}.predict-action{flex:0 0 auto;font-weight:700}.prediction-auth-cta{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem;color:var(--ink-600);font-size:.88rem}.prediction-auth-cta .link-button{min-width:0;padding:0;border:0;background:transparent;color:var(--pine-800);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:.15em}.prediction-auth-cta .link-button:hover{background:transparent;color:var(--pine-900)}.ai-upload{background:var(--pine-800)}.button-spinner{display:inline-block;width:.85em;height:.85em;margin-right:.45em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.1em;animation:button-spin .6s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}button.upload.is-busy:disabled{opacity:1;cursor:progress}@media (prefers-reduced-motion: reduce){.button-spinner{animation-duration:2.4s}}.import-feedback{margin:-.15rem 0 .75rem;padding:.55rem .7rem;border:1px solid #9fd8ca;border-radius:9px;background:#eaf8f4;color:var(--pine-900);font-size:.82rem;line-height:1.35}.required-fields{border:1px solid #d9ebe6;background:linear-gradient(180deg,#f4fbf8,#eef7f4)}.optional-fields{border:1px solid #e9e1d5;background:#fcfaf6}.optional-fields .field-grid>label{align-content:start}label{display:grid;gap:.35rem;color:var(--ink-600);font-size:.9rem;min-width:0}.field-grid.compact label{grid-template-rows:auto auto;align-content:start;gap:.12rem}.field-grid.compact .field-label{min-height:0;display:block;line-height:1.2}.field-grid.compact .field-label-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:inherit;padding:0;margin:0;width:100%;min-width:0;text-align:left;position:relative;display:block;line-height:1.15;cursor:default;font:inherit}.field-grid.compact .field-label-button[data-truncated=true]{cursor:help}.field-grid.compact .field-label-button:focus-visible{outline:2px solid #62a89b;outline-offset:2px;border-radius:6px}.field-grid.compact .field-label-text{display:block;width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-grid.compact .field-label-tooltip{position:absolute;left:0;top:calc(100% + .32rem);max-width:min(24rem,90vw);padding:.35rem .5rem;border-radius:8px;border:1px solid #d7cebf;background:#fffdf9;color:#2d3748;font-size:.76rem;line-height:1.25;box-shadow:0 10px 22px #0e473e2e;opacity:0;visibility:hidden;pointer-events:none;z-index:8;transform:translateY(-3px);transition:opacity .13s ease,transform .13s ease,visibility .13s ease}.field-grid.compact .field-label-button[data-truncated=true]:hover .field-label-tooltip,.field-grid.compact .field-label-button[data-truncated=true]:focus-visible .field-label-tooltip,.field-grid.compact .field-label-button[data-truncated=true].is-open .field-label-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.field-grid.compact .parsed-badge{align-self:start;font-size:.68rem;padding:.08rem .38rem}.parsed-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:1.6rem;font-size:.72rem;font-weight:600;letter-spacing:.03em;color:#0e473e;background:#dff4ee;border:1px solid #9fd8ca;border-radius:999px;padding:.12rem .45rem}input,select,button{border-radius:10px;border:1px solid #d7cebf;font:inherit;padding:.58rem .66rem}input[type=range]{border:0;padding:0}input,select{width:100%;min-width:0}input:not([type=checkbox]):not([type=radio]):not([type=range]),select{-moz-appearance:none;appearance:none;-webkit-appearance:none;min-height:2.6rem;line-height:1.25;background-color:var(--white);color:var(--ink-900)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}select{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:2.1rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%2352606d' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:.7rem auto}input:disabled,select:disabled{-webkit-text-fill-color:var(--ink-600);color:var(--ink-600);background-color:#f4f1ec;opacity:1}@media (hover: none) and (pointer: coarse){input:not([type=checkbox]):not([type=radio]),select{font-size:16px}}input:focus,select:focus{outline:2px solid #62a89b;outline-offset:1px}.actions{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}button{background:var(--pine-800);color:var(--white);border:0;cursor:pointer}button:hover{background:var(--pine-900)}button.ghost{background:var(--white);color:var(--pine-900);border:1px solid var(--pine-800)}button.ghost.is-busy{background:var(--pine-800);color:var(--white);border-color:var(--pine-800)}button:disabled{cursor:not-allowed;opacity:.5}button.danger{background:#b42318;color:#fff}button.danger:hover{background:#931d14}button.btn-outline-danger{background:transparent;color:#9f2118;border:1px solid #c94a3c}button.btn-outline-danger:hover{background:#fdf2f0;color:#7d1b14}button.ride-delete-button{min-width:5.2rem;padding:.38rem .55rem;font-size:.82rem}.upload{display:inline-flex;align-items:center;justify-content:center;background:var(--clay-600);color:var(--white);border-radius:10px;padding:.58rem .66rem;cursor:pointer}.visually-hidden-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toggle-row{display:flex;grid-template-columns:none;align-items:center;gap:.6rem;margin-top:.8rem}.result-grid{margin-top:.75rem;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:.35rem}.result-card{padding:.45rem .3rem;border-left:1px solid #e1d4bf}.result-card:first-child{border-left:0}.results-card{padding:.85rem;border:1px solid #ecdfca;border-left:3px solid #e1d4bf;border-radius:12px;background:#f9f5ee}.results-card__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.results-card__header h3{margin:0}.results-card__header p{margin:.2rem 0 0;color:var(--ink-600);font-size:.82rem}.garmin-action{flex:0 0 auto}.estimator-primary-action{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.65rem;margin-top:.85rem}.estimator-primary-action button{min-width:13rem;font-weight:700}.result-grid h3{margin-bottom:.3rem;color:var(--ink-600);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.result-grid p{font-size:1.4rem;margin-top:0}.result-grid p.over-100{color:#b42318;font-weight:700}.battery-scale{margin-top:.8rem;display:grid;gap:.45rem}.battery-scale-track{width:100%;height:14px;border-radius:999px;overflow:hidden;border:1px solid #d8cfbf;background:#f3ebdd;display:flex}.battery-scale-segment{height:100%;transition:width .22s ease}.battery-scale-segment.used{background:transparent}.battery-scale-segment.left.left-good{background:#2f855a}.battery-scale-segment.left.left-mid{background:#dd6b20}.battery-scale-segment.left.left-low{background:#b42318}.battery-scale-legend{display:flex;justify-content:space-between;gap:.5rem;color:var(--ink-600);font-size:.82rem}.trail-list{margin-top:.8rem;display:grid;gap:.5rem}.trail-item{border:1px solid #e7ddcf;border-radius:10px;padding:.6rem;background:#fffcf8}.ellipsis{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subhead{margin-top:1.2rem}.section-intro{max-width:58rem;margin:.45rem 0 .8rem;color:var(--ink-600);font-size:.9rem;line-height:1.45}.planning-intro p{margin:.6rem 0}.planning-intro__features{display:grid;gap:.65rem;margin:.8rem 0;padding:0;list-style:none}.planning-intro__features li{display:flex;align-items:flex-start;gap:.65rem}.planning-intro__features svg{flex:none;width:1.25rem;height:1.25rem;margin-top:.1rem;color:var(--pine-800)}.planning-intro__features .planning-intro__instant-icon{color:#b77900}.data-panel__heading-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.55rem 1rem}.data-panel__heading-row h2{margin:0}.beta-feedback{display:flex;align-items:center;gap:.4rem;margin-left:auto;padding:.3rem .4rem;border:1px solid #d7e7e2;border-radius:8px;background:#f7fbfa}.beta-feedback__eyebrow{color:var(--ink-600);font-size:.7rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.beta-feedback__actions{display:flex;flex:0 0 auto;flex-wrap:wrap;gap:.4rem}.beta-feedback__action{min-height:2rem;padding:.3rem .52rem;border:1px solid var(--pine-800);border-radius:8px;background:var(--pine-800);color:var(--white);font-size:.82rem;font-weight:600}.beta-feedback__action:hover{background:var(--pine-900)}.beta-feedback__action--secondary{background:var(--white);color:var(--pine-900)}.beta-feedback__action--secondary:hover{background:#eef8f5}.feedback-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:1rem;background:#101f1c9e}.feedback-dialog{width:min(100%,30rem);display:grid;gap:.85rem;padding:1.25rem;border:1px solid #d7e7e2;border-radius:14px;background:var(--white);box-shadow:0 24px 64px #09211d4d}.feedback-dialog h2,.feedback-dialog p{margin:0}.feedback-dialog h2{font-size:1.25rem}.feedback-dialog h2+p,.feedback-dialog__privacy,.feedback-dialog__status{margin-top:.25rem;color:var(--ink-600);font-size:.85rem}.feedback-dialog__actions{display:flex;flex-wrap:wrap;gap:.55rem}.feedback-dialog__action{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.55rem .75rem;border:1px solid var(--pine-800);border-radius:9px;background:var(--pine-800);color:var(--white);font-weight:700;text-decoration:none}.feedback-dialog__action:hover{background:var(--pine-900)}.feedback-dialog__action--secondary{background:var(--white);color:var(--pine-900)}.feedback-dialog__action--secondary:hover{background:#eef8f5}.feedback-dialog>.ghost{justify-self:end}.panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.panel-heading-row h2{margin:0}.panel-toggle{min-width:5rem}.parse-sources-panel{margin-top:.85rem;padding:.8rem .9rem;border-radius:12px;border:1px solid #d7e7e2;background:#f6fbfa}.parse-sources-panel h4{margin:0 0 .4rem;font-size:.9rem;color:var(--ink-900)}.parse-sources-panel ul{margin:0;padding-left:1rem;color:var(--ink-600);font-size:.84rem}.parse-sources-panel li+li{margin-top:.2rem}.microcopy,.status{margin-top:.7rem;color:var(--ink-600)}.microcopy,.privacy-notice{max-width:58rem;font-size:.82rem;line-height:1.4}.privacy-notice{margin:.5rem 0;color:var(--ink-600)}.status--with-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.25rem}.legal-links{display:flex;flex-wrap:wrap;gap:.75rem}.legal-links a{text-transform:capitalize}.legal-review-shell{width:min(100% - 2rem,920px);margin:0 auto;padding:1.25rem 0 3rem}.legal-review-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:2px solid var(--pine-800);color:var(--ink-600);font-size:.88rem}.legal-review-header__brand{color:var(--pine-900);font-size:1.3rem;font-weight:800;text-decoration:none}.legal-review-nav{display:flex;gap:.35rem;overflow-x:auto;border-bottom:1px solid #cfc5b5}.legal-review-nav a{flex:0 0 auto;padding:.7rem .9rem;border:1px solid transparent;border-bottom:0;color:var(--ink-600);font-weight:700;text-decoration:none}.legal-review-nav a[aria-current=page]{border-color:#cfc5b5;background:var(--white);color:var(--pine-900)}.legal-review-document,.legal-review-index{padding:clamp(1.25rem,4vw,3.5rem);background:var(--white);border-bottom:1px solid #cfc5b5}.legal-review-document h1,.legal-review-index h1{margin:0 0 1.5rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,6vw,3.5rem);line-height:1.05;letter-spacing:0}.legal-review-document section+section{margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid #e2dbcf}.legal-review-document h2{margin:0 0 .75rem;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;letter-spacing:0}.legal-review-document p,.legal-review-index p,.legal-review-index li{line-height:1.65}.legal-review-document__eyebrow,.legal-review__updated{color:var(--clay-600);font-size:.78rem;font-weight:800;text-transform:uppercase}.legal-review-footer{padding:1rem 0;color:var(--ink-600);text-align:right}@media (max-width: 560px){.legal-review-header{align-items:flex-start;flex-direction:column}.legal-review-document,.legal-review-index{padding:1.25rem}}.form-error{margin-top:.6rem;padding:.55rem .75rem;border-radius:10px;border:1px solid #f0b4ad;background:#fdf2f0;color:#8f2318;font-size:.88rem}.data-panel{margin-top:1rem}.data-tabs{display:flex;align-items:flex-end;gap:.3rem;margin-top:1rem;overflow-x:auto;border-bottom:1px solid #d7cebf}.data-tabs button{flex:0 0 auto;margin-bottom:-1px;padding:.65rem 1rem;border:1px solid #d7cebf;border-bottom-color:#d7cebf;border-radius:10px 10px 0 0;background:#eee9e1;color:var(--ink-600);font-weight:600}.data-tabs button:hover{background:#f7f3ed;color:var(--ink-900)}.data-tabs button.active{position:relative;z-index:1;border-color:#d7cebf;border-bottom-color:#fff;background:#fff;color:var(--pine-900)}.data-tabs button:focus-visible{z-index:2;outline:2px solid #62a89b;outline-offset:-3px}.data-tab-panel{padding:0 1rem 1rem;border:1px solid #d7cebf;border-top:0;border-radius:0 0 14px 14px;background:#fff}.data-tab-panel.estimator-layout{padding-top:1rem}.ride-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.8rem}.ride-toolbar__group{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.table-wrap{margin-top:.8rem;overflow-x:auto}.formula-card{margin-top:1rem;padding:1rem 1.05rem;border-radius:16px;border:1px solid #d7e7e2;background:linear-gradient(180deg,#f7fcfa,#eef7f4);box-shadow:0 10px 24px #125b5014}.formula-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.formula-card__header h3{margin:0}.formula-card__header span{color:var(--ink-600);font-size:.88rem}.formula-warning{margin-top:.7rem;padding:.55rem .7rem;border-radius:10px;background:#fff1e8;border:1px solid #f2c7aa;color:#7a2e00;font-size:.85rem}.formula-equation{margin-top:.85rem;padding:.9rem 1rem;border-radius:12px;background:#113f37;color:#f3fffb;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.98rem;line-height:1.5;overflow-x:auto}.formula-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:.9rem}.formula-weights{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-top:.75rem}.formula-grid div{display:grid;gap:.15rem;padding:.72rem .8rem;border-radius:12px;background:#ffffffb3;border:1px solid #dde9e5}.formula-grid strong{font-size:1rem}.formula-grid span{color:var(--ink-600);font-size:.85rem}.formula-weights div{display:grid;gap:.15rem;padding:.72rem .8rem;border-radius:12px;background:#ffffffd1;border:1px solid #dde9e5}.formula-weights strong{font-size:1rem}.formula-weights span{color:var(--ink-600);font-size:.85rem}table{width:100%;border-collapse:collapse;background:#fffdf9}th,td{border:1px solid #e7ddcf;padding:.5rem .6rem;font-size:.9rem;text-align:left;max-width:180px}th{background:#f3ebdd;color:var(--ink-900)}.rides-table{width:max-content;min-width:100%}.rides-table th,.rides-table td{min-width:7rem;max-width:14rem;white-space:nowrap}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 740px){.feedback-dialog__actions,.feedback-dialog__action{width:100%}.hero-brand{padding:.85rem .75rem .75rem}.hero-brand__copy{margin-left:0;text-align:left}.user-profile{right:.75rem}.user-profile__name{display:none}.auth-card,.estimator-layout{grid-template-columns:1fr}.data-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;overflow-x:visible;border-bottom:0}.data-tabs button{margin-bottom:0;border-radius:10px;text-align:center}.data-tabs button.active{border-bottom-color:#d7cebf}.data-tab-panel{margin-top:.6rem;border-top:1px solid #d7cebf;border-radius:14px}.field-group__heading,.results-card__header,.ride-toolbar{align-items:stretch;flex-direction:column}.route-upload,.garmin-action,.predict-action,.estimator-primary-action button{width:100%}.prediction-auth-cta .link-button{width:auto}.route-upload-actions{width:100%}.estimator-primary-action{justify-content:stretch}.field-grid,.field-grid.compact{grid-template-columns:1fr}.formula-card__header{flex-direction:column;align-items:flex-start}.formula-grid{grid-template-columns:1fr 1fr}.formula-weights,.result-grid{grid-template-columns:1fr}}.admin-shell{display:grid;gap:1rem}.user-profile__link{padding:.45rem .75rem;border:1px solid #d7cebf;border-radius:8px;color:var(--pine-900);font-weight:700;text-align:center;text-decoration:none}.user-profile__preview-toggle{display:flex;align-items:center;gap:.5rem;padding:.2rem .1rem;color:var(--ink-600);font-size:.85rem;cursor:pointer}.admin-card{padding:1rem 1.25rem;border:1px solid rgba(31,41,51,.1);border-radius:10px;background:var(--white);box-shadow:0 10px 24px #125b501a}.admin-card h2{margin:0 0 .75rem;font-size:1.05rem}.admin-note{margin:0 0 .75rem;max-width:70ch;color:var(--ink-600);font-size:.85rem}.style-field{--slider-thumb: 1.3rem;--slider-track: .4rem}.style-slider{position:relative;display:grid;align-items:center;min-height:2.6rem}.style-slider__ticks{position:absolute;left:calc(var(--slider-thumb) / 2);right:calc(var(--slider-thumb) / 2);display:flex;justify-content:space-between;pointer-events:none}.style-slider__ticks i{width:.5rem;height:.5rem;border-radius:50%;background:var(--white);box-shadow:0 0 0 1px #c9bda9}.style-field input[type=range]{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;width:100%;height:2.6rem;margin:0;background:transparent;cursor:pointer}.style-field input[type=range]:focus-visible{outline:2px solid var(--pine-800);outline-offset:3px;border-radius:10px}.style-field input[type=range]::-webkit-slider-runnable-track{height:var(--slider-track);border-radius:999px;background:linear-gradient(90deg,var(--pine-800) var(--slider-fill, 50%),#e6ded1 var(--slider-fill, 50%))}.style-field input[type=range]::-moz-range-track{height:var(--slider-track);border-radius:999px;background:linear-gradient(90deg,var(--pine-800) var(--slider-fill, 50%),#e6ded1 var(--slider-fill, 50%))}.style-field input[type=range]::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:var(--slider-thumb);height:var(--slider-thumb);margin-top:calc((var(--slider-track) - var(--slider-thumb)) / 2);border:2px solid var(--white);border-radius:50%;background:var(--pine-800);box-shadow:0 1px 4px #125b5059}.style-field input[type=range]::-moz-range-thumb{width:var(--slider-thumb);height:var(--slider-thumb);border:2px solid var(--white);border-radius:50%;background:var(--pine-800);box-shadow:0 1px 4px #125b5059}.style-scale{position:relative;height:1rem}.style-scale button{position:absolute;top:0;padding:.3rem .4rem;margin:-.3rem 0;border:0;border-radius:6px;background:none;color:var(--ink-600);font-size:.75rem;line-height:1;white-space:nowrap;transform:translate(-50%);cursor:pointer}.style-scale button:first-child{left:0;margin-left:-.4rem;transform:none}.style-scale button:last-child{right:0;margin-right:-.4rem;transform:none}.style-scale button:hover{color:var(--ink-900)}.style-scale button.active{color:var(--pine-800);font-weight:700}.style-tip{position:absolute;top:100%;left:50%;z-index:5;width:max-content;max-width:13rem;margin-top:.4rem;padding:.34rem .5rem;border-radius:8px;background:var(--ink-900);box-shadow:0 4px 12px #0f221e47;color:var(--white);font-size:.72rem;font-weight:400;line-height:1.3;text-align:left;white-space:normal;opacity:0;pointer-events:none;transform:translate(-50%);transition:opacity .12s ease}.style-tip:before{content:"";position:absolute;bottom:100%;left:var(--tip-caret, 50%);width:0;height:0;margin-left:-5px;border:5px solid transparent;border-bottom-color:var(--ink-900)}.style-scale button:hover .style-tip,.style-scale button:focus .style-tip{opacity:1;transition-delay:.25s}.style-slider:focus-within~.style-scale button.active .style-tip{opacity:1}.style-scale button:first-child .style-tip{--tip-caret: calc(.4rem + var(--slider-thumb) / 2 + .25rem);left:0;transform:none}.style-scale button:last-child .style-tip{--tip-caret: calc(100% - (.4rem + var(--slider-thumb) / 2 + .25rem));left:auto;right:0;transform:none}@media (prefers-reduced-motion: reduce){.style-tip{transition:none}}@media (max-width: 640px){.style-scale button:not(:first-child):not(:last-child):not(.active){visibility:hidden}.style-scale:has(button:nth-child(2).active) button:first-child,.style-scale:has(button:nth-child(4).active) button:last-child{visibility:hidden}}@media (max-width: 389px){.style-scale button{font-size:.68rem}}@media (max-width: 359px){.style-scale button{font-size:.62rem}}.admin-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.admin-filters label{display:grid;gap:.25rem;color:var(--ink-600);font-size:.8rem;font-weight:700}.admin-filters__actions{display:flex;gap:.5rem}.admin-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem}.admin-tile{display:grid;gap:.15rem;padding:.6rem .75rem;border-radius:8px;background:var(--sand-100)}.admin-tile__label{color:var(--ink-600);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.admin-tile__value{font-size:1.2rem}.admin-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1.25rem}.admin-table__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.admin-table__scroll{overflow-x:auto}.admin-table{width:max-content;min-width:100%}.admin-table th,.admin-table td{padding:.35rem .5rem;font-size:.8rem;white-space:nowrap}.chart{margin:0}.chart-frame{position:relative}.chart-frame__expand{position:absolute;top:0;right:0;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:1px solid rgba(31,41,51,.15);border-radius:6px;background:var(--white);color:var(--ink-600);cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease}.chart-frame__expand svg{width:1rem;height:1rem}.chart-frame:hover .chart-frame__expand,.chart-frame__expand:focus-visible{opacity:1}.chart-frame__expand:hover{color:var(--ink-900)}.chart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#121b228c}.chart-overlay__panel{position:relative;width:min(72rem,95vw);max-height:90vh;overflow:auto;padding:1.5rem;border-radius:12px;background:var(--white);box-shadow:0 24px 60px #125b5047}.chart-overlay__panel .chart figcaption{font-size:1.1rem}.chart-overlay__close{display:block;margin:1rem 0 0 auto}@media (max-width: 640px){.chart-frame__expand{opacity:1}}.chart figcaption{margin-bottom:.4rem;color:var(--ink-900);font-size:.9rem;font-weight:700}.chart svg{width:100%;height:auto}.chart__tick{fill:var(--ink-600);font-size:10px}.chart__axis-label{fill:var(--ink-600);font-size:11px;font-weight:700}.chart--empty p{margin:0;color:var(--ink-600);font-size:.85rem}.chart__legend,.chart--bars ul{margin:.4rem 0 0;padding:0;list-style:none}.chart__legend{display:flex;flex-wrap:wrap;gap:.5rem;color:var(--ink-600);font-size:.75rem}.chart__swatch{display:inline-block;width:.65rem;height:.65rem;margin-right:.25rem;border-radius:2px;vertical-align:middle}.chart--bars li{display:grid;grid-template-columns:7rem 1fr auto;align-items:center;gap:.5rem;padding:.15rem 0;font-size:.8rem}.chart__bar-label{color:var(--ink-900);font-weight:700;overflow:hidden;text-overflow:ellipsis}.chart__bar-track{height:.7rem;border-radius:4px;background:var(--sand-200)}.chart__bar-fill{display:block;height:100%;border-radius:4px}.chart__bar-value{color:var(--ink-600);white-space:nowrap}.chart__bar-value em{font-style:normal;opacity:.7}
