/* FIT Suite Design System · 205
   One presentation layer for Suite, FLA and the Portale. Scientific/chart
   geometry and data tables remain authoritative in their original modules. */
:root {
  color-scheme: light;
  --fit-bg: #f4f7fa;
  --fit-paper: #ffffff;
  --fit-ink: #14263b;
  --fit-muted: #52657b;
  --fit-border: #d9e3ed;
  --fit-border-strong: #bacbd9;
  --fit-blue: #155ca9;
  --fit-blue-hover: #0e477f;
  --fit-blue-tint: #edf5fd;
  --fit-teal: #11776f;
  --fit-teal-tint: #e9f7f5;
  --fit-header: #10253b;
  --fit-shadow: 0 2px 9px rgba(18, 48, 80, .055);
  --fit-shadow-hover: 0 5px 16px rgba(18, 48, 80, .09);
  --fit-radius: 13px;
}
html {scroll-behavior: smooth; scroll-padding-top: 78px;}
*, *::before, *::after {box-sizing: border-box;}
body.fit-ui {min-width: 320px; margin: 0; background: var(--fit-bg); color: var(--fit-ink); font-family: "Segoe UI", Inter, system-ui, -apple-system, sans-serif; font-size: 14px; line-height: 1.48; -webkit-font-smoothing: antialiased;}
body.fit-ui a {color: var(--fit-blue); text-underline-offset: 2px;}
body.fit-ui h1, body.fit-ui h2, body.fit-ui h3 {letter-spacing: -.018em; line-height: 1.2;}
body.fit-ui h1 {font-size: clamp(24px, 2.1vw, 30px); margin-top: 12px; margin-bottom: 10px;}
body.fit-ui h2 {font-size: clamp(19px, 1.7vw, 23px); margin-top: 18px; margin-bottom: 12px;}
body.fit-ui h3 {font-size: 17px; margin-top: 3px; margin-bottom: 14px; color: var(--fit-ink);}
body.fit-ui p {max-width: 110ch;}
body.fit-ui .muted, body.fit-ui .small, body.fit-ui small {color: var(--fit-muted);}
body.fit-ui .card, body.fit-ui .panel, body.fit-ui .perfCard, body.fit-ui .rrCard, body.fit-ui .chartPanel, body.fit-ui .performanceCard {
  background: var(--fit-paper); border: 1px solid var(--fit-border); border-radius: var(--fit-radius);
  box-shadow: var(--fit-shadow); min-width: 0;
}
body.fit-ui .card, body.fit-ui .panel, body.fit-ui .chartPanel {padding: clamp(14px, 1.8vw, 22px);}
body.fit-ui .perfCard, body.fit-ui .rrCard {padding: 15px 18px;}
body.fit-ui .perfCard span, body.fit-ui .rrCard span {font-variant-numeric: tabular-nums; letter-spacing: -.035em;}
body.fit-ui .grid, body.fit-ui .perfCards, body.fit-ui .rrCards {gap: 12px;}
body.fit-ui .warn, body.fit-ui .ok, body.fit-ui .error {border-radius: 9px; border: 1px solid transparent; box-shadow: none;}
body.fit-ui .warn {background:#fffbeb; border-color:#f2ddb6; color:#754c0b;}
body.fit-ui .ok {background:#effaf5; border-color:#b9e7d2; color:#195740;}
body.fit-ui .error {background:#fff1f1; border-color:#edbcbc; color:#8e292c;}
body.fit-ui .badge, body.fit-ui .pill {border-radius: 999px;}
body.fit-ui :is(button, .btn, .btn2, a.btn, .btnNeutral):not(.row-menu-btn):not(.danger-item) {
  font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1.25; text-decoration: none;
  border-radius: 9px; transition: background-color .14s, border-color .14s, box-shadow .14s;
}
body.fit-ui :is(button, .btn, a.btn):not(.btnNeutral):not(.row-menu-btn):not(.danger-item):not(.danger) {background:var(--fit-blue); color:#fff;}
body.fit-ui :is(button, .btn, a.btn):not(.btnNeutral):not(.row-menu-btn):not(.danger-item):not(.danger):hover {background:var(--fit-blue-hover);}
body.fit-ui button.btn2 {background:var(--fit-teal); color:#fff;}
body.fit-ui button.btnNeutral {background:#f2f6fa; color:var(--fit-ink); border:1px solid var(--fit-border-strong);}
body.fit-ui button.btnNeutral:hover {background: #e8f0f8;}
body.fit-ui button:disabled {opacity:.6; cursor:not-allowed;}
body.fit-ui :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {outline: 3px solid #61a3e8 !important; outline-offset: 2px;}
body.fit-ui :is(input, select, textarea) {font-family:inherit; max-width:100%; accent-color:var(--fit-blue);}
body.fit-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]), select, textarea) {border:1px solid var(--fit-border-strong); border-radius:8px; background: #fff; color:var(--fit-ink);}
body.fit-ui :is(input, select, textarea):disabled {background:#f3f6f9;}
body.fit-ui label {color:var(--fit-ink);}
body.fit-ui .fit-skip-link {position:absolute; top:-100px; left:10px; z-index:12000; background:#fff; color:var(--fit-ink); padding:10px 15px; border-radius:8px;}
body.fit-ui .fit-skip-link:focus {top:12px;}
/* Global information architecture */
body.fit-shell .top {position:sticky; top:0; z-index:500; background:var(--fit-header); border-bottom:1px solid #27425c; padding:11px clamp(14px,2.8vw,38px); gap:10px; flex-wrap:wrap;}
body.fit-shell .top > b {font-size:15px; font-weight:750; letter-spacing:.005em;}
body.fit-shell .top > div {display:flex; align-items:center; flex-wrap:wrap; gap:5px;}
body.fit-shell .top a {display:inline-flex; align-items:center; padding:7px 10px; border-radius:8px; margin-left:0; font-size:13px; font-weight:600; color:#deebf6;}
body.fit-shell .top a:hover, body.fit-shell .top a[aria-current=page] {color:#fff; background:#284865;}
body.fit-shell .top form {margin:0 0 0 7px !important;}
body.fit-shell .top form button {padding:7px 12px; background:#2b4762; border:1px solid #46627c;}
body.fit-shell .wrap {max-width:1250px; margin:26px auto 72px; padding:0 clamp(12px,2.5vw,30px);}
body.fit-shell .wrap > .grid {margin-top:18px;}
body.fit-shell .card {margin:12px 0;}
body.fit-shell .login {max-width:440px; border:1px solid var(--fit-border); box-shadow:var(--fit-shadow);}
body.fit-shell .userform {overflow:auto;}
/* FLA: persistent, horizontally scrollable primary nav with secondary menu */
body.fit-fla {padding:0 clamp(12px,2.4vw,34px) 60px !important;}
body.fit-fla .performanceNav, body.fit-fla .rrNav, body.fit-fla .profileNav {display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:8px 0 14px;}
body.fit-fla .performanceNav a, body.fit-fla .rrNav a, body.fit-fla .profileNav a {margin:0 !important; font-size:12px; padding:7px 11px; border-radius:999px; background:#fff !important; border:1px solid var(--fit-border); color:var(--fit-ink) !important; box-shadow:none;}
body.fit-fla .performanceNav a:hover, body.fit-fla .rrNav a:hover {background:var(--fit-blue-tint) !important;}
body.fit-fla .performanceNav a[aria-current=page], body.fit-fla .rrNav a[aria-current=page] {border-color:var(--fit-blue); color:var(--fit-blue) !important;}
body.fit-fla .filters, body.fit-fla .perfFilters, body.fit-fla .rrFilters, body.fit-fla .historyFilter {border:1px solid var(--fit-border); border-radius:var(--fit-radius); background:#fff; box-shadow:var(--fit-shadow);}
body.fit-fla .perfFilters label, body.fit-fla .rrFilters label, body.fit-fla .filters label {font-size:12px; color:var(--fit-muted); font-weight:650;}
body.fit-fla .performanceCard, body.fit-fla .chartPanel {box-shadow:var(--fit-shadow);}
body.fit-fla .two, body.fit-fla .mini, body.fit-fla .runGrid {min-width:0;}
body.fit-fla .mini > *, body.fit-fla .two > *, body.fit-fla .runGrid > * {min-width:0;}
/* Long scientific tables: preserve every column and keep headings distinguishable. */
body.fit-ui .fit-table-scroll, body.fit-ui .tableScroll, body.fit-ui .tableWrap {
  max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin;
  border:1px solid var(--fit-border); border-radius:10px; background:#fff;
}
body.fit-ui .fit-table-scroll {margin:12px 0 18px;}
body.fit-ui .fit-table-scroll table, body.fit-ui .tableScroll table, body.fit-ui .tableWrap table {width:100%; margin:0; border-collapse:separate; border-spacing:0; font-variant-numeric:tabular-nums;}
body.fit-ui :is(table) th {background:#f0f5fa; color:#32475d; font-size:12px; font-weight:750; line-height:1.35; border:0; border-bottom:1px solid var(--fit-border-strong); padding:10px 12px; white-space:nowrap;}
body.fit-ui :is(table) td {font-size:12.5px; color:var(--fit-ink); padding:9px 12px; border:0; border-bottom:1px solid #e8edf2; vertical-align:top;}
body.fit-ui table tbody tr:hover {background:#f2f8ff;}
body.fit-ui table tbody tr:last-child td {border-bottom:0;}
body.fit-ui table th, body.fit-ui table td {font-variant-numeric:tabular-nums;}
body.fit-ui table th[scope=col] {text-align:left;}
body.fit-ui .sensorPickerBox {border-color:var(--fit-border); box-shadow:0 12px 22px #19344b26;}
body.fit-ui .sensorPicker summary {border-radius:8px;}
body.fit-ui .chartPanel {min-width:0; overflow:hidden;}
/* Never set widths/heights on scientific SVGs: zoom, X/Y axes and tachogram
   sizing remain owned by the existing chart renderers. */
/* Portal analysis */
body.fit-portal .wrap {width:100%; max-width:1560px; margin:0 auto; padding:clamp(12px,2vw,26px);}
body.fit-portal .hero {background:var(--fit-header); border:1px solid #2a4a67; border-radius:var(--fit-radius); box-shadow:var(--fit-shadow); padding:18px 22px;}
body.fit-portal .hero h1 {color:#fff; margin:0; font-size:clamp(22px,2.1vw,29px);}
body.fit-portal .brandIcon {box-shadow:none; background:#1f557e; border-radius:11px;}
body.fit-portal .hero .row {gap:8px;}
body.fit-portal .hero input {color:#152638; background:#fff;}
body.fit-portal #suitePortalNav {display:flex; align-items:center; flex-wrap:wrap; gap:5px; margin-bottom:13px; padding:0;}
body.fit-portal #suitePortalNav a {color:var(--fit-muted); font-size:13px; font-weight:650; padding:8px 11px; border:1px solid transparent; border-radius:9px; text-decoration:none;}
body.fit-portal #suitePortalNav a:hover, body.fit-portal #suitePortalNav a[aria-current=page] {background:#fff; border-color:var(--fit-border); color:var(--fit-blue);}
body.fit-portal .grid {grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;}
body.fit-portal .grid > .wide, body.fit-portal .grid > #routeMapCard,
body.fit-portal .grid > #rrAnalysisCard, body.fit-portal .grid > #lapCard,
body.fit-portal .grid > #zonesWrap {grid-column:1/-1;}
body.fit-portal .grid > #zonesWrap {display:grid; grid-template-columns:repeat(2,minmax(0,1fr));}
body.fit-portal #metrics, body.fit-portal #thresholds {grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
body.fit-portal .metricCard {min-width:0;}
body.fit-portal .metricValue {font-variant-numeric:tabular-nums;}
body.fit-portal .rrDisclaimer {border:1px solid #c9e2f7; color:#254866; background:#f0f7fd; font-size:12px;}
body.fit-portal .tsCtrl, body.fit-portal .tachCtrl {background:#f5f8fb; border:1px solid var(--fit-border); border-radius:10px; padding:9px !important;}
body.fit-portal .tsSel {accent-color:var(--fit-blue);}
body.fit-portal #routeMap {border-radius:10px; overflow:hidden;}
body.fit-portal .mapNotice {background:#f4f8fb; border-color:var(--fit-border); font-size:12px; color:var(--fit-muted);}
body.fit-portal .fit-section-nav {display:flex; gap:6px; align-items:center; overflow-x:auto; padding:9px 1px 14px; margin-bottom:1px; scrollbar-width:thin;}
body.fit-portal .fit-section-nav a {text-decoration:none; white-space:nowrap; padding:7px 12px; color:var(--fit-muted); background:#fff; border:1px solid var(--fit-border); border-radius:999px; font-size:12px; font-weight:700;}
body.fit-portal .fit-section-nav a:hover, body.fit-portal .fit-section-nav a[aria-current=location] {background:var(--fit-blue-tint); border-color:#95b9dd; color:var(--fit-blue);}
body.fit-portal .fit-method-note {margin-top:10px; color:#d3e5f3; border-top:1px solid #375772; padding-top:7px; font-size:12px;}
body.fit-portal .fit-method-note summary {color:#eef5fa; font-weight:600; cursor:pointer; padding:4px 0;}
body.fit-portal .fit-method-note > div {max-width:120ch; padding:7px 0;}
body.fit-ui .fit-back-top {position:fixed; bottom:22px; right:22px; z-index:500; width:44px; height:44px; padding:0; border-radius:999px !important; border:1px solid #fff6 !important; background:var(--fit-header) !important; color:white !important; box-shadow:0 6px 18px #10253b3d; display:none; align-items:center; justify-content:center; font-size:19px;}
body.fit-ui .fit-back-top.is-visible {display:flex;}
@media (max-width:1100px) {
  #fitSuiteGlobalNav {flex-wrap:wrap;}
  #fitSuiteGlobalNav .fit-nav-scroll {order:3; flex-basis:100%;}
  #fitSuiteGlobalNav .fit-nav-actions {margin-left:auto;}
}
@media (max-width:790px) {
  body.fit-portal .grid {grid-template-columns:minmax(0,1fr);}
  body.fit-portal .grid > #zonesWrap {grid-template-columns:minmax(0,1fr);}
  body.fit-portal .hero .row {justify-content:flex-start;}
  body.fit-portal .hero :is(input[type=file],input[type=number]) {max-width:100%;}
  body.fit-fla .mini, body.fit-fla .two, body.fit-fla .runGrid {grid-template-columns:minmax(0,1fr) !important;}
  body.fit-fla .grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  body.fit-fla .perfFilters, body.fit-fla .rrFilters, body.fit-fla .filters {grid-template-columns:repeat(2,minmax(0,1fr));}
  body.fit-shell .top {position:relative;}
  body.fit-shell .top > div {overflow-x:auto; max-width:100%; flex-wrap:nowrap;}
}
@media (max-width:530px) {
  body.fit-fla .grid, body.fit-fla .perfFilters, body.fit-fla .rrFilters, body.fit-fla .filters {grid-template-columns:minmax(0,1fr);}
  body.fit-portal .hero {padding:15px;}
  body.fit-portal .hero .brand {margin-bottom:8px;}
  body.fit-portal .fit-section-nav {gap:5px;}
  #fitSuiteGlobalNav .fit-nav-brand {font-size:15px;}
  #fitSuiteGlobalNav .fit-nav-actions button {font-size:11px;}
  body.fit-ui h1 {font-size:23px;}
  body.fit-ui .fit-back-top {bottom:12px; right:12px;}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  body.fit-ui *, body.fit-ui *::before, body.fit-ui *::after {transition-duration:.01ms !important; animation-duration:.01ms !important;}
}

/* Build 205: same primary navigation grammar in Portal, FLA and the Suite shell. */
body.fit-portal #suitePortalNav {position:sticky; top:0; z-index:9900; display:flex; align-items:center; gap:6px; min-height:62px; flex-wrap:nowrap; margin:-26px -26px 20px; padding:9px clamp(12px,2.4vw,34px); background:var(--fit-header); border-bottom:1px solid #28455f; box-shadow:0 3px 14px #0c23341a; color:#f6f9fc;}
body.fit-portal #suitePortalNav .fit-nav-brand {color:#fff!important; font-size:16px; letter-spacing:-.025em; white-space:nowrap; border:0;}
body.fit-portal #suitePortalNav .fit-nav-scroll {display:flex; gap:4px; flex:1; min-width:0; align-items:center; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin;}
body.fit-portal #suitePortalNav a {display:inline-flex; align-items:center; flex-shrink:0; color:#dde8f5; border:1px solid transparent; font-size:13px; font-weight:600; padding:7px 11px; border-radius:8px; min-height:35px;}
body.fit-portal #suitePortalNav a:hover, body.fit-portal #suitePortalNav a[aria-current=page] {background:#244c70; border-color:#416587; color:#fff;}
body.fit-shell .top {min-height:62px; box-shadow:0 3px 14px #0c23341a; justify-content:flex-start;}
body.fit-shell .top a {border:1px solid transparent; margin:0; padding:7px 11px; min-height:35px;}
body.fit-shell .top a:hover, body.fit-shell .top a[aria-current=page] {border-color:#416587; background:#244c70;}
body.fit-portal .rrTemporalScreenPanel {border-top:1px solid var(--fit-border); margin-top:18px; padding-top:12px;}
body.fit-portal .rrTemporalScreenPanel h4 {font-size:16px; color:var(--fit-header); margin:4px 0;}
@media(max-width:700px){body.fit-portal #suitePortalNav {margin:-12px -12px 14px;}body.fit-portal #suitePortalNav .fit-nav-brand{font-size:13px;}}

/* Build 207: action wrapping and one top bar regardless of page origin. */
body.fit-fla .exportLinks{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
body.fit-fla .exportLinks a.btn{display:inline-flex;margin:0;white-space:normal;}
body.fit-fla .topNav{display:none;}

/* FIT UI 219: one navigation and readable, responsive presentation. */
:root{--fit-bg:#f3f6fa;--fit-paper:#fff;--fit-ink:#192d45;--fit-muted:#5b6b7f;--fit-border:#dce4ee;--fit-blue:#245cce;--fit-blue-hover:#19499f;--fit-blue-tint:#edf3ff;--fit-radius:14px;--fit-shadow:0 2px 8px #18375208;--fit-page-pad:24px;}
body.fit-ui{font-size:14px;line-height:1.55;overflow-wrap:break-word;}
body.fit-ui h1{font-size:clamp(25px,2.3vw,32px);font-weight:750;letter-spacing:-.035em;margin:0 0 18px;}
body.fit-ui h2{font-size:21px;letter-spacing:-.02em;}
body.fit-ui main{min-width:0;}
body.fit-fla{margin:0;padding:0 var(--fit-page-pad) 64px!important;}
body.fit-fla main#fitMain{max-width:1520px;margin:auto;}
body.fit-shell .wrap{max-width:1320px;margin:28px auto 64px;}
.fit-shell-header{position:sticky;top:0;z-index:9900;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav){position:sticky;top:0;z-index:9900;display:flex;align-items:center;gap:20px;min-height:68px;padding:10px var(--fit-page-pad);margin:0 calc(-1 * var(--fit-page-pad)) 28px;background:#fff;color:var(--fit-ink);border:0;border-bottom:1px solid var(--fit-border);border-radius:0;box-shadow:0 2px 12px #122b4510;font:600 14px/1.3 'Segoe UI',system-ui,sans-serif;}
body.fit-shell :is(#fitShellNav,.fit-main-nav){margin:0;position:static;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-brand{display:inline-flex;align-items:center;gap:9px;flex-shrink:0;padding:0;background:transparent!important;border:0!important;color:var(--fit-ink)!important;font-size:17px;font-weight:750;text-decoration:none;box-shadow:none;white-space:nowrap;}
.fit-brand-mark{display:inline-grid;place-items:center;background:var(--fit-blue);color:#fff;width:32px;height:34px;border-radius:10px;font-weight:800;font-size:20px;}
body.fit-ui .fit-nav-brand small{font-size:10px;letter-spacing:.02em;color:var(--fit-muted);background:#f0f4f9;padding:3px 5px;border-radius:4px;}
.fit-nav-primary{display:flex;align-items:center;gap:3px;flex:1;min-width:0;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-primary a{color:var(--fit-muted);font-size:13px;min-height:42px;padding:11px 12px;display:inline-flex;align-items:center;text-decoration:none;border-radius:8px;border:0;background:transparent;white-space:nowrap;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) a[aria-current=page]{background:var(--fit-blue-tint);color:var(--fit-blue);box-shadow:none;border-color:transparent;}
.fit-nav-controls{display:flex;align-items:center;gap:7px;margin-left:auto;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-help-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:9px 11px;color:var(--fit-muted);font-size:13px;text-decoration:none;border:1px solid transparent;border-radius:9px;background:transparent;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-help-link:hover{background:var(--fit-blue-tint);color:var(--fit-blue);}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-more{position:relative;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-more>summary{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--fit-ink);background:#f2f5fa;border:1px solid var(--fit-border);padding:10px 13px;border-radius:9px;cursor:pointer;list-style:none;font-size:13px;}
.fit-menu-icon{font-size:16px;line-height:1;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-more-panel{position:absolute;top:calc(100% + 12px);right:0;left:auto;width:min(650px,calc(100vw - 32px));max-height:calc(100dvh - 95px);overflow:auto;background:#fff;border:1px solid var(--fit-border);border-radius:14px;box-shadow:0 16px 50px #1d35552b;padding:18px;color:var(--fit-ink);}
.fit-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px;}
.fit-menu-all{grid-column:1/-1;}
.fit-menu-group{display:flex;flex-direction:column;min-width:0;}
.fit-eyebrow{display:block;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--fit-muted);margin-bottom:8px;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-more-panel a{display:flex;align-items:center;min-height:42px;white-space:normal;color:var(--fit-ink);font-size:13px;padding:9px;border-radius:7px;text-decoration:none;background:transparent;border:0;}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-more-panel a:hover{color:var(--fit-blue);background:var(--fit-blue-tint);}
body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--fit-border);margin-top:18px;padding-top:14px;}
body.fit-ui .fit-nav-actions form{margin:0;}
body.fit-ui .fit-nav-actions button{min-height:40px;white-space:normal;font-size:12px;padding:9px 12px;}
body.fit-ui :is(button,.btn,.btn2,a.btn,.btnNeutral){min-height:42px;cursor:pointer;}
body.fit-ui a.btnNeutral{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:9px;border:1px solid var(--fit-border);color:var(--fit-ink);background:#fff;text-decoration:none;font-weight:600;}
body.fit-ui :is(.fit-table-scroll,.tableScroll,.tableWrap){max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border-radius:10px;}
body.fit-ui table{border-collapse:separate;border-spacing:0;max-width:none;}
body.fit-ui table th{font-size:12px;font-weight:700;background:#f1f5fb;color:#485e78;text-align:left;}
body.fit-ui table :is(th,td){padding:11px 12px;border-bottom:1px solid var(--fit-border);line-height:1.4;}
body.fit-ui table tr[role=link]:focus-visible{outline-offset:-3px;}
body.fit-ui :is(.row-menu-btn,.actions-col){min-width:44px;min-height:44px;}
body.fit-ui .row-menu-btn{width:44px;height:44px;}
body.fit-ui form{min-width:0;max-width:100%;}
body.fit-ui :is(input,select,textarea){min-width:0;max-width:100%;}
body.fit-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){min-height:42px;padding:9px 10px;font-size:14px;}
body.fit-ui .sensorPickerBox{max-width:min(480px,calc(100vw - 32px));}
body.fit-ui :is(.perfCards,.rrCards){grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));}
body.fit-ui .fit-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px;}
.fit-metric-card{background:#fff;border:1px solid var(--fit-border);border-radius:14px;padding:18px 20px;box-shadow:var(--fit-shadow);}
.fit-metric-card span{display:block;color:var(--fit-muted);font-size:12px;}
.fit-metric-card strong{display:block;font-size:28px;letter-spacing:-.035em;margin-top:6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.fit-dashboard-shortcuts{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 12px;}
body.fit-ui :is(.card,.panel,.chartPanel,.procedureCard){border:1px solid var(--fit-border);box-shadow:var(--fit-shadow);}
body.fit-ui .procedureCard p{min-height:0;}
body.fit-ui .fit-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:16px;}
.fit-module-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--fit-border);border-radius:14px;padding:22px;color:var(--fit-ink);text-decoration:none!important;box-shadow:var(--fit-shadow);}
.fit-module-card h2,.fit-module-card h3{margin:0 0 8px!important;font-size:20px!important;}
.fit-module-card p{margin:0 0 20px;color:var(--fit-muted);font-size:14px;}
.fit-module-card h3 a{color:var(--fit-ink);text-decoration:none;}
.fit-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:auto;}
.fit-context-help,.fit-card-link{font-weight:650;color:var(--fit-blue);}
.fit-context-help{padding:10px 0;}
.fit-module-card:hover{border-color:#a4bbde;}
.fit-page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;}
.fit-page-heading .btn{flex-shrink:0;}
.fit-page-heading h1{margin-bottom:8px!important;}
.fit-lead{font-size:17px;color:var(--fit-muted);margin:0;}
.fit-breadcrumb{display:inline-block;margin-bottom:24px;text-decoration:none;font-size:13px;}
.fit-manual{max-width:1050px;margin:0 auto;}
.fit-manual section{background:#fff;border:1px solid var(--fit-border);padding:24px;border-radius:14px;margin:18px 0;scroll-margin-top:90px;}
.fit-manual section h2{margin-top:0;}
.fit-manual li{padding:5px 0 8px 5px;font-size:15px;line-height:1.6;}
.fit-manual section p,.fit-manual td{font-size:15px;line-height:1.6;}
.fit-manual th[scope=row]{min-width:145px;background:#f5f8fc;}
.fit-manual-index{display:flex;gap:7px;flex-wrap:wrap;}
.fit-manual-index a{background:#e8f0fe;border-radius:7px;padding:9px 12px;text-decoration:none;font-size:13px;}
.fit-search-label{display:block;font-weight:650;margin-bottom:5px;}
#fitManualSearch{max-width:480px;margin:0 0 24px;width:100%;}
body.fit-portal .wrap{max-width:1560px;padding:var(--fit-page-pad);}
body.fit-portal #suitePortalNav{margin:calc(-1 * var(--fit-page-pad)) calc(-1 * var(--fit-page-pad)) 26px;}
body.fit-portal .hero{background:#fff;border:1px solid var(--fit-border);color:var(--fit-ink);padding:24px;box-shadow:var(--fit-shadow);}
body.fit-portal .hero h1{color:var(--fit-ink);font-size:28px;}
body.fit-portal .hero .sub,body.fit-portal .hero .small{color:var(--fit-muted)!important;}
body.fit-portal .hero .brandIcon{background:var(--fit-blue);font-size:26px;width:48px;height:48px;}
.fit-portal-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;}
.fit-build-label{color:var(--fit-muted);font-size:11px;white-space:nowrap;}
.fit-upload-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;}
body.fit-ui input.fit-file-input{position:absolute;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;}
#fileNameLabel{overflow-wrap:anywhere;}
.fit-advanced{border-top:1px solid var(--fit-border);margin-top:20px;padding-top:12px;}
.fit-advanced>summary{font-size:13px;font-weight:650;color:var(--fit-muted);cursor:pointer;padding:6px 0;}
.fit-analysis-options{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:12px;}
.fit-analysis-options label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:650;}
body.fit-ui .fit-analysis-options input{width:200px;margin:0;}
body.fit-portal :is(#rrAnalysisCard,#tsAnalysisCard,#routeMapCard,#lapCard,#pedalingProfileCard){grid-column:1/-1;}
body.fit-portal .fit-section-nav{position:static;gap:7px;padding:12px 0;margin:8px 0 18px;}
body.fit-portal .fit-section-nav a{background:#fff;border:1px solid var(--fit-border);border-radius:7px;color:var(--fit-muted);padding:9px 12px;min-height:40px;}
body.fit-portal :is(.metricSub,.estMeta){font-size:12px;line-height:1.5;}
body.fit-portal .bar{height:7px;background:#e6edf7;}
body.fit-portal #bar{background:var(--fit-blue);}
@media(max-width:1150px){
 body.fit-ui .fit-nav-primary{display:none;}
 body.fit-ui :is(.mini,.runGrid){grid-template-columns:minmax(0,1fr)!important;}
}
@media(max-width:700px){
 :root{--fit-page-pad:12px;}
 body.fit-ui{font-size:14px;}
 body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav){gap:10px;min-height:64px;margin-bottom:20px;padding:9px 12px;}
 body.fit-shell .wrap{margin-top:20px;padding:0 12px;}
 body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-brand{font-size:15px;gap:7px;}
 body.fit-ui .fit-brand-mark{width:28px;height:31px;font-size:18px;border-radius:8px;}
 body.fit-ui .fit-nav-brand small{display:none;}
 body.fit-ui .fit-help-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
 body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-help-link{width:44px;justify-content:center;padding:9px;}
 body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-more>summary{padding:10px;gap:5px;}
 body.fit-ui :is(#fitSuiteGlobalNav,#suitePortalNav,.fit-main-nav) .fit-nav-more-panel{position:fixed;top:70px;left:12px;right:12px;width:auto;max-height:calc(100dvh - 82px);padding:16px;}
 .fit-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 8px;}
 body.fit-ui :is(.grid,.procedureGrid,.perfCards,.rrCards,.rrBrowserFilters){grid-template-columns:minmax(0,1fr)!important;}
 body.fit-ui .fit-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
 .fit-metric-card{padding:14px;}
 .fit-metric-card strong{font-size:25px;}
 body.fit-ui :is(.card,.panel,.chartPanel){padding:16px;}
 body.fit-ui :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:16px;min-height:44px;}
 body.fit-ui :is(button,.btn,.btn2,a.btn,.btnNeutral){min-height:44px;white-space:normal;}
 body.fit-ui .userform{grid-template-columns:1fr;}
 body.fit-ui :is(.row,.filters,.filterRow,.exportLinks){flex-wrap:wrap;min-width:0;}
 .fit-page-heading{flex-direction:column;gap:15px;}
 .fit-manual section{padding:18px;}
 .fit-manual li,.fit-manual td,.fit-manual section p{font-size:14px;}
 body.fit-portal .hero{padding:18px;}
 .fit-portal-title{margin-bottom:18px;}
 .fit-portal-title .brandIcon{display:none;}
 body.fit-portal .hero h1{font-size:25px;}
 .fit-portal-title .sub{font-size:13px;}
 .fit-analysis-options label,body.fit-ui .fit-analysis-options input{width:100%;}
 body.fit-ui .fit-analysis-options button{flex:1;}
}
@media print{
 .fit-main-nav,.fit-back-top,.fit-manual-index,.fit-skip-link{display:none!important;}
 body.fit-ui{background:white;}
 .fit-manual section{break-inside:avoid;border:0;padding:0;}
}
body.fit-ui [hidden]{display:none!important;}
/* Navigation icons do not inherit the scientific chart SVG dimensions. */
body.fit-ui .fit-main-nav .fit-help-link svg{display:block;width:20px;height:20px;flex:0 0 20px;}
body.fit-ui :is(a.btn,a.btn2,a.btnNeutral){display:inline-flex;align-items:center;justify-content:center;max-width:100%;text-align:center;white-space:normal;vertical-align:middle;}
.fit-view-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;}
.fit-import-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;}
.fit-import-actions form{margin:0;}
/* Use the renderer's own height for both panes, at every zoom level. */
body.fit-portal .fixedAxisChart svg{height:var(--fit-chart-height)!important;}
