/* Edge Config Lab v0.9.36 — Performance Dashboard Pro / ST Startup
   Presentation only. No vehicle writes, new OBD requests or unverified telemetry. */
.pd-launch{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:21px 23px;margin:16px 0;border:1px solid color-mix(in srgb,var(--accent) 33%,var(--border));background:linear-gradient(105deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface))}
.pd-launch h2{font-size:clamp(18px,2vw,23px);margin:6px 0 8px}.pd-launch p{margin:0}
.pd-launch .button{flex-shrink:0;min-height:44px}
#pd-stage[hidden]{display:none!important}
#gauges.pd-active #dg-grid,#gauges.pd-active #ecl-layout-gauges,#gauges.pd-active .dg-bottom{display:none!important}
.pd-stage{--pd-accent:var(--accent,#ff454d);--pd-track:#3c4555;color:#e9effa;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% -45%,color-mix(in srgb,var(--pd-accent) 20%,transparent),transparent 66%),linear-gradient(150deg,#101824,#080d15 75%);border:1px solid color-mix(in srgb,var(--pd-accent) 40%,#304051);border-radius:19px;box-shadow:0 18px 40px #0004;padding:clamp(17px,3vw,34px);margin:15px 0 26px;isolation:isolate}
.pd-stage:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.34;background:repeating-linear-gradient(90deg,#ffffff06 0 1px,transparent 1px 45px);z-index:-1}
.pd-stage[data-mode="track"]{--pd-accent:#ff9943}
.pd-stage[data-mode="touring"]{--pd-accent:#64bddd}
.pd-stage[data-mode="minimal"]{--pd-accent:#b6c1d0;background:linear-gradient(140deg,#0d1118,#121922)}
.pd-topline{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.pd-eyebrow,.pd-tech-label{font-size:10px;font-weight:800;letter-spacing:.15em;color:#acb8ca}
.pd-logo{font-size:clamp(29px,3.7vw,51px);letter-spacing:.09em;font-weight:950;line-height:1.2;margin:4px 0}
.pd-logo strong{font-style:italic;color:var(--pd-accent);letter-spacing:-.04em;margin-left:9px}
.pd-logo span{font-size:.42em;color:#b4bdce;letter-spacing:.14em;vertical-align:middle}
#pd-subtitle{font-size:10px;font-weight:800;letter-spacing:.12em;color:#9fb0c7;margin:2px 0 15px}
.pd-controlrow{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.pd-controlrow label{display:flex;flex-direction:column;gap:6px;font-size:10px;letter-spacing:.06em;color:#c1cfdf;font-weight:750}
.pd-controlrow select{color:#f4f7fc;background:#1c2633;border:1px solid #38485b;border-radius:9px;min-height:38px;padding:8px 10px;max-width:190px}
.pd-controlrow .button{font-size:11px;background:#1c2633;color:#f5f8fc;border:1px solid #415166;min-height:38px}
.pd-sourcebar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:11px 13px;border-radius:11px;background:#101923;border:1px solid #2a3747;margin:8px 0 18px;font-size:11px;letter-spacing:.04em}
.pd-sourcebar strong{font-size:11px;font-weight:850;color:#f3f6fc}
.pd-sourcebar #pd-update{color:#aeb9cc;flex:1;min-width:170px;font-size:11px}
.pd-source-dot{height:9px;width:9px;border-radius:50%;background:#778799;box-shadow:0 0 0 3px #77879920}
.pd-stage[data-source="demo"] .pd-source-dot{background:#aa84ff;box-shadow:0 0 0 3px #aa84ff27}
.pd-stage[data-source="live"] .pd-source-dot{background:#56d8a3;box-shadow:0 0 0 3px #56d8a327}
.pd-stage[data-source="stale"] .pd-source-dot{background:#ffb94a;box-shadow:0 0 0 3px #ffb94a27}
.pd-read-only{font-weight:850;color:#79caaa;padding:4px 7px;border:1px solid #42735d;border-radius:7px;white-space:nowrap}
.pd-dials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,2vw,26px)}
.pd-dial{--pd-progress-angle:0deg;--pd-needle-angle:-120deg;position:relative;border:1px solid #384556;border-radius:17px;background:radial-gradient(circle at 50% 48%,#182230,#0c141e 76%);min-width:0;padding:clamp(12px,2vw,23px);box-shadow:inset 0 0 30px #0004}
.pd-dial-top{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#d9e4f5;font-weight:900;font-size:clamp(10px,1vw,12px);letter-spacing:.09em}
.pd-dial-face{position:relative;width:min(100%,320px);aspect-ratio:1;margin:1px auto;display:grid;place-items:center}
.pd-dial-face:before{content:"";position:absolute;inset:10%;border-radius:50%;border:1px dashed #c8d9f11e;pointer-events:none}
.pd-ring{position:absolute;inset:9%;border-radius:50%;background:conic-gradient(from 240deg,var(--pd-accent) 0deg var(--pd-progress-angle),var(--pd-track) var(--pd-progress-angle) 240deg,transparent 240deg 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 15px),#000 calc(100% - 13px));mask:radial-gradient(farthest-side,transparent calc(100% - 15px),#000 calc(100% - 13px));filter:drop-shadow(0 0 10px color-mix(in srgb,var(--pd-accent) 40%,transparent))}
.pd-needle{position:absolute;top:50%;left:18%;width:32%;height:3px;border-radius:3px;background:var(--pd-accent);transform-origin:100% 50%;transform:rotate(var(--pd-needle-angle));box-shadow:0 0 8px var(--pd-accent);z-index:2}
.pd-needle:after{content:"";position:absolute;right:-5px;top:-4px;width:11px;height:11px;border-radius:50%;background:#e7edf7;border:3px solid var(--pd-accent)}
.pd-dial-center{text-align:center;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;max-width:75%}
.pd-value{font-variant-numeric:tabular-nums;font-size:clamp(35px,5.2vw,80px);font-weight:950;line-height:1.05;letter-spacing:-.05em;color:#f5f8fd}
.pd-unit{font-size:11px;font-weight:850;letter-spacing:.13em;color:var(--pd-accent);text-transform:uppercase}
.pd-dial-footer{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:10px;font-weight:750;letter-spacing:.03em;color:#9dacc1}
.pd-dial-availability{color:#cdd6e5;font-size:9px}
.pd-unavailable .pd-value,.pd-unavailable .pd-mini-value strong{color:#9cabbc}
.pd-unavailable .pd-ring{opacity:.4}
.pd-telemetry{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:13px 0}
.pd-mini{display:flex;flex-direction:column;justify-content:space-between;gap:13px;min-height:95px;min-width:0;background:#101b26;border:1px solid #324255;border-radius:12px;padding:14px}
.pd-mini>span{color:#9eafc5;font-size:10px;font-weight:850;letter-spacing:.11em}
.pd-mini-value{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.pd-mini-value strong{font-weight:900;font-size:clamp(20px,2.2vw,33px);color:#edf4ff;font-variant-numeric:tabular-nums}
.pd-mini-value small{color:#9daebe;font-size:11px}
.pd-stage.pd-without-extras .pd-telemetry{display:none!important}
.pd-bottomline{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:#0e1620;border:1px solid #2b384a;border-radius:12px;padding:11px 14px;margin-top:12px;min-height:70px}
.pd-bottomline>label{font-size:11px;color:#d5dfef;display:flex;align-items:center;gap:8px;white-space:nowrap}
.pd-bottomline input{accent-color:var(--pd-accent)}
.pd-history-note{font-weight:850;color:#849bb0;letter-spacing:.1em;font-size:10px}
.pd-spark{min-width:100px;max-width:340px;flex:1;color:var(--pd-accent);height:55px;display:grid;place-items:center}
.pd-spark svg{width:100%;height:100%}.pd-spark-empty{font-size:10px;color:#8397ad;text-align:center}
.pd-disclaimer{font-size:10px;line-height:1.7;color:#95a6ba;margin:15px 0 0;text-align:center}
.pd-stage[data-face="arc"] .pd-needle,.pd-stage[data-face="digital"] .pd-needle{display:none}
.pd-stage[data-face="digital"] .pd-ring{opacity:.16;inset:22%}
.pd-stage[data-face="digital"] .pd-dial-face:before{display:none}
.pd-stage[data-face="digital"] .pd-dial-face{aspect-ratio:1.5}
.pd-stage[data-mode="minimal"] .pd-dial-face{aspect-ratio:1.55}
.pd-stage[data-mode="minimal"] .pd-ring{opacity:.12}
.pd-stage[data-mode="minimal"] .pd-needle{display:none}
.pd-stage:fullscreen,.pd-stage.pd-immersive{width:100vw;height:100dvh;max-height:100dvh;position:fixed!important;inset:0!important;border-radius:0;z-index:9993;margin:0;overflow:auto;padding:clamp(14px,2vw,32px)}
.pd-immersive-body{overflow:hidden!important}
.pd-stage:fullscreen .pd-dials,.pd-stage.pd-immersive .pd-dials{max-width:1250px;margin-inline:auto}
.pd-stage:fullscreen .pd-telemetry,.pd-stage.pd-immersive .pd-telemetry{max-width:1250px;margin-inline:auto}
.pd-startup-settings{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}
.pd-startup-settings h3{font-size:16px;margin:0 0 7px}
.pd-startup-settings label{display:block!important;margin:12px 0!important}
.pd-startup-settings .field{width:100%;margin:7px 0 0}
.pd-startup-overlay{--pd-boot:#ff4b59;--pd-startup-duration:1650ms;position:fixed;inset:0;z-index:10004;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 46%,color-mix(in srgb,var(--pd-boot) 21%,transparent),transparent 48%),linear-gradient(125deg,#0b0e14,#141e2b 58%,#070b11);color:#f3f6fc;isolation:isolate;overflow:hidden}
.pd-startup-overlay:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff06 0 1px,transparent 1px 42px);opacity:.6}
.pd-startup-overlay[data-startup="stealth"]{--pd-boot:#b5c3d2}
.pd-startup-overlay[data-startup="track"]{--pd-boot:#ffad59}
.pd-startup-frame{position:relative;z-index:1;text-align:center;width:min(650px,88vw)}
.pd-startup-kicker{font-size:clamp(10px,1.2vw,13px);font-weight:850;letter-spacing:.3em;color:#9cacc0}
.pd-startup-badge{display:flex;align-items:baseline;justify-content:center;gap:clamp(8px,3vw,24px);margin:23px 0 6px;font-size:clamp(45px,12vw,115px);font-weight:950;line-height:1;letter-spacing:-.07em;text-shadow:0 10px 50px #000c}
.pd-startup-badge strong{font-style:italic;font-size:1.05em;color:var(--pd-boot);text-shadow:0 0 25px color-mix(in srgb,var(--pd-boot) 55%,transparent)}
.pd-startup-frame p{font-size:clamp(11px,1.6vw,16px);font-weight:800;letter-spacing:.17em;margin:14px 0 30px;color:#d0dbec}
.pd-startup-dial{width:min(380px,80vw);height:9px;border-radius:999px;background:repeating-linear-gradient(90deg,#364050 0 10px,transparent 11px 16px);margin:0 auto 26px;overflow:hidden;position:relative}
.pd-startup-dial:after{content:"";height:100%;width:40%;position:absolute;left:0;top:0;background:var(--pd-boot);box-shadow:0 0 20px var(--pd-boot);animation:pd-tach var(--pd-startup-duration) ease-out both}
.pd-startup-progress{width:min(420px,82vw);height:3px;background:#2c394b;margin:auto;border-radius:5px;overflow:hidden}
.pd-startup-progress>span{display:block;width:100%;height:100%;background:var(--pd-boot);transform-origin:left;animation:pd-progress var(--pd-startup-duration) linear both}
.pd-startup-skip{position:absolute;right:clamp(12px,3vw,28px);top:clamp(12px,3vw,28px);border:1px solid #697c94;border-radius:10px;background:#192638;color:#eff5fc;padding:11px 15px;cursor:pointer;font-weight:800;font-size:12px}
.pd-startup-skip:focus-visible{outline:2px solid var(--pd-boot);outline-offset:2px}
@keyframes pd-tach{0%{transform:translateX(-100%)}42%{transform:translateX(170%)}70%{transform:translateX(15%)}100%{transform:translateX(55%)}}
@keyframes pd-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:950px){.pd-launch{flex-direction:column;align-items:stretch}.pd-telemetry{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-stage{padding:17px}.pd-dial-face{width:min(100%,285px)}}
@media(max-width:680px){
 .pd-dials{grid-template-columns:1fr;gap:12px}
 .pd-stage{padding:12px}.pd-dial{padding:12px}
 .pd-dial-face{width:min(74vw,260px)}
 .pd-controlrow{width:100%}.pd-controlrow label{flex:1;min-width:100px}
 .pd-controlrow select{max-width:none;width:100%}
 .pd-controlrow .button{flex:1}
 .pd-value{font-size:clamp(39px,12vw,70px)}
 .pd-telemetry{gap:8px}
 .pd-mini{padding:10px;min-height:83px}
 .pd-bottomline{justify-content:center}
 .pd-history-note{display:none}
 .pd-spark{flex-basis:100%;max-width:none}
}
@media(max-width:365px){.pd-telemetry{grid-template-columns:1fr 1fr}.pd-mini-value strong{font-size:20px}}
@media(prefers-reduced-motion:reduce){
 .pd-startup-overlay *, .pd-startup-overlay *:before,.pd-startup-overlay *:after{animation:none!important;transition:none!important}
 .pd-stage *{animation:none!important;transition:none!important}
}


/* Animations are presentation-only; percentages come from sanitized read-only samples. */
@property --pd-progress-angle{syntax:"<angle>";inherits:true;initial-value:0deg}
.pd-ring{transition:--pd-progress-angle .55s ease-out}
.pd-needle{transition:transform .55s cubic-bezier(.19,1,.22,1)}
.pd-value,.pd-mini-value strong{transition:color .25s ease}
