@import url('../table-pin.css?v=05db5fe6d080');

@import url("/text-tabs.css?v=a9c59832a3bb");
@import url("/viewer-controls.css?v=8fbdfc774367");
.import-navigation { align-items:flex-start; font-size:var(--paragraph-font-size); line-height:var(--paragraph-line-height); }
/* Native scrolling clips trimmed text boxes; restore their font extents inside each row. */
.import-page .import-tabs { box-sizing:border-box; width:calc(100% + 2 * var(--margin-grid)); max-width:none; margin-inline:calc(-1 * var(--margin-grid)); padding-inline:var(--margin-grid); padding-block:calc(-1 * var(--paragraph-top-compensator)) calc(-1 * var(--paragraph-bottom-compensator)); overflow-x:auto; scrollbar-width:none; }
.import-page .import-tabs::-webkit-scrollbar { display:none; }
.import-tabs menu { flex-wrap:nowrap; width:max-content; min-width:100%; max-width:none; overflow:visible; min-height:0; }
.import-tabs a { padding:0; color:var(--text-color); text-decoration:none; white-space:nowrap; }
.import-tabs a[aria-current=page] { cursor:default; }
.import-tabs a:hover { color:var(--hover-color); }
.import-tabs a:focus-visible { outline:2px solid var(--fog-blue); outline-offset:-2px; }
.import-options { color:#fff; }
.import-options > * { flex:0 0 auto; white-space:nowrap; }
.import-options > span { cursor:default; }
.import-page :is(button,select,input) { font:inherit; color:inherit; }
.import-page button { cursor:pointer; }
.import-page button:hover { color:var(--hover-color); }
.import-grid > .statistics-table-scroll { margin:0; overflow-x:auto; overflow-y:hidden; }
.import-table th[data-column=date] { box-sizing:border-box; min-width:var(--import-date-width,0px); }
.import-table { --statistics-file-color:var(--text-color); width:max-content; border-collapse:collapse; font-size:var(--small-font-size); line-height:var(--small-line-height); font-variant-numeric:tabular-nums; }
.import-table :is(th,td),.import-table td:first-child,.import-table td:last-child { padding:8px .75em; white-space:nowrap; vertical-align:middle; }
.import-table th { background:var(--background-color,#fff); text-align:left; vertical-align:top; font-size:inherit; font-weight:600; line-height:var(--small-line-height); }
.import-table thead tr { border-top:0; }
.import-table th > span { display:block; }
.import-table :is([data-column=garmin],[data-column=statistics]) { text-align:center; }
.import-table :is(th,td)[data-column=garmin] { padding-right:.375em; }
.import-table :is(th,td)[data-column=statistics] { padding-left:.375em; }
.import-table .presence-marker { display:inline-flex; align-items:center; justify-content:center; width:1.35em; height:1.35em; border-radius:50%; background:var(--fog-blue); color:#fff; line-height:1; }
.import-table td .presence-marker { width:1em; height:1em; }
.import-table a.presence-marker { text-decoration:none; }
.import-table a.presence-marker:hover { background:var(--hover-color); }
.import-table a.presence-marker:focus-visible { outline:2px solid var(--fog-blue); outline-offset:2px; }
.import-table [data-column=statistics] .presence-marker { background:var(--fog-green); }
.import-table .sortable { cursor:pointer; }
.import-table .sortable:focus-visible { outline:2px solid var(--fog-blue); outline-offset:-2px; }
.import-table th[aria-sort=ascending]::after { content:' ↑'; }
.import-table th[aria-sort=descending]::after { content:' ↓'; }
.import-table tr[tabindex] { cursor:pointer; }
.import-table tr[tabindex]:focus-visible { outline:2px solid var(--fog-blue); outline-offset:-2px; }
.import-table input[type=checkbox] { width:15px; height:15px; margin:0; vertical-align:middle; cursor:pointer; }
.import-table .paired-toggle { padding-right:0; }
.import-table .paired-value { padding-left:.25em; }
.import-table .quiet-column { color:#bbb; }
.import-table button { padding:0; border:0; background:transparent; color:inherit; }
.import-table [data-column=fit] { text-align:center; }
.import-table td[data-column=fit] { display:table-cell; position:relative; }
.import-table [data-column=fit] > .activity-fit-link { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; width:100%; height:100%; margin:0; }
.import-table .activity-fit-link svg { display:block; }
.import-table .source-label span { display:inline-block; padding:1px 7px; border-radius:999px; font-size:inherit; }
.import-table .source-fit .source-label span { background:color-mix(in srgb,var(--fog-blue) 15%,white); color:var(--fog-blue); }
.import-table .source-health .source-label span { background:color-mix(in srgb,var(--fog-red) 15%,white); color:var(--fog-red); }
.import-table .saved-only,.import-table .excluded { opacity:.4; }
.import-table .review-group-row:not(.review-group-first) td { padding-top:2px; }
.import-table .review-group-row:not(.review-group-last) td { padding-bottom:2px; border-bottom:0; }
.import-table tr.review-group-row:not(.review-group-last) { border-bottom:0; }
.import-table tr.review-group-row:not(.review-group-first) { border-top:0; }
.import-grid .import-table .review-group-row:not(.review-group-last) td { border-bottom:0; }
.import-table .duplicate-row.excluded { opacity:1; }
.import-table .duplicate-row.excluded > td:not([data-column=date]),.import-table .duplicate-row.excluded > [data-column=date] > span:not(.duplicate-label) { opacity:.4; }
.import-table .duplicate-row [data-column=date] { position:relative; }
.import-table .duplicate-label { position:absolute; left:50%; bottom:0; z-index:1; padding:.1em .35em; border-radius:999px; background:rgb(0 0 0 / .5); color:#fff; line-height:1; transform:translate(-50%,50%) rotate(-15deg); pointer-events:none; }
.import-error { color:var(--hover-color); }
.import-processing { margin-block:12px; font-size:var(--paragraph-font-size); line-height:var(--paragraph-line-height); }
.import-options button { text-decoration:none; }
.import-options button:disabled:not([data-exporting]) { cursor:default; color:rgb(255 255 255 / .5); }
@media (hover:hover) {
 .import-options > button:not(:disabled):hover { background:var(--hover-color); }
}
.import-options button:focus-visible { outline:2px solid #fff; outline-offset:-4px; }
.import-table [data-numeric] { text-align:right; }
.import-jobs > div { padding:.6em 0; border-bottom:1px solid currentColor; }
.import-jobs button,.import-jobs a { margin-left:.7em; }
.import-dialog { max-width:min(900px,90vw); max-height:85vh; overflow:auto; color:var(--text-color,#000); background:var(--background-color,#fff); }
.import-dialog svg:not(.activity-fit-link svg) { display:block; width:100%; max-height:40vh; }
.import-dialog pre { white-space:pre-wrap; overflow-wrap:anywhere; max-width:100%; font-size:.85em; }
.import-dialog button { font:inherit; margin:.5em .5em .5em 0; cursor:pointer; }
.import-page [hidden] { display:none!important; }
/* Shared hug spacing is for prose; these native flex rows own their gaps. */
.import-navigation :is(nav,menu,li,p,a,div,label,span,input,button) { margin:0; }
.import-navigation > .import-tabs:first-child { padding-top:calc(-1 * var(--paragraph-top-compensator)); }
.import-page > .import-navigation { padding-block:0; }
/* The route viewer retains table controls and uses Fog's basemap engine. */
.import-dialog { width:min(1200px,94vw); max-width:94vw; padding:16px; }
.import-dialog::backdrop { background:rgb(0 0 0 / .35); }
.import-detail-table { overflow-x:auto; margin-block:12px; }
.import-map { position:relative; height:clamp(280px,48vh,650px); isolation:isolate; background:#f7f9fc; }
.import-map-online,.import-map-fallback { position:absolute; inset:0; }
.import-map-fallback { display:flex; align-items:center; z-index:450; pointer-events:none; background:#f7f9fc; }
.import-map-fallback svg { width:100%; height:100%; max-height:none; }
.import-map [hidden] { display:none!important; }
.import-map .maplibregl-map { font-family:inherit; touch-action:none; }
.import-map .import-map-online { position:absolute; inset:0; }
.import-map .maplibregl-canvas-container { position:absolute; inset:0; }
.import-map .maplibregl-control-container { position:absolute; inset:0; z-index:500; pointer-events:none; }
.import-map .maplibregl-control-container .maplibregl-ctrl { pointer-events:auto; }
.import-map .maplibregl-ctrl-top-left { top:50%; left:22px; transform:translateY(-50%); }
.import-map .maplibregl-ctrl-top-left .maplibregl-ctrl { margin:0 0 10px; }
.import-map .maplibregl-ctrl-group button { display:flex; align-items:center; justify-content:center; width:52px; height:52px; margin:0; padding:0; border:0; background:#000; color:#fff; transition:background-color .2s ease; touch-action:manipulation; }
.import-map .maplibregl-ctrl-group button:disabled { opacity:1; color:rgb(255 255 255 / .55); cursor:default; }
.import-map .maplibregl-ctrl-group button:not(:disabled):active { background:var(--fog-red); }
.import-map .maplibregl-ctrl-group button:focus-visible { outline:2px solid #fff; outline-offset:-3px; }
.import-dialog .import-map .import-map-fit svg { width:29px; height:29px; margin:0; color:inherit; }
.import-map .maplibregl-ctrl-scale { margin:0 10px 10px; font-size:11px; line-height:1.3; }
.import-map-credits { position:absolute; z-index:500; right:5px; bottom:0; max-width:calc(100% - 6px); margin:0; padding:0; font-size:11px; line-height:14px; text-align:right; color:#555; }
.import-map-credits [hidden] { display:none!important; }
.import-map-credits a { color:inherit; font:inherit; text-decoration:none; }
@media(hover:hover){.import-map .maplibregl-ctrl-group button:not(:disabled):hover { background:var(--fog-red); }}
@media(max-width:800px){.import-map .maplibregl-ctrl-top-left { left:11px; }}
@media(max-width:520px){.import-dialog{padding:10px;max-height:92vh}.import-map{height:360px}}
.import-dialog > :is(div,p,select) { margin-block:12px; }
.import-dialog p { font-size:var(--paragraph-font-size); line-height:var(--paragraph-line-height); }
.import-dialog { box-sizing:border-box; max-width:calc(100vw - 16px); }
.import-dialog input[type=file],.import-dialog select { max-width:100%; }

/* Full-screen activity review: the map stays fixed while its data scrolls above it. */
html.import-viewer-open,html.import-viewer-open body { overflow:hidden; }
.import-dialog.import-viewer { --viewer-edge:22px; --viewer-top:max(var(--viewer-edge),calc(env(safe-area-inset-top) + var(--viewer-edge))); --viewer-bottom:max(var(--viewer-edge),calc(env(safe-area-inset-bottom) + var(--viewer-edge))); --viewer-left:max(var(--viewer-edge),calc(env(safe-area-inset-left) + var(--viewer-edge))); --viewer-right:max(var(--viewer-edge),calc(env(safe-area-inset-right) + var(--viewer-edge))); position:fixed; inset:0; width:100%; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; outline:none; overflow:hidden; background:#daddd8; }
.import-viewer > .import-detail-map { position:absolute; z-index:0; inset:0; margin:0; }
.import-viewer .import-map { position:absolute; inset:0; height:100%; }
.import-viewer .import-map-fallback svg { max-height:none; }
.import-viewer .import-map-note { bottom:calc(var(--viewer-bottom) + 62px); }
.import-viewer .import-map-note[hidden] { display:none; }
.import-detail-info { position:absolute; z-index:2; top:0; left:0; width:100%; max-width:100%; max-height:max(100px,calc(50dvh - 104px)); margin:0; padding:0; overflow:auto; overscroll-behavior:contain; background:var(--background-color,#fff); }
.import-detail-info:focus-visible,.import-detail-info .import-detail-table:focus-visible { outline:2px solid var(--fog-blue); outline-offset:-2px; }
.import-dialog.import-viewer .import-detail-info > * { margin:0; }
.import-dialog.import-viewer .import-detail-info > .import-detail-table { max-width:100%; margin:0; }
.import-detail-copy { display:flex; flex-direction:column; align-items:flex-start; gap:var(--margin-text); box-sizing:border-box; max-width:70ch; padding:12px; font-size:var(--small-font-size); line-height:var(--small-line-height); }
.import-detail-copy > * { margin:0; max-width:100%; }
.import-detail-copy p { margin-block:var(--margin-text); font-size:inherit; line-height:inherit; }
.import-detail-copy > p { margin:0; }
.import-detail-copy > div > p:first-child { margin-block-start:0; }
.import-dialog.import-viewer > .import-detail-pending { margin:0; bottom:calc(var(--viewer-bottom) + 62px); }
.import-dialog.import-viewer .import-detail-control svg { width:29px; height:29px; margin:0; color:inherit; pointer-events:none; }
.import-viewer .import-detail-close { position:absolute; z-index:4; bottom:var(--viewer-bottom); left:var(--viewer-left); border-radius:16px; }
.import-viewer .maplibregl-ctrl-bottom-left { bottom:calc(var(--viewer-bottom) + 62px); }
.import-detail-pager { position:absolute; z-index:4; left:50%; bottom:var(--viewer-bottom); transform:translateX(-50%); color:#fff; }
.import-detail-pager > span { padding-inline:8px; font-size:var(--small-font-size); line-height:1; white-space:nowrap; }
@media(max-width:800px){.import-dialog.import-viewer { --viewer-edge:13px; --viewer-left:max(11px,calc(env(safe-area-inset-left) + 11px)); --viewer-right:max(11px,calc(env(safe-area-inset-right) + 11px)); }}
@media(max-height:600px){.import-viewer .maplibregl-ctrl-top-left { left:var(--viewer-left); right:auto; }}

/* Native header and rows share horizontal scrolling; legacy browsers mirror a sticky copy. */
/* Fit and Health alone uses the native unglue gap above its main grid. */
.import-grid { position:relative; z-index:101; background:var(--background-color,#fff); }
.import-grid .import-table { border-collapse:separate; border-spacing:0; }
.import-grid .import-table tr { border:0; }
.import-grid .import-table :is(thead th,tbody td) { border-bottom:1px solid var(--statistics-rule-color); }
.import-grid .import-table tbody tr:last-child td { border-bottom:0; }
.import-grid .import-table thead { position:relative; z-index:2; }
.import-sticky-head { position:sticky; top:0; z-index:2; overflow:hidden; background:var(--background-color,#fff); }
.import-sticky-head .import-table { table-layout:fixed; border-bottom:0; }
.import-sticky-head th { box-sizing:border-box; }
.import-grid[data-sticky-ready] > .statistics-table-scroll thead th { height:0; padding-block:0; border:0; line-height:0; overflow:hidden; clip-path:inset(50%); }
.import-grid[data-sticky-ready] > .statistics-table-scroll thead .presence-marker { display:flex; height:0; overflow:hidden; }
.import-sticky-head .is-focused { outline:2px solid var(--fog-blue); outline-offset:-2px; }
/* Explicit geometry editing reuses the viewer overlay and shared text palette. */
.import-editor { margin:0; }
/* Keep actionable notices in the dialog top layer; reuse shared notification presentation. */
.import-viewer .import-editor-status { display:block; bottom:calc(var(--viewer-bottom) + 62px); }
.import-editor-status button { margin:0; }
.import-editor-status [hidden] { display:none!important; }
.import-detail-copy:has(> div > .import-editor:empty) { display:none; }

.import-viewer .import-detail-editor-actions { position:absolute; z-index:4; bottom:var(--viewer-bottom); right:var(--viewer-right); display:flex; flex-direction:column; gap:10px; margin:0; padding:0; }
.import-viewer .import-detail-editor-actions .import-detail-control { border-radius:16px; }
.import-viewer .import-detail-editor-actions [hidden] { display:none; }
.import-viewer .import-detail-edit[hidden] { display:none; }

/* The popup uses the same compact grid and linked-row hover as the main table. */
.import-table { border-collapse:separate; border-spacing:0; }
.import-table tr { border:0; }
.import-table :is(thead th,tbody td) { border-bottom:1px solid var(--statistics-rule-color); }
.import-table tbody tr:last-child td { border-bottom:0; }
.import-dialog .import-table button { margin:0; }
.import-detail-copy:has(> div:empty) { display:none; }

@media(max-width:800px){.import-dialog.import-viewer:has(.import-detail-editor-actions button[aria-pressed]:not([hidden])) { --viewer-bottom:max(48px,calc(env(safe-area-inset-bottom) + 48px)); }}

/* File cells retain the shared independent action color, including duplicate groups. */
@media(hover:hover){
 .import-table .activity-file:hover { --text-color:var(--hover-color); }
 .import-table tbody tr:hover:has(.activity-file:hover) { --text-color:var(--statistics-file-color); }
 .import-grid .import-table .duplicate-hover,.import-grid .import-table .duplicate-hover > td { background:var(--box-color); }
 .import-grid .import-table .duplicate-hover:not(.duplicate-file-hover) { --text-color:var(--hover-color); color:var(--text-color); }
}

.import-table tr > :is(th,td):first-child { padding-left:0; }
.import-table tr > :is(th,td):last-child { padding-right:0; }

.import-table tr > :is(th,td)[data-column=source] { text-align:left; padding-inline:.75em; }
