/* AuctionWars home-page dashboard (rev counter, countdown, gauges, engine, fuel,
   radio, sale strip). The dash is a car interior, so it stays dark in both themes. */
.dash{--dash-bg:#0b0d10;--dash-ink:#E9EEF4;--dash-dim:rgba(233,238,244,.42);--dash-red:#FF3B30;--dash-amber:#FFB020;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  max-width:1120px;margin:20px auto 8px;padding:12px;border-radius:12px;text-align:left;color:var(--dash-ink);
  background:radial-gradient(120% 120% at 50% 0%,#1a1e24 0%,var(--dash-bg) 65%);
  border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 50px rgba(0,0,0,.8),0 18px 40px -20px rgba(0,0,0,.9)}
.dash *{box-sizing:border-box}
.dash-grid{display:grid;gap:10px;align-items:center;
  grid-template-columns:44px auto 1fr auto;
  grid-template-areas:"rev rev speedo speedo" "count count count count" "vent lights temp ctrl" "fuel fuel fuel fuel" "radio radio radio radio"}
.d-vent{grid-area:vent}.d-lights{grid-area:lights}.d-rev{grid-area:rev}.d-temp{grid-area:temp}.d-speedo{grid-area:speedo}
.d-count{grid-area:count}.d-ctrl{grid-area:ctrl}.d-fuel{grid-area:fuel}.d-radio{grid-area:radio}
.d-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--dash-dim)}

