/* Aviation Study Suite v3.0 — progressive UI enhancement layer.
   Non-critical: core study runtime remains functional if this file fails to load. */
:root{
  --av-bg:#07101c;--av-bg2:#0a1423;--av-panel:#101c2d;--av-panel2:#14243a;
  --av-line:#2a405d;--av-text:#f1f6fc;--av-muted:#a9b9cd;--av-accent:#6fb4ff;
  --av-accent-rgb:111,180,255;--av-good:#78dda1;--av-bad:#ff8391;--av-warn:#ffd06e;
  --av-shadow:0 18px 44px rgba(0,0,0,.22);--av-font-scale:1;
  --bg:var(--av-bg)!important;--bg2:var(--av-bg2)!important;--panel:var(--av-panel)!important;--panel2:var(--av-panel2)!important;
  --line:var(--av-line)!important;--line2:color-mix(in srgb,var(--av-line) 78%,white 22%)!important;--text:var(--av-text)!important;--muted:var(--av-muted)!important;
  --accent:var(--av-accent)!important;--accentStrong:var(--av-accent)!important;--blue:var(--av-accent)!important;--v2-blue:var(--av-accent)!important;
  --v2-bg:var(--av-bg)!important;--v2-bg2:var(--av-bg2)!important;--v2-panel:var(--av-panel)!important;--v2-panel2:var(--av-panel2)!important;--v2-panel3:color-mix(in srgb,var(--av-panel2) 86%,white 14%)!important;--v2-line:var(--av-line)!important;--v2-text:var(--av-text)!important;--v2-muted:var(--av-muted)!important;
}
html{font-size:calc(16px * var(--av-font-scale));color-scheme:dark;background:var(--av-bg)}
body{background:radial-gradient(900px 520px at 86% -12%,rgba(var(--av-accent-rgb),.13),transparent 66%),linear-gradient(180deg,var(--av-bg2),var(--av-bg) 72%)!important;color:var(--av-text)!important}
html[data-av-theme="ocean"]{--av-bg:#04171c;--av-bg2:#08242b;--av-panel:#0d2a31;--av-panel2:#123944;--av-line:#285663;--av-text:#f0fbfb;--av-muted:#a6c7c9}
html[data-av-theme="aurora"]{--av-bg:#0b0d1c;--av-bg2:#16142b;--av-panel:#191a33;--av-panel2:#242047;--av-line:#4a4470;--av-text:#f7f3ff;--av-muted:#bbb3d6}
html[data-av-theme="graphite"]{--av-bg:#0d0f12;--av-bg2:#15181d;--av-panel:#1a1e24;--av-panel2:#222831;--av-line:#3b4654;--av-text:#f5f7fa;--av-muted:#aeb7c2}
html[data-av-theme="cockpit"]{--av-bg:#120e07;--av-bg2:#1d160a;--av-panel:#241b0e;--av-panel2:#302312;--av-line:#5a4320;--av-text:#fff7e8;--av-muted:#d0b991}
html[data-av-accent="sky"]{--av-accent:#6fb4ff;--av-accent-rgb:111,180,255}
html[data-av-accent="mint"]{--av-accent:#72dfc1;--av-accent-rgb:114,223,193}
html[data-av-accent="amber"]{--av-accent:#ffc96b;--av-accent-rgb:255,201,107}
html[data-av-accent="violet"]{--av-accent:#b79cff;--av-accent-rgb:183,156,255}
html[data-av-accent="rose"]{--av-accent:#ff92ad;--av-accent-rgb:255,146,173}
html[data-av-font="small"]{--av-font-scale:.94}html[data-av-font="large"]{--av-font-scale:1.08}
html[data-av-contrast="high"]{--av-text:#fff;--av-muted:#d1dae6;--av-line:#55708f}
html[data-av-performance="battery"] *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important}

/* Non-default themes intentionally normalize only broad surfaces; subject semantics stay intact. */
html:not([data-av-theme="night"]) :where(.card,.panel,.subject,.module-card,.question,.v2-mini-module,.mission-card){background:linear-gradient(145deg,var(--av-panel2),var(--av-panel))!important;border-color:var(--av-line)!important}
html:not([data-av-theme="night"]) :where(.hero,.v2-mission){background:linear-gradient(145deg,color-mix(in srgb,var(--av-panel2) 82%,var(--av-accent) 18%),var(--av-panel),var(--av-bg2))!important;border-color:color-mix(in srgb,var(--av-line) 72%,var(--av-accent) 28%)!important}
html:not([data-av-theme="night"]) :where(.topbar,.top,nav,.bottom-nav,.bottom){background:color-mix(in srgb,var(--av-bg) 90%,transparent)!important;border-color:var(--av-line)!important}

/* Accent-aware controls. Keep semantic red/green feedback untouched. */
:where(.btn.primary,.primary,.install,.v2-mission-btn):not(.danger):not(.good){border-color:color-mix(in srgb,var(--av-accent) 58%,transparent)!important;box-shadow:0 10px 26px rgba(var(--av-accent-rgb),.12)}
:where(.progress i,.progress>span,.progressbar>i,.progressbar>span,.progress-bar){background:linear-gradient(90deg,var(--av-accent),color-mix(in srgb,var(--av-accent) 55%,#78dda1 45%))!important}

/* Refined press + spring interactions */
:where(button,.btn,.choice,.choice-btn,.subject,.module-card,.v2-quick,.v2-mission-btn,[role="button"],summary){-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform 180ms cubic-bezier(.2,.8,.2,1),box-shadow 220ms ease,border-color 180ms ease,background-color 180ms ease,filter 180ms ease}
html[data-av-motion="rich"] :where(button,.btn,.choice,.choice-btn,.subject,.module-card,.v2-quick,.v2-mission-btn,[role="button"],summary):active{transform:translateY(1px) scale(.965);filter:saturate(1.06)}
html[data-av-motion="balanced"] :where(button,.btn,.choice,.choice-btn,.subject,.module-card,.v2-quick,.v2-mission-btn,[role="button"],summary):active{transform:scale(.978)}
html[data-av-motion="minimal"] :where(button,.btn,.choice,.choice-btn,.subject,.module-card,.v2-quick,.v2-mission-btn,[role="button"],summary):active{transform:scale(.99)}
html[data-av-motion="off"] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-av-motion="reduced"] *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

.avui-ripple-host{position:relative!important;overflow:hidden!important}
.avui-ripple{position:absolute;z-index:99;border-radius:999px;pointer-events:none;width:10px;height:10px;background:rgba(var(--av-accent-rgb),.28);transform:translate(-50%,-50%) scale(0);animation:avuiRipple .58s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes avuiRipple{to{transform:translate(-50%,-50%) scale(28);opacity:0}}
html[data-av-motion="rich"] body{animation:avuiPageIn .42s cubic-bezier(.18,.8,.22,1) both}
@keyframes avuiPageIn{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:none}}
html[data-av-motion="rich"] :where(.feedback.good,.correct):not(.choice-index){animation:avuiSuccess .42s cubic-bezier(.2,.9,.25,1)}
html[data-av-motion="rich"] :where(.feedback.bad,.wrong):not(.choice-index){animation:avuiError .36s ease}
@keyframes avuiSuccess{0%{transform:scale(.985)}55%{transform:scale(1.012)}100%{transform:none}}
@keyframes avuiError{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
html[data-av-motion="rich"] :where(.progress i,.progress>span,.progressbar>i,.progressbar>span,.progress-bar){background-size:180% 100%!important;animation:avuiShimmer 2.8s linear infinite}
@keyframes avuiShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
html[data-av-performance="battery"] .avui-ripple{display:none!important}

/* The settings component uses Shadow DOM. Only its host is styled here. */
aviation-ui-settings{position:fixed;inset:0;z-index:2147483000;pointer-events:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.avui-ripple{display:none!important}}
