.app-toast{position:fixed;top:16px;right:16px;z-index:1200;display:flex;align-items:center;gap:10px;max-width:420px;padding:12px 14px;border-radius:10px;color:#fff;box-shadow:0 18px 45px rgba(20,33,55,.22)}.app-toast--error{background:#b93b3b}.app-toast--success{background:#1f7a4f}.app-toast--info{background:#23314d}.app-toast-message{margin:0;font-size:16px;line-height:1.35}.app-toast-close{border:0;background:transparent;color:#fff;font-size:16px;line-height:1;cursor:pointer}.pwa-banner{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);z-index:9999;display:flex;align-items:center;gap:.75rem;width:calc(100% - 2rem);max-width:480px;padding:.875rem 1rem;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 8px 32px rgba(0,0,0,.14);animation:pwa-banner-slide-in .35s ease}@keyframes pwa-banner-slide-in{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.pwa-banner__icon img{border-radius:10px;display:block}.pwa-banner__content{flex:1 1;min-width:0}.pwa-banner__title{font-size:.9rem;font-weight:600;color:var(--color-text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pwa-banner__subtitle{font-size:.78rem;color:var(--color-text-muted);margin-top:2px;line-height:1.35}.pwa-banner__subtitle strong{color:var(--color-text-base)}.pwa-banner__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.pwa-banner__btn-install{padding:.45rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.pwa-banner__btn-install:hover{background:var(--color-primary-hover)}.pwa-banner__btn-dismiss{background:none;border:none;color:var(--color-text-muted);font-size:1rem;cursor:pointer;padding:.25rem;line-height:1;transition:color .15s}.pwa-banner__btn-dismiss:hover{color:var(--color-text-strong)}:root[data-theme=dark] .pwa-banner{box-shadow:0 8px 32px rgba(0,0,0,.4)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#2f6fed;--color-primary-hover:#1a5cd6;--color-primary-muted:#93b5f7;--color-primary-alt:#e9f0ff;--color-bg-page:#ffffff;--color-bg-alt:#e6e9f0;--color-bg-card:#ffffff;--color-bg-alt2:#eceaea94;--color-text-strong:#1a2337;--color-text-base:#3d4a63;--color-text-muted:#6b7a99;--color-border:#d5dae6;--color-border-light:#e8ecf4;--color-border-footer:#dde2ed;--color-error-bg:#fff0f0;--color-error-border:#f5b8b8;--color-error-text:#c0392b;--color-success-bg:#f0faf4;--color-success-border:#a8dbb8;--color-success-text:#1a7a40;--color-warning-bg:#fffde6;--color-warning-border:#f5c07a;--color-warning-accent:#e07b00;--color-warning-text:#8a4b00;--font-sans:"Inter",system-ui,-apple-system,sans-serif}:root[data-theme=dark]{--color-primary:#ff7f00;--color-primary-hover:#d66c01da;--color-primary-muted:#ff5500;--color-primary-alt:#1c1c1c;--color-bg-page:#141414;--color-bg-alt:#1c1c1c;--color-bg-card:#181818;--color-bg-alt2:#141414;--color-text-strong:#e8e8e8;--color-text-base:#c2c2c2;--color-text-muted:#898989;--color-border:#2e2e2e;--color-border-light:#252525;--color-border-footer:#202020;--color-error-bg:#2a1a1a;--color-error-border:#6b3030;--color-error-text:#ffb0b0;--color-success-bg:#182820;--color-success-border:#2d6045;--color-success-text:#90d4aa;--color-warning-bg:#2b2112;--color-warning-border:#8a5a1f;--color-warning-accent:#ff9d2e;--color-warning-text:#ffd7a3}body,html{height:100%;font-family:var(--font-sans);background-color:var(--color-bg-page);color:var(--color-text-base);-webkit-font-smoothing:antialiased}html[data-theme=dark]{color-scheme:dark}#root{height:100%}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:var(--font-sans)}button:disabled{cursor:not-allowed}[role=button]:focus-visible,a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:6px}::selection{background:var(--color-primary);color:#ffffff}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}