/* Gauges */
.gauge{position:relative;width:100%;max-width:220px;margin:0 auto;aspect-ratio:1}
.gauge svg{display:block;width:100%;height:100%}
.gauge .needle{transition:transform .12s linear;transform-origin:100px 100px}
.gauge .readout{position:absolute;left:0;right:0;top:63%;text-align:center;line-height:1}
.gauge .readout b{display:block;font-family:var(--mono);font-size:clamp(15px,4.4vw,22px);color:var(--dash-red);text-shadow:0 0 8px rgba(255,59,48,.7)}
.gauge .readout span{display:block;margin-top:3px;font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--dash-dim)}
.d-temp .gauge{max-width:104px}
.d-rev .gauge,.d-speedo .gauge{max-width:min(150px,40vw)}
.d-temp .readout{top:62%}.d-temp .readout b{font-size:15px;color:#FF8A1F;text-shadow:0 0 8px rgba(255,138,31,.6)}

/* Air vent + warning lights */
.vent{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;max-height:230px;align-self:center}
.vent .louvers{flex:1;width:40px;min-height:96px;padding:7px 6px;display:flex;flex-direction:column;justify-content:space-between;
  border-radius:10px;border:3px solid #3a3f46;background:#050608;box-shadow:inset 0 3px 12px #000}
.vent .louvers i{display:block;height:4px;border-radius:4px;background:linear-gradient(#9aa3ad,#3b4148);border-top:1px solid rgba(255,255,255,.3)}
.lights{display:grid;grid-template-columns:repeat(2,18px);gap:8px;padding:9px;border-radius:8px;background:rgba(0,0,0,.5);
  border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 8px #000}
.lights svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px currentColor)}
.lights .blink{animation:dash-blink 1.1s steps(1) infinite}
@keyframes dash-blink{50%{opacity:.15}}
.lights svg{transition:opacity .4s,filter .4s}
.lights.lights-out svg:not(.blink){opacity:.12;filter:none}
.gauge .needle{transition:transform .55s cubic-bezier(.3,1.4,.5,1)}
#gRev .needle{transition:transform .12s linear}

/* Countdown dials */
.countdown{display:flex;justify-content:center;gap:6px;flex-wrap:nowrap}
.cd{--p:0%;position:relative;width:clamp(48px,14vw,58px);height:clamp(48px,14vw,58px);flex:none;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(#0d1013 58%,transparent 60%),conic-gradient(var(--dash-red) var(--p),#272b31 0);box-shadow:0 0 0 2px #2f343b,0 4px 10px rgba(0,0,0,.8)}
.cd b{font-family:var(--mono);font-size:17px;line-height:1;color:#fff}
.cd span{font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--dash-dim);margin-top:2px}

/* Gear, start button, gas pedal */
.ctrl{display:flex;align-items:flex-start;gap:10px}
.gear{padding:8px 6px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:linear-gradient(#22262b,#121417);text-align:center}
.gear ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.gear li{font-family:var(--mono);font-weight:700;font-size:13px;line-height:1;color:rgba(233,238,244,.28)}
.gear li.on{color:var(--dash-amber);text-shadow:0 0 6px rgba(255,176,32,.8)}
.gear p{margin:7px 0 0;font-family:var(--mono);font-size:7px;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--dash-dim)}
.ignition{display:flex;flex-direction:column;align-items:center;gap:6px;width:72px}
.start-btn{width:58px;height:58px;border-radius:50%;border:2px solid rgba(255,59,48,.7);background:rgba(224,36,27,.85);color:#fff;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;transition:box-shadow .15s,transform .1s}
.start-btn svg{width:18px;height:18px}
.start-btn:active{transform:translateY(1px)}
.start-btn[aria-pressed="true"]{background:var(--dash-red);border-color:var(--dash-red);box-shadow:0 0 22px rgba(255,59,48,.7)}
.engine-state{margin:0;font-family:var(--mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--dash-dim);text-align:center}
.pedal-well{perspective:220px;height:84px;display:flex;align-items:flex-end}
.pedal{width:44px;height:80px;border-radius:10px 10px 4px 4px;border:1px solid #000;cursor:pointer;padding:9px 6px 6px;
  display:flex;flex-direction:column;gap:5px;align-items:stretch;background:linear-gradient(#3b3b3f,#232326 50%,#101012);
  transform-origin:bottom;transform:rotateX(30deg);transition:transform .1s,box-shadow .1s;touch-action:none;user-select:none;-webkit-user-select:none}
.pedal i{display:block;height:5px;border-radius:2px;background:rgba(0,0,0,.7);border-top:1px solid rgba(255,255,255,.1)}
.pedal span{margin-top:auto;text-align:center;font-family:var(--mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--dash-dim)}
.pedal.down{transform:rotateX(4deg);box-shadow:0 0 20px rgba(255,59,48,.45)}
.pedal.down span{color:var(--dash-amber)}
.pedal:disabled{opacity:.4;cursor:not-allowed}

/* LCD panels: fuel + radio */
.lcd{border-radius:8px;padding:9px 10px;background:linear-gradient(#0a0f0b,#060807);border:1px solid rgba(255,59,48,.25);box-shadow:inset 0 0 18px rgba(0,0,0,.9)}
.lcd-head{display:flex;justify-content:space-between;gap:8px;padding-bottom:5px;border-bottom:1px solid rgba(255,59,48,.25)}
.fuel-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.fuel-cell{padding:6px 9px;border-radius:6px;border:1px solid rgba(255,59,48,.25);background:rgba(0,0,0,.45)}
.fuel-cell b{display:block;margin-top:3px;font-family:var(--mono);font-size:22px;line-height:1;color:var(--dash-amber);text-shadow:0 0 8px rgba(255,176,32,.55)}
.fuel-foot{display:flex;justify-content:space-between;margin-top:6px}

.radio{border-radius:10px;padding:10px;background:linear-gradient(#1a1d21,#0e1013);border:1px solid rgba(255,255,255,.12)}
.radio-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.radio-top .d-label{color:var(--dash-amber)}
.radio-btns{display:flex;gap:6px}
.r-btn{min-width:44px;min-height:44px;padding:0 10px;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:#15181c;color:var(--dash-ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:5px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.r-btn:hover{border-color:rgba(255,176,32,.6)}
.r-btn[aria-pressed="true"]{border-color:var(--dash-red);color:#fff;box-shadow:0 0 10px rgba(255,59,48,.4)}
.r-btn svg{width:14px;height:14px;fill:currentColor}
.radio-screen{min-height:74px}
.radio-screen .st-name{display:block;margin-top:5px;font-family:var(--display);font-size:20px;line-height:1.1;text-transform:uppercase;color:var(--dash-red);text-shadow:0 0 8px rgba(255,59,48,.6)}
.radio-screen .st-genre{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dash-dim)}
.radio-screen.off .st-name{color:rgba(255,59,48,.35);text-shadow:none}
.beat{display:flex;align-items:flex-end;gap:3px;height:22px;margin:8px 0}
.beat i{flex:1;height:15%;border-radius:2px 2px 0 0;background:linear-gradient(var(--dash-red),var(--dash-amber));opacity:.35}
.radio.playing .beat i{opacity:1;animation:dash-beat .9s ease-in-out infinite alternate}
.beat i:nth-child(3n){animation-delay:-.3s!important}.beat i:nth-child(3n+1){animation-delay:-.6s!important;animation-duration:.7s!important}
.beat i:nth-child(4n){animation-duration:1.1s!important}
@keyframes dash-beat{0%{height:12%}50%{height:85%}100%{height:35%}}
.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.preset{min-height:44px;padding:4px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#0b0d10;color:var(--dash-ink);cursor:pointer;
  display:flex;align-items:center;justify-content:flex-start;gap:6px;font-family:var(--mono);font-size:11px;text-align:left;overflow:hidden}
.preset em{font-style:normal;color:var(--dash-dim)}
.preset span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preset.on{border-color:var(--dash-amber);color:var(--dash-amber);box-shadow:0 0 10px rgba(255,176,32,.35)}
.radio-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;flex-wrap:wrap}
.tune-lbl{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--dash-dim)}
.vol{display:flex;align-items:center;gap:6px}
.knob{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#5b6067,#1b1d21 70%);border:1px solid #000;position:relative}
.knob::after{content:"";position:absolute;left:50%;top:4px;width:2px;height:10px;margin-left:-1px;border-radius:2px;background:var(--dash-amber);transform-origin:1px 13px;transform:rotate(var(--rot,0deg))}

/* Sale strip */
.sale-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.sale-item{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.5)}
.sale-item .lamp{flex:none;width:14px;height:14px;margin-top:2px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff,var(--c) 58%,#160000 130%);box-shadow:0 0 10px var(--c)}
.sale-item b{display:block;margin-top:3px;font-family:var(--display);font-size:13px;line-height:1.25;text-transform:uppercase;color:var(--c)}

.dash button:focus-visible{outline:2px solid var(--dash-amber);outline-offset:2px}

@media(min-width:700px){
  .dash{padding:16px}
  .d-rev .gauge,.d-speedo .gauge{max-width:220px}
  .dash-grid{grid-template-columns:44px auto 1fr 1fr auto;
    grid-template-areas:"vent lights rev speedo ctrl" "vent lights count count temp" "fuel fuel fuel radio radio"}
  .d-radio{align-self:stretch}
  .sale-strip{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:1040px){
  .dash-grid{grid-template-columns:44px auto minmax(180px,1fr) 110px minmax(200px,1.15fr) auto 330px;
    grid-template-areas:"vent lights rev temp speedo ctrl radio" "vent lights count count fuel fuel radio"}
}
@media(prefers-reduced-motion:reduce){
  .lights .blink,.radio.playing .beat i{animation:none}
  .gauge .needle,.pedal{transition:none}
}
