/* Final application polish, including keyboard and reduced-motion access. */
:root { --flux-accent: #9d8aff; }
button, .btn { transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
button:active:not(:disabled), .btn:active:not(:disabled) { transform: scale(.97); }
button:focus-visible, a:focus-visible, textarea:focus-visible, input:focus-visible {
  outline: 2px solid var(--flux-accent); outline-offset: 4px;
}
.plan-card { border: 1px solid rgba(170,155,255,.2); background: linear-gradient(145deg,rgba(135,110,230,.09),rgba(15,20,35,.65)); }
.plan-card:hover { border-color: rgba(170,155,255,.55); box-shadow: 0 12px 34px #0003; }
.plan-card .plan-features { line-height: 1.65; }
#plansGrid { grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); gap: 18px; }
.plan-card .plan-price { font-size: clamp(21px,2vw,28px); }
.plan-card .plan-header { min-height: 0; }
.dictation-status { font-size: 12px; line-height: 1.5; color: #b9b0d5; padding: 4px 14px; }
.dictation-status:empty { display: none; }
.mic-btn.recording { background: #a64a68; animation: flux-listening 1.4s ease-in-out infinite; }
@keyframes flux-listening { 50% { box-shadow: 0 0 0 7px #a64a6828; } }
@media (display-mode: standalone) { body { overscroll-behavior-y: none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
