.app-ui-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem 1rem;text-align:center}.app-ui-loading__bar{width:min(12rem,70vw);height:3px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.app-ui-loading__bar:after{content:"";display:block;width:40%;height:100%;background:linear-gradient(90deg,transparent,#d6b46a,transparent);animation:app-ui-shimmer 1.2s ease-in-out infinite}@keyframes app-ui-shimmer{0%{transform:translateX(-120%)}to{transform:translateX(320%)}}@media (prefers-reduced-motion:reduce){.app-ui-loading__bar:after{animation:none;width:100%;background:#d6b46a}.menu-skeleton__card{animation:none!important}}.app-ui-empty,.app-ui-error{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.25rem;text-align:center;border-radius:1rem;border:1px solid rgba(255,255,255,.08);background:rgba(10,10,18,.6)}.app-ui-empty__title,.app-ui-error__title{font-size:.95rem;font-weight:800;color:rgba(255,255,255,.9)}.app-ui-empty__body,.app-ui-error__body{font-size:.8rem;line-height:1.5;color:rgba(255,255,255,.55);max-width:22rem}.menu-skeleton{display:grid;gap:1.25rem;width:100%;max-width:72rem;margin-inline:auto;padding:.5rem .75rem 1.5rem}.menu-skeleton--game{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:1024px){.menu-skeleton--game{grid-template-columns:repeat(4,minmax(0,1fr))}}.menu-skeleton__card{aspect-ratio:512/588;border-radius:1.25rem;background:linear-gradient(110deg,rgba(255,255,255,.04) 8%,rgba(214,180,106,.12) 18%,rgba(255,255,255,.04) 33%);background-size:200% 100%;animation:menu-skeleton-pulse 1.4s ease-in-out infinite}@keyframes menu-skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}.app-toast-stack{position:fixed;bottom:calc(1rem + env(safe-area-inset-bottom, 0px));left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none;width:min(24rem,calc(100vw - 2rem))}.app-toast{pointer-events:auto;padding:.75rem 1rem;border-radius:.75rem;font-size:.8rem;font-weight:600;text-align:center;border:1px solid rgba(214,180,106,.35);background:rgba(10,10,18,.92);color:rgba(255,255,255,.92);box-shadow:0 8px 32px rgba(0,0,0,.45)}.catalog-prepare-banner{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:0 auto 1.25rem;width:min(24rem,100%);padding:.75rem 1rem;border-radius:.85rem;border:1px solid rgba(214,180,106,.22);background:rgba(8,10,18,.72)}.catalog-prepare-banner__label{font-size:.78rem;font-weight:700;letter-spacing:.12em;color:rgba(214,180,106,.88)}.catalog-prepare-banner__track{width:100%;height:4px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.catalog-prepare-banner__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#b8924f,#f0dfa0);transition:width .35s ease}.catalog-prepare-banner__pct{font-size:.72rem;font-weight:700;color:rgba(255,255,255,.55);font-variant-numeric:tabular-nums}.practice-insight-banner{display:flex;flex-direction:column;gap:.35rem;padding:.85rem 1rem;border-radius:.9rem;border:1px solid rgba(214,180,106,.35);background:rgba(8,10,18,.94);box-shadow:0 12px 40px rgba(0,0,0,.45)}.practice-insight-banner__eyebrow{font-size:.65rem;font-weight:800;letter-spacing:.18em;color:rgba(214,180,106,.75)}.practice-insight-banner__line{font-size:.95rem;font-weight:800;color:rgba(255,255,255,.94)}.practice-insight-banner__dismiss{align-self:flex-end;margin-top:.15rem;font-size:.7rem;font-weight:700;color:rgba(255,255,255,.45)}.version-update-banner{display:flex;flex-direction:column;gap:.35rem;padding:.85rem 1rem;border-radius:.9rem;border:1px solid rgba(96,165,250,.35);background:rgba(8,14,28,.94);box-shadow:0 12px 40px rgba(0,0,0,.45)}.version-update-banner__title{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:rgba(147,197,253,.9)}.version-update-banner__body{font-size:.82rem;line-height:1.45;color:rgba(255,255,255,.78)}.version-update-banner__dismiss{align-self:flex-end;margin-top:.15rem;font-size:.7rem;font-weight:700;color:rgba(147,197,253,.85)}.app-toast--error{border-color:rgba(248,113,113,.45)}