.cookie-bar{z-index:1000;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));color:#f2f0fb;background:#1a1630;animation:.3s both cookieBarIn;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #1a163047}@keyframes cookieBarIn{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.cookie-bar__inner{align-items:center;gap:20px;max-width:1140px;margin:0 auto;display:flex}.cookie-bar__text{color:#d9d6f0;flex:1;margin:0;font-size:.86rem;line-height:1.5}.cookie-bar__actions{flex:none;gap:10px;display:flex}.cookie-bar__btn{cursor:pointer;border:1px solid #0000;border-radius:9px;padding:9px 20px;font-size:.88rem;font-weight:700;transition:background .15s,border-color .15s,color .15s}.cookie-bar__btn--primary{color:#fff;background:#6c5ce7}.cookie-bar__btn--primary:hover{background:#5a4bd4}.cookie-bar__btn--ghost{color:#d9d6f0;background:0 0;border-color:#ffffff38}.cookie-bar__btn--ghost:hover{color:#fff;background:#ffffff14}@media (width<=640px){.cookie-bar__inner{flex-direction:column;align-items:stretch;gap:12px}.cookie-bar__actions{justify-content:stretch}.cookie-bar__btn{flex:1}}:root{--color-primary:#1b1f3b;--color-primary-light:#2d325a;--color-primary-hover:#3a4078;--color-primary-muted:#6b70a0;--color-accent:#6c5ce7;--color-accent-light:#a29bfe;--color-accent-subtle:#e8e5ff;--color-accent-deep:#4c3aae;--color-bg:#fff;--color-bg-secondary:#f7f7f8;--color-bg-tertiary:#efefef;--color-border:#e2e2e6;--color-border-light:#f0f0f2;--color-text:#1b1f3b;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-text-inverse:#fff;--color-strong:#059669;--color-viable:#2563eb;--color-weak:#d97706;--color-oversupplied:#dc2626;--color-oa-high:#05966959;--color-oa-medium:#2563eb40;--color-oa-low:#dc262633;--color-oa-selected:#6c5ce766;--color-oa-hover:#6c5ce726;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:var(--font-body);--font-logo:"Playfair Display", Georgia, serif;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.875rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #00000014;--shadow-overlay:0 12px 40px #0000001f;--shadow-card:0 1px 2px #1a16300a, 0 8px 24px #1a16300f;--shadow-card-hover:0 2px 4px #1a16300d, 0 14px 34px #1a16301a;--transition-fast:.12s ease;--transition-base:.2s ease;--sidebar-top:56px;--sidebar-width:380px;--sidebar-z:150;--wk-callout-bg:var(--color-bg-secondary);--wk-callout-border:var(--color-border-light);--wk-chart-from:var(--color-accent);--wk-chart-to:#6c5ce729;--wk-track:#ebebf0;--tint-strong:#0596691a;--tint-viable:#2563eb1a;--tint-weak:#d977061f;--tint-oversupplied:#dc26261a;--tint-accent:var(--color-accent-subtle);--tint-neutral:var(--color-bg-secondary)}.token-pill{background:var(--color-accent-subtle);color:var(--color-accent);font-size:var(--text-xs);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-weight:600;line-height:1.4;display:inline-flex}.token-pill--low{background:var(--color-weak);color:#fff}.token-pill--critical{background:var(--color-oversupplied);color:#fff}@keyframes appSidebarIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes cardRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes rowReveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app-card{background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-4);font-family:var(--font-body);color:var(--color-text);transition:box-shadow var(--transition-base), transform var(--transition-base);animation:.32s cubic-bezier(.22,1,.36,1) both cardRise}.app-card--interactive:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.app-card__header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.app-card__title{font-size:var(--text-md);color:var(--color-text);letter-spacing:-.01em;margin:0;font-weight:700}.app-card__count{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;font-weight:600}.app-card__header-spacer{margin-left:auto}.app-card__chevron{color:var(--color-text-tertiary);transition:transform var(--transition-base);flex-shrink:0}.app-card__chevron--open{transform:rotate(180deg)}.app-label{font-size:var(--text-xs);color:var(--color-text-secondary);letter-spacing:normal;text-transform:none;font-weight:500}.app-stat{font-size:var(--text-base);color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:700}.app-stat--lg{font-size:var(--text-2xl)}.app-stat--muted{color:var(--color-text-secondary);font-weight:600}.app-btn{justify-content:center;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border:1px solid #0000;font-weight:600;display:inline-flex}.app-btn:active{transform:scale(.98)}.app-btn--primary{background:var(--color-accent);color:#fff;box-shadow:0 4px 12px #6c5ce747}.app-btn--primary:hover{background:#5b4bd1}.app-btn--primary:disabled{background:var(--color-accent-light);box-shadow:none;cursor:not-allowed}.app-btn--ghost{border-color:var(--color-border);color:var(--color-text-secondary);background:0 0}.app-btn--ghost:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-subtle)}.app-btn--ghost.is-active{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent)}.app-icon-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.app-icon-btn:hover{background:var(--color-bg-secondary);color:var(--color-text)}.app-icon-btn.is-active{background:var(--color-accent-subtle);color:var(--color-accent)}.app-chip{align-items:center;gap:var(--space-1);padding:5px var(--space-3);background:var(--color-bg-secondary);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast);border:none;border-radius:999px;font-weight:600;display:inline-flex}.app-chip:hover{background:var(--color-bg-tertiary)}.app-chip--accent{background:var(--color-accent-subtle);color:var(--color-accent)}.app-stagger>*{animation:.3s ease-out both rowReveal}.app-stagger>:first-child{animation-delay:20ms}.app-stagger>:nth-child(2){animation-delay:60ms}.app-stagger>:nth-child(3){animation-delay:.1s}.app-stagger>:nth-child(4){animation-delay:.14s}.app-stagger>:nth-child(5){animation-delay:.18s}.app-stagger>:nth-child(n+6){animation-delay:.22s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}#root{-webkit-overflow-scrolling:touch;width:100%;height:100%;overflow:hidden auto}#root:has(.map-shell){overflow:hidden}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none}input,textarea,select{font-family:var(--font-body);outline:none}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.auth-page{--auth-indigo:#2d2b55;--auth-purple:#6c5ce7;--auth-lavender:#f4f2ff;--auth-off-white:#fafafa;--auth-indigo-hover:#3d3a6e;--auth-border:#e5e7eb;--auth-error:#dc2626;min-height:100vh;font-family:Inter,sans-serif;display:flex}.auth-page__left{background-color:var(--auth-indigo);background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:40px 40px;flex-direction:column;flex:0 0 45%;justify-content:center;padding:60px 56px;display:flex;position:relative;overflow:hidden}.auth-page__logo{align-items:center;gap:10px;margin-bottom:64px;text-decoration:none;display:flex}.auth-page__logo-mark{background:var(--auth-purple);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-family:Playfair Display,serif;font-size:18px;font-weight:700;display:flex}.auth-page__logo-text{color:#fff;letter-spacing:-.3px;font-family:Playfair Display,serif;font-size:20px;font-weight:700}.auth-page__left-content{z-index:1;position:relative}.auth-page__headline{color:#fff;letter-spacing:-.5px;margin:0 0 20px;font-family:Playfair Display,serif;font-size:32px;font-weight:700;line-height:1.25}.auth-page__copy{color:#ffffffa6;max-width:340px;margin:0;font-size:15px;line-height:1.65}.auth-page__cards{pointer-events:none;position:absolute;inset:0}.auth-card{opacity:.9;white-space:nowrap;background:#fff;border-radius:10px;padding:10px 14px;font-size:12px;font-weight:600;position:absolute;box-shadow:0 8px 24px #00000040}.auth-card--opportunity{color:#059669;border-left:3px solid #059669;top:18%;right:8%;transform:rotate(2deg)}.auth-card--alt{color:var(--auth-indigo);border-left:3px solid var(--auth-purple);top:50%;right:12%;transform:rotate(-1.5deg)}.auth-card--market{color:#b45309;border-left:3px solid #f59e0b;bottom:22%;left:6%;transform:rotate(1deg)}.auth-card__icon{margin-right:5px;display:inline-block}.auth-page__right{background-color:var(--auth-off-white);flex:0 0 55%;justify-content:center;align-items:center;padding:60px 56px;display:flex}.auth-page__form-wrap{width:100%;max-width:400px}.auth-page__form-title{color:var(--auth-indigo);letter-spacing:-.4px;margin:0 0 8px;font-family:Playfair Display,serif;font-size:28px;font-weight:700}.auth-page__form-sub{color:#6b7280;margin:0 0 36px;font-size:14px;line-height:1.5}.auth-form{flex-direction:column;gap:20px;display:flex}.auth-form__field{flex-direction:column;gap:6px;display:flex}.auth-form__label{color:#374151;letter-spacing:.1px;font-size:13px;font-weight:500}.auth-form__input{border:1px solid var(--auth-border);color:#111827;background:#fff;border-radius:8px;outline:none;height:48px;padding:0 14px;font-family:Inter,sans-serif;font-size:15px;transition:border-color .18s,box-shadow .18s}.auth-form__input:focus{border-color:var(--auth-indigo);box-shadow:0 0 0 3px #2d2b5514}.auth-form__input::placeholder{color:#9ca3af}.auth-form__error{color:var(--auth-error);margin:0;font-size:12px;line-height:1.4}.auth-form__global-error{color:var(--auth-error);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:4px;padding:10px 14px;font-size:13px}.auth-form__btn{background:var(--auth-indigo);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;height:48px;margin-top:4px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;transition:background .18s,transform .12s}.auth-form__btn:hover:not(:disabled){background:var(--auth-indigo-hover)}.auth-form__btn:active:not(:disabled){transform:scale(.99)}.auth-form__btn:disabled{opacity:.6;cursor:not-allowed}.auth-form__google-btn{color:#1f2937;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;height:48px;margin-bottom:6px;font-family:Inter,sans-serif;font-size:14.5px;font-weight:600;transition:background .15s,border-color .15s;display:flex}.auth-form__google-btn:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.auth-form__google-btn:disabled{opacity:.6;cursor:not-allowed}.auth-form__divider{color:#9ca3af;text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:12px;margin:14px 0 10px;font-size:11px;font-weight:600;display:flex}.auth-form__divider:before,.auth-form__divider:after{content:"";background:#e5e7eb;flex:1;height:1px}.auth-form__divider span{padding:0 4px}.auth-page__switch{text-align:center;color:#6b7280;margin-top:24px;font-size:14px}.auth-page__switch a{color:var(--auth-indigo);margin-left:4px;font-weight:600;text-decoration:none}.auth-page__switch a:hover{text-decoration:underline}.auth-page__confirm{text-align:center;flex-direction:column;align-items:center;display:flex}.auth-confirm__icon{margin-bottom:16px;font-size:56px;line-height:1}.auth-page__confirm .auth-page__form-title{text-align:center}.auth-page__confirm .auth-page__form-sub{text-align:center;margin-bottom:20px}.auth-confirm__hint{color:#6b7280;margin:0 0 28px;font-size:13px}.auth-confirm__resend{color:var(--auth-indigo);cursor:pointer;background:0 0;border:none;margin-left:2px;padding:0;font-family:inherit;font-size:13px;font-weight:600}.auth-confirm__resend:hover{text-decoration:underline}.auth-confirm__login-btn{justify-content:center;align-items:center;max-width:260px;text-decoration:none;display:inline-flex}@media (width<=768px){.auth-page{-webkit-overflow-scrolling:touch;flex-direction:column;min-height:100dvh;overflow-y:auto}.auth-page__left{flex:none;min-height:auto;padding:32px 24px}.auth-page__logo{margin-bottom:20px}.auth-page__headline{font-size:22px}.auth-page__copy{font-size:13px}.auth-card{display:none}.auth-page__right{flex:1;align-items:flex-start;padding:32px 24px}.auth-page__form-wrap{max-width:100%}.auth-page__form-title{font-size:24px}.auth-page__form-sub{margin-bottom:24px}}
