/* GPS LAB — WESNIEBLAS WHITE TOOL CONTRACT
   Everything is scoped to .wn-tool so GPS Lab cannot restyle the site shell. */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"]{
  --tool-bg:var(--site-tool-bg,var(--site-bg,#f7f9fc));
  --tool-surface:var(--site-tool-surface,var(--site-surface,#fff));
  --tool-raised:var(--site-tool-surface-raised,var(--site-surface-raised,#f3f6fa));
  --tool-control:var(--site-tool-control,#fff);
  --tool-text:var(--site-tool-text,var(--site-text,#172238));
  --tool-muted:var(--site-tool-muted,var(--site-muted,#66758d));
  --tool-line:var(--site-tool-line,var(--site-line,#dce3ec));
  --tool-line-strong:var(--site-tool-line-strong,var(--site-line-strong,#bfcada));
  --tool-accent:var(--site-tool-accent,var(--site-accent,#655cff));
  --tool-accent-hover:var(--site-tool-accent-hover,var(--site-accent-hover,#397fd5));
  --tool-accent-ink:var(--site-tool-accent-ink,#fff);
  --tool-accent-soft:var(--site-tool-accent-soft,rgba(101,92,255,.1));
  --tool-shadow:var(--site-tool-shadow,0 18px 46px rgba(29,48,77,.09));
  --tool-shadow-soft:var(--site-tool-shadow-soft,0 5px 15px rgba(31,48,73,.07));
  --tool-good:#16854b;
  --tool-warn:#9a6700;
  --tool-danger:#b42318;
  min-height:60vh;
  background:var(--tool-bg);
  color:var(--tool-text);
  color-scheme:var(--site-tool-color-scheme,light);
  font-family:var(--site-tool-font,var(--site-font,Inter,system-ui,sans-serif));
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"],
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] *{box-sizing:border-box}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] button,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] input,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] select,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] textarea{font:inherit}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] button{cursor:pointer}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] img,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] svg{max-width:100%}

/* Shared white-tool page geometry */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-container{
  width:min(1180px,calc(100% - (2 * var(--site-gutter,24px))));
  margin-inline:auto;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-intro{
  padding:clamp(40px,6vw,68px) 0 clamp(26px,4vw,40px);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-eyebrow{
  margin:0 0 9px;
  color:var(--tool-accent);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-intro h1{
  max-width:850px;
  margin:0;
  color:var(--tool-text);
  font-size:clamp(2.25rem,5vw,4rem);
  line-height:1.02;
  letter-spacing:-.05em;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-lead{
  max-width:760px;
  margin:16px 0 0;
  color:var(--tool-muted);
  font-size:clamp(1rem,1.5vw,1.14rem);
  line-height:1.65;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-workspace{padding:0 0 clamp(64px,9vw,110px)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .gps-shell{margin:0;padding:0}

/* GPS enable + install actions */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .gps-toolbar{
  display:flex;
  justify-content:flex-end;
  margin:0 0 14px;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .head-actions,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .button-row{
  display:flex;
  align-items:center;
  gap:10px;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .button-row.wrap{flex-wrap:wrap}

/* Standard white-tool buttons */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-button,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .btn{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  border:1px solid var(--tool-line-strong);
  border-radius:11px;
  background:var(--tool-raised);
  color:var(--tool-text);
  font-weight:750;
  text-decoration:none;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-button:hover,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .btn:hover{
  border-color:var(--tool-accent);
  background:var(--tool-accent-soft);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-button.is-primary,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .btn.primary{
  border-color:var(--tool-accent);
  background:var(--tool-accent);
  color:var(--tool-accent-ink);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-button.is-primary:hover,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .btn.primary:hover{
  border-color:var(--tool-accent-hover);
  background:var(--tool-accent-hover);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .btn.danger{border-color:color-mix(in srgb,var(--tool-danger) 35%,var(--tool-line));color:var(--tool-danger);background:var(--tool-surface)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .btn.small{min-height:38px;padding:8px 12px;font-size:.82rem}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-help,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .icon-btn{
  display:inline-grid;
  width:30px;
  height:30px;
  min-height:30px;
  flex:0 0 30px;
  place-items:center;
  padding:0;
  border:1px solid var(--tool-line);
  border-radius:50%;
  background:var(--tool-surface);
  color:var(--tool-muted);
  font-weight:800;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-help:hover,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .icon-btn:hover{border-color:var(--tool-accent);color:var(--tool-accent);background:var(--tool-surface)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-button:focus-visible,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-help:focus-visible,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-tab:focus-visible{
  outline:3px solid color-mix(in srgb,var(--tool-accent) 25%,transparent);
  outline-offset:2px;
}

/* GPS status — now a light utility strip instead of a black bar */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-strip{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:16px;
  padding:6px;
  border:1px solid var(--tool-line);
  border-radius:14px;
  background:var(--tool-raised);
  color:var(--tool-muted);
  font-size:.78rem;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-strip>div{
  display:flex;
  align-items:center;
  gap:5px;
  min-height:32px;
  padding:4px 9px;
  border-radius:9px;
  background:var(--tool-surface);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-strip strong{color:var(--tool-text);font-weight:750}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--tool-line-strong)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-dot.live{background:var(--tool-good);box-shadow:0 0 0 4px color-mix(in srgb,var(--tool-good) 14%,transparent)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-dot.record{background:var(--tool-danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--tool-danger) 12%,transparent)}

/* Standard white-tool tabs */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-tabs,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tabbar{
  display:inline-flex;
  max-width:100%;
  overflow-x:auto;
  flex-wrap:nowrap;
  gap:4px;
  margin:0 0 18px;
  padding:5px;
  border:1px solid var(--tool-line);
  border-radius:14px;
  background:var(--tool-raised);
  scrollbar-width:none;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tabbar::-webkit-scrollbar{display:none}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-tab,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tab{
  min-height:42px;
  white-space:nowrap;
  padding:9px 17px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--tool-muted);
  font-weight:700;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tab:hover{color:var(--tool-text)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tab.active{
  background:var(--tool-surface);
  color:var(--tool-text);
  box-shadow:var(--tool-shadow-soft);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .panel{display:none}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .panel.active{display:block}

/* Cards, panels and grids */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .live-grid,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .trip-grid,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coordinate-card{grid-column:span 2;grid-row:span 2}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-card,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .card{
  min-width:0;
  padding:20px;
  border:1px solid var(--tool-line);
  border-radius:20px;
  background:var(--tool-surface);
  color:var(--tool-text);
  box-shadow:var(--tool-shadow);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .card-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .card h2{margin:0;color:var(--tool-text);font-size:clamp(1.05rem,1.8vw,1.3rem);line-height:1.2;letter-spacing:-.025em}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .card h3{margin:0;color:var(--tool-text);font-size:1.05rem}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .muted{color:var(--tool-muted);line-height:1.55}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .chart-card{margin-top:18px}

/* Live readouts */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coord-pair{display:grid;gap:10px;margin:10px 0}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coord-pair div{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--tool-line)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coord-pair span,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card span,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-pair span,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .sun-grid span{color:var(--tool-muted);font-size:.78rem}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coord-pair strong{font-size:clamp(1.35rem,4vw,2rem);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .accuracy-line{margin:4px 0 2px;color:var(--tool-accent);font-size:.86rem}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card{display:flex;min-height:132px;flex-direction:column;justify-content:center}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card strong{font-size:clamp(1.8rem,4vw,2.55rem);font-weight:760;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card small{color:var(--tool-muted)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card.big{grid-column:span 2}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-chip,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .pill{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid var(--tool-line);border-radius:999px;background:var(--tool-raised);color:var(--tool-muted);font-size:.74rem;font-weight:700}

/* Fields and settings */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] label{display:grid;gap:7px;color:var(--tool-text);font-size:.88rem;font-weight:750}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] select,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] textarea{
  width:100%;
  min-height:46px;
  margin:0;
  padding:10px 12px;
  border:1px solid var(--tool-line-strong);
  border-radius:11px;
  outline:0;
  background:var(--tool-control);
  color:var(--tool-text);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] select:focus,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] input:focus,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] textarea:focus{border-color:var(--tool-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tool-accent) 17%,transparent)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .toggle{display:flex;align-items:center;gap:9px;font-weight:600;color:var(--tool-muted)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .toggle input{width:auto;min-height:0}

/* Compass + navigation */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .compass-wrap{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:28px;align-items:center}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .compass-dial{
  width:min(70vw,330px);
  aspect-ratio:1;
  margin:18px auto;
  position:relative;
  border:1px solid var(--tool-line-strong);
  border-radius:50%;
  background:radial-gradient(circle at center,var(--tool-raised) 0 5%,transparent 5% 100%),repeating-conic-gradient(from 0deg,var(--tool-line-strong) 0deg 1deg,transparent 1deg 10deg),var(--tool-surface);
  box-shadow:inset 0 0 0 10px var(--tool-raised);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .compass-dial span{position:absolute;font-weight:800;color:var(--tool-text)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .north{top:11px;left:50%;transform:translateX(-50%);color:var(--tool-danger)!important}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .east{right:14px;top:50%;transform:translateY(-50%)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .south{bottom:11px;left:50%;transform:translateX(-50%)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .west{left:14px;top:50%;transform:translateY(-50%)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .needle{position:absolute;left:50%;top:12%;width:4px;height:38%;background:linear-gradient(var(--tool-danger) 0 50%,var(--tool-text) 50%);transform-origin:50% 100%;transform:translateX(-50%) rotate(0deg);border-radius:5px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .compass-readout strong{display:block;font-size:clamp(2.5rem,6vw,3.5rem);letter-spacing:-.04em}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .compass-readout span{color:var(--tool-muted)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .nav-arrow-wrap{height:170px;display:grid;place-items:center}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .nav-arrow{font-size:110px;line-height:1;color:var(--tool-accent);transform-origin:center;transition:transform .2s linear}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-pair div,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .sun-grid div{padding:14px;border:1px solid var(--tool-line);border-radius:14px;background:var(--tool-raised)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-pair strong,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .sun-grid strong{display:block;margin-top:2px;color:var(--tool-text);font-size:1.25rem}

/* Map, measurement and averaging */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .map{height:min(62vh,600px);min-height:360px;overflow:hidden;border:1px solid var(--tool-line);border-radius:14px;background:var(--tool-raised)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .map-fallback{height:100%;display:grid;place-items:center;padding:30px;color:var(--tool-muted);text-align:center}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .point-list{display:grid;gap:8px;margin:16px 0}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .point-list div{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px 12px;border:1px solid var(--tool-line);border-radius:11px;background:var(--tool-raised)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .point-list strong{color:var(--tool-accent)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .progress{height:8px;margin:16px 0;overflow:hidden;border-radius:99px;background:var(--tool-raised)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .progress>div{height:100%;width:0;background:var(--tool-accent)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coord-small{display:grid;gap:4px;margin:12px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* More menu / secondary panels */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-card{
  min-height:116px;
  padding:18px;
  border:1px solid var(--tool-line);
  border-radius:16px;
  background:var(--tool-surface);
  color:var(--tool-text);
  text-align:left;
  box-shadow:var(--tool-shadow-soft);
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-card:hover{border-color:var(--tool-accent);background:var(--tool-accent-soft)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-card strong{display:block;font-size:1.05rem}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-card span{display:block;margin-top:6px;color:var(--tool-muted);font-size:.86rem;line-height:1.45}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .subpanel{margin-top:18px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .waypoint-list,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .format-list,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .capability-list{display:grid;gap:9px;margin-top:14px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .waypoint,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .format-row,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .cap-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--tool-line);border-radius:12px;background:var(--tool-surface)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .waypoint small,
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .format-row small{display:block;color:var(--tool-muted)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .format-row code{color:var(--tool-text);font-size:.85rem;overflow-wrap:anywhere}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .cap-row strong.good{color:var(--tool-good)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .cap-row strong.bad{color:var(--tool-muted)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .sun-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .recorder-status{display:flex;align-items:center;margin-bottom:12px}

/* Dialogs match the same white surface system */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(23,34,56,.32);backdrop-filter:blur(4px)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .modal[hidden]{display:none}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .modal-card{position:relative;width:min(620px,100%);max-height:80vh;overflow:auto;padding:24px;border:1px solid var(--tool-line);border-radius:20px;background:var(--tool-surface);color:var(--tool-text);box-shadow:var(--tool-shadow)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .modal-close{position:absolute;right:14px;top:14px}

/* HUD is an intentional full-screen instrument mode rather than site chrome. */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud{position:fixed;inset:0;z-index:200;background:#07101f;color:#fff}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud[hidden]{display:none}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud-close{position:absolute;right:20px;top:20px;width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:25px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud-content{height:100%;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:7vw;text-align:center}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud-content>div{display:grid;gap:10px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud-content span{color:#b9c4d7;font-size:clamp(16px,3vw,32px)}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud-content strong{font-size:clamp(34px,8vw,110px);font-variant-numeric:tabular-nums}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud.mirror .hud-content{transform:scaleX(-1)}

/* Toast */
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .toast{position:fixed;left:50%;bottom:26px;z-index:300;pointer-events:none;opacity:0;transform:translate(-50%,30px);padding:10px 14px;border:1px solid var(--tool-line);border-radius:11px;background:var(--tool-surface);color:var(--tool-text);box-shadow:var(--tool-shadow);transition:.2s}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:850px){
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .live-grid,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coordinate-card{grid-column:1/-1;grid-row:auto}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .two-col{grid-template-columns:1fr}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-grid{grid-template-columns:repeat(2,1fr)}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .compass-wrap{grid-template-columns:1fr}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .sun-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-tabs{display:flex;width:100%}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .wn-tool-tab{flex:1 1 auto;padding-inline:10px}
}
@media(max-width:560px){
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .gps-toolbar{justify-content:stretch}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .gps-toolbar .head-actions{width:100%}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .gps-toolbar .btn{flex:1}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-strip{gap:5px}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-strip>div{flex:1 1 auto}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .live-grid,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .trip-grid,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-grid,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .settings-grid{grid-template-columns:1fr 1fr;gap:12px}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card.big{grid-column:1/-1}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .card{padding:16px;border-radius:16px}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card{min-height:110px}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card strong{font-size:1.8rem}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-card{min-height:96px;padding:14px}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .coord-pair strong{font-size:1.35rem}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud-content{grid-template-columns:1fr;padding:14vh 6vw}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .sun-grid{grid-template-columns:1fr 1fr}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .button-row{flex-wrap:wrap}
}
@media(max-width:420px){
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .live-grid,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .trip-grid,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-grid,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .settings-grid{grid-template-columns:1fr}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-card.big{grid-column:auto}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .metric-pair{grid-template-columns:1fr}
}
@media print{
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"]{
    --tool-bg:#fff;--tool-surface:#fff;--tool-raised:#f5f6f8;--tool-control:#fff;
    --tool-text:#111827;--tool-muted:#526078;--tool-line:#d8dee7;--tool-line-strong:#adb7c5;
    background:#fff;color:#111827;
  }
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .head-actions,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tabbar,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .status-strip,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .button-row,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .help,
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .close-sub{display:none!important}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .panel{display:block!important;margin-bottom:16px}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .card{box-shadow:none;break-inside:avoid}
  .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .more-grid{display:none}
}

/* Measurement source and time panels retain the host's semantic theme. */
.wn-tool[data-tool-id="gps-lab"] .source-note{margin-bottom:16px;border-left:3px solid var(--tool-accent)}
.wn-tool[data-tool-id="gps-lab"] .source-note p{color:var(--tool-muted);margin-bottom:0;line-height:1.6}
.wn-tool[data-tool-id="gps-lab"] .time-card{margin-top:16px}
.wn-tool[data-tool-id="gps-lab"] .time-grid{display:grid;grid-template-columns:1fr;gap:18px}
.wn-tool[data-tool-id="gps-lab"] .time-grid span{display:block;color:var(--tool-muted);font-size:.85rem;margin-bottom:5px}
.wn-tool[data-tool-id="gps-lab"] .time-grid strong{display:block;font-size:1rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.wn-tool[data-tool-id="gps-lab"] .waypoint-form{margin:20px 0;align-items:end}
.wn-tool[data-tool-id="gps-lab"] button,.wn-tool[data-tool-id="gps-lab"] select,.wn-tool[data-tool-id="gps-lab"] input{min-height:44px}
.wn-tool[data-tool-id="gps-lab"] :focus-visible{outline:3px solid var(--tool-accent);outline-offset:3px}
.wn-tool[data-tool-id="gps-lab"] [hidden]{display:none!important}
.wn-tool[data-tool-id="gps-lab"] .cap-row{gap:12px;align-items:start}
.wn-tool[data-tool-id="gps-lab"] .cap-row strong{text-align:right;overflow-wrap:anywhere}
.wn-tool[data-tool-id="gps-lab"] .metric-card strong{font-variant-numeric:tabular-nums}
@media(min-width:640px){.wn-tool[data-tool-id="gps-lab"] .time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.wn-tool[data-tool-id="gps-lab"] *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(min-width:360px) and (max-width:420px){
 .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .live-grid .metric-card strong{font-size:1.55rem;overflow-wrap:anywhere}
}
@media(max-width:560px){
 .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tabbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:4px}
 .gps-lab-page .wn-tool[data-tool-id="gps-lab"] .tab{min-width:0;text-align:center}
}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] button,.gps-lab-page .wn-tool[data-tool-id="gps-lab"] input,.gps-lab-page .wn-tool[data-tool-id="gps-lab"] select{min-height:44px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] .hud>#hudStatus{position:absolute;top:20px;left:20px;right:70px}
.gps-lab-page .wn-tool[data-tool-id="gps-lab"] #accuracyChart{display:block;width:100%;height:150px;min-width:0}
