/* Dashboard card motion. Page-owned (index.html only). Keeps existing colors; progressive enhancement:
   hidden start states apply only when JS has armed the card (.dc-armed). Final state is the HTML default. */
.dashboard.dc-card .dash__tip{position:absolute;left:0;top:0;z-index:3;pointer-events:none;opacity:0;padding:5px 9px;border-radius:8px;background:rgba(11,11,12,.92);border:1px solid rgba(201,162,75,.45);color:var(--offwhite,#F5F5F2);font-family:'Space Mono',monospace;font-size:11px;line-height:1.3;white-space:nowrap;transition:opacity .18s ease}
.dashboard.dc-card .dash__tip.is-on{opacity:1}
.dashboard.dc-card .dash__chart{position:relative}
.dashboard.dc-card .dash__alerts{position:relative}
/* fixed row geometry so nothing moves */
.dashboard.dc-card .dash__alert{box-sizing:border-box;height:42px;overflow:hidden;white-space:nowrap;position:relative}
.dashboard.dc-card .dash__alert-text{overflow:hidden;text-overflow:ellipsis;min-width:0}
.dashboard.dc-card .dash__metric-val{min-height:1.3em}
.dashboard.dc-card .dash__metric{transition:background-color .25s ease,box-shadow .25s ease;cursor:default;outline:none}
.dashboard.dc-card .dash__metric.is-active{background:rgba(201,162,75,.14);box-shadow:inset 0 0 0 1px rgba(201,162,75,.45),0 0 22px rgba(201,162,75,.22)}
.dashboard.dc-card .dash__metric:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.dashboard.dc-card .dash__chart-bars{outline:none;border-radius:4px}
.dashboard.dc-card .dash__chart-bars:focus-visible{box-shadow:0 0 0 2px var(--accent)}
.dashboard.dc-card .dash__bar{transition:filter .2s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.dashboard.dc-card .dash__bar.is-active{filter:brightness(1.7) saturate(1.2)}
.dashboard.dc-card .dash__alert{transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1),background-color .4s ease,border-color .4s ease}
.dashboard.dc-card .dash__alert.is-waiting{background:rgba(176,122,42,.12);border-color:rgba(176,122,42,.5)}
.dashboard.dc-card .dash__alert.is-waiting .dash__alert-text{color:var(--offwhite,#F5F5F2)}
.dashboard.dc-card .dash__alert.is-tick{animation:dc-tick .5s cubic-bezier(.16,1,.3,1)}
@keyframes dc-tick{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.dashboard.dc-card .glow-dot.dc-soft{animation:dc-soft 2.4s ease-in-out infinite}
@keyframes dc-soft{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.25);opacity:1}}

@media (hover:hover) and (pointer:fine){
  .dashboard.dc-card{transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .4s ease}
  .dashboard.dc-card.dc-hover{box-shadow:32px 32px 80px rgba(0,0,0,.5),-1px -1px 0 rgba(255,255,255,.06),0 0 40px rgba(201,162,75,.14)}
  .dashboard.dc-card .dash__metric{cursor:pointer}
}
@media (max-width:480px){
  .dashboard.dc-card .dash__alert{height:38px}
}

/* armed start states */
html.js .dashboard.dc-card.dc-armed .dash__bar{animation:none;transform:scaleY(0)}
html.js .dashboard.dc-card.dc-armed.dc-in .dash__bar{transform:scaleY(1);transition-delay:calc(var(--dc-i,0) * 45ms)}
html.js .dashboard.dc-card.dc-armed .dash__alert{opacity:0;transform:translateX(18px)}
html.js .dashboard.dc-card.dc-armed.dc-in .dash__alert{opacity:1;transform:none;transition-delay:calc(var(--dc-r,0) * 140ms + 700ms),calc(var(--dc-r,0) * 140ms + 700ms),0s,0s}
html.js .dashboard.dc-card.dc-armed.dc-in.dc-settled .dash__alert{transition-delay:0s}
html.js .dashboard.dc-card.dc-armed .dash__metric{opacity:.0;transform:translateY(6px)}
html.js .dashboard.dc-card.dc-armed.dc-in .dash__metric{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease,background-color .25s ease,box-shadow .25s ease}

@media (prefers-reduced-motion:reduce){
  html.js .dashboard.dc-card.dc-armed .dash__bar,
  html.js .dashboard.dc-card.dc-armed .dash__alert,
  html.js .dashboard.dc-card.dc-armed .dash__metric{opacity:1;transform:none;animation:none;transition:none}
  .dashboard.dc-card .glow-dot.dc-soft,.dashboard.dc-card .dash__alert.is-tick{animation:none}
}
