/* Tesla Hub dashboard rail v2 — isolated from legacy ignition-controls rules. */
.instrument-page .dashboard,
.focus-view .dashboard{padding:0;gap:4px}
.instrument-page .dashboard .gauge,
.focus-view .dashboard .gauge{width:min(29vw,calc(100vh - 335px),305px);min-width:140px}
.instrument-page.engine-off .dashboard .speed-gauge{width:min(46vw,calc(100vh - 285px),335px)}
.instrument-page .rpm-track{margin:2px auto 5px}
.instrument-page .synth-note{display:none}

.instrument-page .widget-rail,
.focus-view .widget-rail{
  display:grid!important;
  grid-template-columns:minmax(280px,1.6fr) 88px 138px 166px 206px 58px;
  grid-template-rows:132px;
  align-items:stretch;
  gap:10px;
  width:100%;
  min-height:132px;
  padding:5px 0;
}
.instrument-page .widget-card,
.instrument-page .widget-rail>.radio-mini,
.instrument-page .widget-rail>.weather-widget,
.instrument-page .widget-rail>.charging-widget,
.instrument-page .widget-rail>.settings-launcher{
  position:static;
  inset:auto;
  width:100%;
  min-width:0;
  max-width:none;
  height:132px;
  min-height:132px;
  margin:0;
  transform:none;
  border:1px solid #43513c;
  border-radius:24px;
  background:linear-gradient(145deg,#212a21f2,#101710f5);
  box-shadow:inset 0 1px 0 #ffffff12,0 9px 22px #0004;
  overflow:hidden;
}

/* Radio */
.instrument-page .widget-rail>.radio-mini{
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px 42px;
  grid-template-rows:46px 52px;
  grid-column:1;
  gap:7px;
  padding:12px;
  z-index:auto;
}
.widget-rail .radio-mini>button{min-height:42px;padding:7px;border-radius:14px}
.widget-rail .radio-mini #radio-mini-open{
  min-width:0;
  max-width:none;
  overflow:hidden;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.widget-rail .radio-mini-volume{
  grid-column:1/-1;
  display:flex;
  width:100%;
  min-height:44px;
  gap:7px;
  padding:0;
}
.widget-rail .radio-mini-volume input{flex:1;width:auto;min-width:55px;max-width:none;min-height:42px;margin:0;touch-action:pan-x}
.widget-rail .radio-mini-volume button{flex:0 0 38px;min-height:38px;padding:3px;border-radius:12px;font-size:19px}
.widget-rail .radio-mini-volume output{min-width:32px;text-align:right;font-size:10px}

/* Weather */
.instrument-page .widget-rail>.weather-widget{
  display:flex;
  grid-column:3;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:11px;
  text-align:left;
}
.widget-rail .weather-widget #weather-enable{width:100%;min-height:106px;padding:6px 2px;border:0;background:transparent}
.widget-rail .weather-widget #weather-enable>span{font-size:27px}
.widget-rail .weather-widget .weather-heading{gap:5px}
.widget-rail .weather-widget .weather-heading>span{font-size:20px}
.widget-rail .weather-widget .weather-heading strong{font-size:26px}
.widget-rail .weather-widget .weather-heading button{width:25px;min-height:25px;padding:0;font-size:16px}
.widget-rail .weather-widget #weather-condition{margin:3px 0;font-size:9px}
.widget-rail .weather-widget small,
.widget-rail .weather-widget #weather-status{font-size:8px;line-height:1.2}
.widget-rail .weather-credit{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Currency */
.currency-widget{grid-column:4;display:flex;flex-direction:column;padding:11px 12px;gap:7px}
.currency-heading{display:flex;align-items:center;gap:6px;color:var(--acid)}
.currency-heading>b{font-size:10px;line-height:1.1;white-space:nowrap}
.currency-heading>button{margin-left:auto;width:25px;min-height:25px;padding:0;border:0;background:transparent;font-size:17px}
.currency-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.currency-grid span{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:6px 7px;border-radius:10px;background:#ffffff09;font-size:10px}
.currency-grid b{color:#aab8a3}
.currency-grid strong{font-size:10px;font-variant-numeric:tabular-nums}
.currency-widget>small{margin-top:auto;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Start/Stop and accelerator share one card. */
.engine-widget{grid-column:5;display:grid;grid-template-columns:104px 52px;grid-template-rows:104px 18px;align-items:center;justify-content:center;column-gap:12px;padding:4px 8px}
.widget-rail .ignition-switch{
  flex:0 0 98px;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  width:98px;
  height:98px;
  min-height:98px;
  padding:15px 8px 10px;
  border:6px solid #63686e;
  border-radius:50%;
  background:radial-gradient(circle at 36% 25%,#fb524b,#b30e19 62%,#59050d);
  color:#fff;
  box-shadow:0 0 0 2px #171a1e,0 0 0 4px #90969b,0 7px 12px #0009,inset 0 2px 4px #ffffff55,inset 0 -5px 7px #280005;
  font-family:system-ui,sans-serif;
  line-height:1.15;
  text-shadow:0 1px 2px #500;
  touch-action:manipulation;
}
.widget-rail .ignition-word{font-size:14px;font-weight:800;letter-spacing:1.2px}
.widget-rail .ignition-switch small{font-size:8px;letter-spacing:2px;opacity:.75;margin-top:3px}
.widget-rail .ignition-led{position:absolute;top:9px;left:calc(50% - 8px);width:16px;height:3px;border-radius:2px;background:#fa9c94;box-shadow:0 0 8px #ff9d8b}
.widget-rail[data-state=running] .ignition-led{background:#a7ff86;box-shadow:0 0 10px #8aff69}
.widget-rail[data-state=starting] .ignition-led{background:#ffd771;animation:ignition-led-blink .6s ease-in-out infinite}
.widget-rail .ignition-switch:active{transform:translateY(3px);box-shadow:0 0 0 2px #171a1e,0 0 0 4px #90969b,0 2px 5px #0009,inset 0 2px 4px #ffffff33,inset 0 -3px 7px #280005}
.widget-rail .ignition-switch:disabled{opacity:.75;cursor:wait}
.engine-widget #start{grid-column:1;grid-row:1;margin:0;justify-self:center}
.engine-widget #pedals,
.focus-view .engine-widget #pedals{display:flex!important;grid-column:2;grid-row:1;margin:0;align-self:center}
.engine-widget #pedals .car-pedal,
.focus-view .engine-widget #rev{display:flex!important;flex-direction:row;align-items:center;justify-content:center;min-height:83px;padding:0;gap:5px}
.engine-widget .accelerator-pedal .pedal-face{width:42px;height:69px}
.engine-widget .pedal-caption{display:block;font-size:8px;line-height:1;letter-spacing:1px;writing-mode:vertical-rl;transform:rotate(180deg)}
.engine-widget #ignitionHint{display:block;grid-column:1/-1;grid-row:2;max-width:100%;margin:0;align-self:center;overflow:hidden;text-align:center;font-size:8px;line-height:1.15}
.engine-widget .hint-pedal-arrow{display:none}

/* Vertical settings tab */
.instrument-page .widget-rail>.settings-launcher{
  display:flex;
  grid-column:6;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:8px 5px;
  color:#e4ece0;
}
.widget-rail .settings-launcher .settings-icon{font-size:22px;line-height:1;color:var(--acid)}
.widget-rail .settings-launcher span:last-child{font-size:9px;letter-spacing:.5px;line-height:1;writing-mode:vertical-rl;transform:rotate(180deg)}
.instrument-page #message{min-height:12px;margin:2px 0 0;text-align:center;font-size:9px;line-height:1.2}

@media(min-width:701px) and (max-height:800px){
  .instrument-page .dashboard .gauge,
  .focus-view .dashboard .gauge{width:min(27vw,calc(100vh - 310px),285px)}
  .instrument-page.engine-off .dashboard .speed-gauge{width:min(43vw,calc(100vh - 265px),315px)}
}
@media(max-width:900px){
  .instrument-page .widget-rail,
  .focus-view .widget-rail{
    grid-template-columns:230px 84px 116px 136px 184px 48px;
    grid-template-rows:126px;
    gap:8px;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:7px;
    scrollbar-width:thin;
  }
  .instrument-page .widget-card,
  .instrument-page .widget-rail>.radio-mini,
  .instrument-page .widget-rail>.weather-widget,
  .instrument-page .widget-rail>.charging-widget,
  .instrument-page .widget-rail>.settings-launcher{height:126px;min-height:126px;border-radius:22px}
}
@media(max-width:600px){
  .instrument-page .dashboard .gauge,
  .focus-view .dashboard .gauge{width:min(42vw,230px)}
  .instrument-page.engine-off .dashboard .speed-gauge{width:min(68vw,305px)}
  .instrument-page .widget-rail,
  .focus-view .widget-rail{grid-template-columns:220px 84px 116px 136px 180px 48px}
}
@media(prefers-reduced-motion:reduce){.widget-rail *{transition:none!important}}

/* Header presence, compass and GPS altitude. */
.instrument-page #bookmark[hidden],
.focus-view #bookmark[hidden]{display:none!important}
.drive-info{display:flex;align-items:stretch;gap:6px;min-height:38px}
.presence-chip,.nav-chip{display:flex;align-items:center;gap:7px;min-height:38px;padding:5px 9px;border:1px solid #394733;border-radius:14px;background:linear-gradient(145deg,#1d261df2,#101710f2);box-shadow:inset 0 1px 0 #ffffff0d;color:#e7eee3}
.presence-chip strong,.nav-chip b{display:block;font-size:10px;line-height:1.1;white-space:nowrap}
.presence-chip small,.nav-chip small{display:block;margin-top:2px;color:#93a08d;font-size:7px;line-height:1;white-space:nowrap}
.presence-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#78ee68;box-shadow:0 0 0 3px #78ee6820,0 0 8px #78ee68;animation:presence-pulse 2.2s ease-in-out infinite}
.nav-chip>span:first-child{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px;border-radius:50%;color:var(--acid);font-size:16px}
.compass-arrow{transform:rotate(var(--heading));transition:transform .35s ease-out}
.altitude-chip>span:first-child{font-size:18px}
@keyframes presence-pulse{50%{opacity:.5;transform:scale(.82)}}
.focus-view .drive-info{display:none}
@media(max-width:900px){
  .drive-info{order:2;margin-left:auto}
  .presence-chip,.nav-chip{padding:5px 7px}
  .presence-chip small,.nav-chip small{display:none}
}
@media(max-width:650px){
  .drive-info{width:100%;order:5;justify-content:flex-end}
  .presence-chip,.nav-chip{min-height:34px}
}
.presence-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.presence-copy>span:first-child{display:flex;align-items:baseline;gap:3px}
.listeners-now{color:#9fac98;font-size:7px;line-height:1;white-space:nowrap}
.listeners-now b{color:var(--acid);font-size:8px;font-variant-numeric:tabular-nums}
@media(max-width:900px){.listeners-now{font-size:7px}}

/* Compact GPS instrument pair with a shared permission state. */
.gps-instruments{position:relative;display:grid;grid-template-columns:46px 46px;gap:5px;width:97px;min-width:97px;height:38px}
.gps-instruments .nav-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:46px;min-width:46px;height:38px;min-height:38px;padding:2px;border-radius:13px}
.gps-instruments .nav-chip>strong{display:block;font-size:7px;line-height:1;font-weight:700;white-space:nowrap}
.gps-instruments .compass-dial{position:relative!important;display:block!important;width:22px!important;height:22px!important;flex:0 0 22px!important;border:1px solid #53644b;border-radius:50%!important;color:var(--acid);font-size:7px!important}
.compass-dial i{position:absolute;top:1px;left:50%;transform:translateX(-50%);font-style:normal;font-size:5px;color:#9eaa99}
.compass-dial .compass-arrow{position:absolute;inset:2px;display:flex;align-items:center;justify-content:center;width:auto;height:auto;color:var(--acid);font-size:15px;line-height:1;transform:rotate(var(--heading));transform-origin:center;transition:transform .35s ease-out}
.altitude-symbol{display:flex!important;align-items:center!important;justify-content:center!important;width:22px!important;height:22px!important;flex:0 0 22px!important;color:var(--acid);font-size:21px!important;line-height:1}
.gps-instruments-status{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;padding:4px 8px;border:1px solid #4a593f;border-radius:13px;background:linear-gradient(145deg,#1d261df8,#101710fc);color:#b8c5b1;text-align:center;font-size:8px;line-height:1.2}
.gps-instruments.has-gps .gps-instruments-status{display:none}
@media(max-width:900px){.gps-instruments{width:97px;min-width:97px}}

/* Keep the original engine-on layout from style.css. */
.instrument-page:not(.engine-off) .dashboard>.side-instrument{display:none!important}

/* Round auxiliary gauges immediately flank the speedometer. */
.engine-off .dashboard{--aux-diameter:min(114px,18vw)}
.engine-off .compass-instrument{grid-column:1}
.engine-off .speed-gauge{grid-column:2}
.engine-off .altitude-instrument{grid-column:3}
.side-instrument{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;justify-self:center;width:calc(var(--aux-diameter) + 6px);height:calc(var(--aux-diameter) + 26px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;gap:4px;opacity:.55;overflow:visible}
.side-instrument.gps-ready{opacity:1}
.side-instrument-status{z-index:3;top:2px;right:1px}
.side-instrument .compass-dial,
.side-instrument .altimeter-dial{position:relative;display:block;box-sizing:border-box;width:var(--aux-diameter);height:var(--aux-diameter);flex:0 0 var(--aux-diameter);border:3px solid #5d675f;border-radius:50%;background:radial-gradient(circle at 45% 42%,#243024 0,#0c120d 68%,#050806 100%);box-shadow:0 0 0 2px #111713,0 0 0 3px #87908755,0 7px 13px #0009,inset 0 0 13px #000}
.side-instrument .compass-dial:after,
.side-instrument .altimeter-dial:after{content:"";position:absolute;inset:5px;border:1px dashed #61705b88;border-radius:50%}
.side-instrument .compass-dial i{position:absolute;z-index:1;color:#84907f;font-style:normal;font-size:10px;line-height:1}
.side-instrument .compass-dial .point-n{top:8px;left:50%;transform:translateX(-50%);color:var(--acid)}
.side-instrument .compass-dial .point-e{left:auto;right:8px;top:50%;transform:translateY(-50%)}
.side-instrument .compass-dial .point-s{top:auto;bottom:8px;left:50%;transform:translateX(-50%)}
.side-instrument .compass-dial .point-w{left:8px;top:50%;transform:translateY(-50%)}
.side-instrument .compass-arrow{position:absolute;z-index:2;inset:22%;display:flex;align-items:center;justify-content:center;color:var(--acid);font-size:calc(var(--aux-diameter) * .48);line-height:1;transform:rotate(var(--heading));transform-origin:center;filter:drop-shadow(0 0 4px var(--acid));transition:transform .35s ease-out}
.side-instrument .compass-dial em,
.side-instrument .altimeter-dial em{position:absolute;z-index:3;left:50%;top:50%;width:6px;height:6px;transform:translate(-50%,-50%);border:1px solid var(--acid);border-radius:50%;background:#263125;box-shadow:0 0 5px var(--acid)}
.side-instrument .altimeter-dial i{position:absolute;z-index:1;left:50%;bottom:7px;transform:translateX(-50%);color:#7e8d78;font-style:normal;font-size:19px;line-height:1}
.altimeter-needle{position:absolute;z-index:2;left:50%;top:50%;width:2px;height:calc(var(--aux-diameter) * .32);border-radius:2px;background:linear-gradient(to top,var(--acid) 0 72%,transparent 72%);transform:translate(-50%,-100%) rotate(var(--altitude-angle));transform-origin:50% 100%;filter:drop-shadow(0 0 3px var(--acid));transition:transform .45s ease-out}
.side-instrument>strong{font-size:11px;letter-spacing:.2px;color:#b9c5b3}
.side-instrument.gps-ready>strong{color:#e7eee3}
.engine-off .dashboard,
.engine-off.focus-view .dashboard{grid-template-columns:calc(var(--aux-diameter) + 6px) minmax(0,1fr) calc(var(--aux-diameter) + 6px)!important}
.engine-off .dashboard .compass-instrument{grid-column:1}
.engine-off .dashboard .speed-gauge{grid-column:2}
.engine-off .dashboard .altitude-instrument{grid-column:3}


/* Charger map shortcut in the cockpit widget rail. */
.instrument-page .widget-rail>.charging-widget{
  grid-column:2;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;padding:8px 5px;color:var(--ink);text-align:center;text-decoration:none;
  transition:border-color .18s ease,transform .18s ease
}
.instrument-page .widget-rail>.charging-widget:hover{border-color:var(--acid);transform:translateY(-2px)}
.charging-widget-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #c5ff0044;border-radius:50%;background:#c5ff0012;color:var(--acid);font-size:23px;line-height:1}
.charging-widget strong{font-size:10px;line-height:1.1}
.charging-widget small{color:var(--muted);font-size:8px;line-height:1.1;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.instrument-page .widget-rail>.charging-widget{transition:none}}
