*{margin:0;padding:0;box-sizing:border-box}:root{--bg-body: #0a0a0c;--bg-primary: #0f0f12;--bg-secondary: #141418;--bg-card: #111114;--bg-hover: #1a1a1e;--text-primary: #ffffff;--text-secondary: #888896;--text-muted: #555560;--color-buy: #22c55e;--color-sell: #ef4444;--color-democrat: #3b82f6;--color-republican: #ef4444;--color-accent: #6366f1;--border-color: #1f1f24;--border-light: #2a2a30;--glass-bg: rgba(17, 17, 20, .7);--glass-bg-solid: rgba(17, 17, 20, .9);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .1);--glass-blur: 16px;--glow-democrat: #3b82f6;--glow-republican: #ef4444;--gradient-democrat-bright: rgba(59, 130, 246, .5);--gradient-democrat: rgba(59, 130, 246, .25);--gradient-republican-bright: rgba(239, 68, 68, .5);--gradient-republican: rgba(239, 68, 68, .25);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--s10: 40px;--s12: 48px;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--container-padding: var(--s6)}@media(max-width:768px){:root{--container-padding: var(--s4)}}@media(max-width:640px){:root{--container-padding: var(--s3);--fs-3xl: 24px;--fs-2xl: 20px}}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--fs-base);line-height:1.5;color:var(--text-primary);background:var(--bg-body);min-height:100vh}body:before{content:"";position:fixed;inset:0;background:linear-gradient(125deg,var(--gradient-republican-bright) 0%,var(--gradient-republican) 15%,transparent 40%),linear-gradient(140deg,transparent 5%,var(--gradient-republican) 20%,transparent 45%),linear-gradient(-125deg,var(--gradient-democrat-bright) 0%,var(--gradient-democrat) 15%,transparent 40%),linear-gradient(-140deg,transparent 5%,var(--gradient-democrat) 20%,transparent 45%);pointer-events:none;z-index:0}#root{min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto}.container{max-width:1400px;margin:0 auto;padding-inline:var(--container-padding)}@media(max-width:768px){.hide-mobile{display:none!important}}.show-mobile{display:none!important}@media(max-width:768px){.show-mobile{display:flex!important}}.text-buy{color:var(--color-buy)}.text-sell{color:var(--color-sell)}.text-democrat{color:var(--color-democrat)}.text-republican{color:var(--color-republican)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);transition:border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.card:hover{border-color:var(--glass-border-hover);transform:translateY(-1px)}.badge{display:inline-flex;align-items:center;padding:var(--s1) var(--s2);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:500}.badge-democrat{background:color-mix(in srgb,var(--color-democrat) 20%,transparent);color:var(--color-democrat)}.badge-republican{background:color-mix(in srgb,var(--color-republican) 20%,transparent);color:var(--color-republican)}.badge-buy{background:color-mix(in srgb,var(--color-buy) 20%,transparent);color:var(--color-buy)}.badge-sell{background:color-mix(in srgb,var(--color-sell) 20%,transparent);color:var(--color-sell)}.header{position:sticky;top:var(--s4);z-index:100;max-width:1200px;margin:var(--s4) auto 0;padding:0 var(--s6)}@media(max-width:768px){.header{top:var(--s2);margin-top:var(--s2);padding:0 var(--s3)}}.header .header--inner{display:flex;align-items:center;justify-content:space-between;padding:var(--s3) var(--s6);background:var(--glass-bg-solid);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-xl)}@media(max-width:768px){.header .header--inner{padding:var(--s3) var(--s4)}}.header .header--logo{display:flex;align-items:center;gap:var(--s2)}.header .header--logo svg{height:26px;width:auto}.header .header--logo:hover{opacity:.9}.header .header--nav-desktop{display:flex;align-items:center;gap:var(--s6)}@media(max-width:768px){.header .header--nav-desktop{display:none}}.header .header--nav-desktop a{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:500;transition:color var(--transition-fast)}.header .header--nav-desktop a:hover,.header .header--nav-desktop a.active{color:var(--text-primary)}.header .header--hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;padding:4px;background:none;border:none;cursor:pointer}@media(max-width:768px){.header .header--hamburger{display:flex}}.header .header--hamburger .hamburger-line{display:block;width:100%;height:2px;background:var(--text-primary);border-radius:1px;transition:transform .3s ease,opacity .3s ease}.header .header--hamburger.open .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.header .header--hamburger.open .hamburger-line:nth-child(2){opacity:0}.header .header--hamburger.open .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.header--overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:99;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.header--overlay.visible{opacity:1;visibility:visible}.header--drawer{position:fixed;top:0;right:0;width:280px;height:100vh;background:var(--bg-primary);border-left:1px solid var(--border-color);z-index:101;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column;padding:var(--s8) var(--s6);gap:var(--s4)}.header--drawer.open{transform:translate(0)}.header--drawer a{color:var(--text-secondary);font-size:var(--fs-lg);font-weight:500;padding:var(--s3) 0;border-bottom:1px solid var(--border-color);transition:color var(--transition-fast)}.header--drawer a:hover,.header--drawer a.active{color:var(--text-primary)}.home{max-width:1400px;margin:0 auto;padding:var(--container-padding)}.home .home--grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--s5)}@media(max-width:1024px){.home .home--grid{grid-template-columns:1fr 1fr;gap:var(--s4)}}@media(max-width:768px){.home .home--grid{grid-template-columns:1fr;gap:var(--s4)}}.home .section-header{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}.home .section-header h2{font-size:var(--fs-md);font-weight:600;color:var(--text-primary);text-transform:uppercase}.home .section-header .section-tabs{display:flex;gap:var(--s2)}.home .section-header .section-tabs button{padding:var(--s1) var(--s3);border-radius:var(--radius-md);font-size:var(--fs-xs);color:var(--text-secondary);transition:all var(--transition-fast)}.home .section-header .section-tabs button:hover{color:var(--text-primary)}.home .section-header .section-tabs button.active{background:var(--bg-secondary);color:var(--text-primary)}.home .section-header .time-range{font-size:var(--fs-sm);color:var(--text-muted)}.home .section-header .view-all{margin-left:auto;font-size:var(--fs-sm);color:var(--text-secondary)}.home .section-header .view-all:hover{color:var(--text-primary)}.home .home--latest-trades{grid-column:span 2;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);padding:var(--s5)}@media(max-width:768px){.home .home--latest-trades{grid-column:span 1;padding:var(--s4)}}.home .trades-loading{display:flex;align-items:center;justify-content:center;padding:var(--s8);color:var(--text-muted);font-size:var(--fs-sm)}.home .trades-list{display:flex;flex-direction:column;gap:var(--s2)}.home .trade-item{display:flex;align-items:flex-start;gap:var(--s2);padding:var(--s2);border-radius:var(--radius-md);background:#ffffff05;border:1px solid transparent;transition:background var(--transition-fast),border-color var(--transition-fast)}@media(max-width:640px){.home .trade-item{padding:var(--s3)}}.home .trade-item:hover{background:#ffffff0d;border-color:var(--glass-border)}.home .trade-item .trade-politician-photo{width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover;border:1px solid var(--glass-border);flex-shrink:0}@media(max-width:640px){.home .trade-item .trade-politician-photo{width:40px;height:40px}}.home .trade-item .trade-main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}@media(max-width:640px){.home .trade-item .trade-main{flex-direction:column;align-items:flex-start;gap:var(--s1)}}.home .trade-item .trade-header{display:flex;align-items:center;gap:var(--s1);flex-wrap:wrap}.home .trade-item .trade-type{font-size:9px;font-weight:700;padding:1px 4px;border-radius:var(--radius-sm);text-transform:uppercase}.home .trade-item .trade-type.buy{color:var(--color-buy);background:color-mix(in srgb,var(--color-buy) 15%,transparent)}.home .trade-item .trade-type.sell{color:var(--color-sell);background:color-mix(in srgb,var(--color-sell) 15%,transparent)}.home .trade-item .trade-issuer-ticker{font-size:var(--fs-xs);font-weight:600;color:var(--text-primary)}.home .trade-item .trade-size{font-size:10px;color:var(--text-secondary);padding:1px 4px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.home .trade-item .trade-date{font-size:10px;color:var(--text-muted);margin-left:auto}@media(max-width:640px){.home .trade-item .trade-date{margin-left:0}}.home .trade-item .trade-details{display:flex;align-items:center;gap:var(--s1)}.home .trade-item .trade-politician-name{font-size:var(--fs-xs);font-weight:500;color:var(--text-primary)}.home .trade-item .trade-politician-party{font-size:10px;color:var(--text-muted)}.home .trade-item .trade-politician-party.democrat{color:var(--color-democrat)}.home .trade-item .trade-politician-party.republican{color:var(--color-republican)}.home .trade-item .trade-issuer-name{display:none}.home .trade-item .trade-labels{display:flex;flex-wrap:wrap;gap:2px}.home .home--featured-politicians{grid-column:span 1;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);padding:var(--s5)}@media(max-width:768px){.home .home--featured-politicians{padding:var(--s4)}}.home .politicians-list{display:flex;flex-direction:column;gap:var(--s3)}.home .featured-politician{display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto auto;gap:var(--s2) var(--s3);padding:var(--s4);background:#ffffff05;border-radius:var(--radius-lg);border:1px solid transparent;text-decoration:none;color:inherit;transition:background var(--transition-fast),border-color var(--transition-fast)}.home .featured-politician:hover{background:#ffffff0d;border-color:var(--glass-border)}.home .featured-politician img{grid-row:span 2;width:48px;height:48px;border-radius:var(--radius-full);object-fit:cover}.home .featured-politician .politician-info{display:flex;flex-direction:column;gap:2px}.home .featured-politician .politician-info .name{font-weight:600;font-size:var(--fs-base)}.home .featured-politician .politician-info .meta{font-size:var(--fs-xs);color:var(--text-muted)}.home .featured-politician .politician-info .meta.democrat{color:var(--color-democrat)}.home .featured-politician .politician-info .meta.republican{color:var(--color-republican)}.home .featured-politician .politician-stats{grid-column:span 2;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border-color)}@media(max-width:640px){.home .featured-politician .politician-stats{grid-template-columns:repeat(2,1fr);gap:var(--s3)}}.home .featured-politician .politician-stats .stat{display:flex;flex-direction:column;gap:2px}.home .featured-politician .politician-stats .stat .value{font-weight:600;font-size:var(--fs-sm)}.home .featured-politician .politician-stats .stat .label{font-size:var(--fs-xs);color:var(--text-muted)}.home .featured-politician .chart-placeholder{grid-column:span 2;height:60px;margin-top:var(--s2)}.home .featured-politician .chart-placeholder svg{width:100%;height:100%}.home .home--prediction-markets{grid-column:span 3;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--s5)}@media(max-width:1024px){.home .home--prediction-markets{grid-column:span 2}}@media(max-width:768px){.home .home--prediction-markets{grid-column:span 1;padding:var(--s4)}}.home .home--featured-issuers{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);padding:var(--s5)}@media(max-width:768px){.home .home--featured-issuers{padding:var(--s4)}}.home .issuers-list{display:flex;flex-direction:column;gap:var(--s3)}.home .issuer-item{display:grid;grid-template-columns:32px 1fr 50px 70px 80px;align-items:center;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--border-color)}@media(max-width:640px){.home .issuer-item{grid-template-columns:32px 1fr 50px}}.home .issuer-item:last-child{border-bottom:none}.home .issuer-item .issuer-badge{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-sm);font-weight:600;font-size:var(--fs-sm);color:var(--text-secondary)}.home .issuer-item .issuer-info{display:flex;flex-direction:column;gap:2px;min-width:0}.home .issuer-item .issuer-info .name{font-size:var(--fs-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home .issuer-item .issuer-info .ticker{font-size:var(--fs-xs);color:var(--text-muted)}.home .issuer-item .issuer-trades{font-size:var(--fs-sm);font-weight:500;text-align:center}.home .issuer-item .issuer-change{font-size:var(--fs-sm);font-weight:500;text-align:right}.home .issuer-item .issuer-change.positive{color:var(--color-buy)}@media(max-width:640px){.home .issuer-item .issuer-change{display:none}}.home .issuer-item .sparkline{height:24px}.home .issuer-item .sparkline svg{width:100%;height:100%}@media(max-width:640px){.home .issuer-item .sparkline{display:none}}.home .home--newsletter{grid-column:span 3;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-card) 100%);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--s8);text-align:center}@media(max-width:1024px){.home .home--newsletter{grid-column:span 2}}@media(max-width:768px){.home .home--newsletter{grid-column:span 1;padding:var(--s6)}}.home .home--newsletter h3{font-size:var(--fs-xl);font-weight:600;margin-bottom:var(--s2)}@media(max-width:640px){.home .home--newsletter h3{font-size:var(--fs-lg)}}.home .home--newsletter p{color:var(--text-secondary);margin-bottom:var(--s5)}@media(max-width:640px){.home .home--newsletter p{font-size:var(--fs-sm);margin-bottom:var(--s4)}}.home .home--newsletter .subscribe-btn{padding:var(--s3) var(--s6);background:var(--color-accent);color:#fff;font-weight:600;border-radius:var(--radius-md);transition:opacity var(--transition-fast)}.home .home--newsletter .subscribe-btn:hover{opacity:.9}.prediction-markets{display:flex;flex-direction:column;gap:var(--s4)}.prediction-markets--title{font-size:var(--fs-lg);font-weight:600;color:var(--text-primary);margin:0}.prediction-markets--loading{display:flex;align-items:center;justify-content:center;gap:var(--s3);padding:var(--s8);color:var(--text-secondary)}.prediction-markets--loading .spinner{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.prediction-markets--empty{display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s6);background:var(--bg-secondary);border-radius:var(--radius-md);text-align:center}.prediction-markets--empty p{color:var(--text-secondary);margin:0}.prediction-markets--empty .polymarket-link{color:var(--color-accent);font-size:var(--fs-sm);text-decoration:none}.prediction-markets--empty .polymarket-link:hover{text-decoration:underline}.prediction-markets--grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}.prediction-markets--grid.compact{grid-template-columns:1fr;gap:var(--s3)}@media(max-width:1200px){.prediction-markets--grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.prediction-markets--grid{grid-template-columns:1fr}}.prediction-markets--more{align-self:center;padding:var(--s2) var(--s4);color:var(--color-accent);font-size:var(--fs-sm);text-decoration:none;transition:opacity var(--transition-fast)}.prediction-markets--more:hover{opacity:.8}.market-card{display:flex;flex-direction:row;align-items:center;gap:var(--s3);padding:var(--s3);background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-color);text-decoration:none;transition:transform var(--transition-fast),border-color var(--transition-fast)}.market-card:hover{transform:translateY(-1px);border-color:var(--border-light)}.market-card .market-card--content{flex:1;min-width:0}.market-card--image{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.market-card--content{display:flex;flex-direction:column;gap:var(--s1)}.market-card--title{font-size:var(--fs-sm);font-weight:500;color:var(--text-primary);line-height:1.3;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.market-card--odds .odds-bar{display:flex;height:20px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-secondary)}.market-card--odds .odds-yes{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#10b981,#059669);min-width:36px;transition:width .3s ease}.market-card--odds .odds-no{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ef4444,#dc2626);min-width:36px;transition:width .3s ease}.market-card--odds .odds-label{font-size:10px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap}.market-card--meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}.market-card--meta .volume{font-size:var(--fs-xs);color:var(--text-muted)}.market-card--meta .polymarket-badge{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.trade-label-badge{display:inline-flex;align-items:center;gap:4px;padding:var(--s1) var(--s2);background:color-mix(in srgb,var(--label-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--label-color) 30%,transparent);border-radius:var(--radius-full);color:var(--label-color);font-size:var(--fs-xs);font-weight:500;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.trade-label-badge--sm{padding:2px var(--s1);font-size:10px}.trade-label-badge--md{padding:var(--s1) var(--s2);font-size:var(--fs-xs)}.trade-label-badge--clickable{cursor:pointer}.trade-label-badge--clickable:hover{background:color-mix(in srgb,var(--label-color) 25%,transparent);border-color:color-mix(in srgb,var(--label-color) 50%,transparent);transform:translateY(-1px)}.trade-label-badge--clickable:active{transform:translateY(0)}.trade-label-badge--selected{background:color-mix(in srgb,var(--label-color) 40%,transparent);border-color:var(--label-color);box-shadow:0 0 8px color-mix(in srgb,var(--label-color) 40%,transparent)}.trade-marquee{width:100vw;margin-left:calc(-50vw + 50%);overflow:hidden;background:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:var(--s3) 0;margin-bottom:var(--s6)}@media(max-width:768px){.trade-marquee{padding:var(--s2) 0;margin-bottom:var(--s4)}}.trade-marquee--track{display:flex;gap:0;animation:marquee-scroll 40s linear infinite}@media(max-width:768px){.trade-marquee--track{animation-duration:30s}}.trade-marquee--content{display:flex;flex-shrink:0;gap:var(--s8);padding-right:var(--s8)}@media(max-width:768px){.trade-marquee--content{gap:var(--s5);padding-right:var(--s5)}}@media(max-width:640px){.trade-marquee--content{gap:var(--s4);padding-right:var(--s4)}}.marquee-item{display:flex;align-items:center;gap:var(--s2);text-decoration:none;white-space:nowrap}@media(max-width:640px){.marquee-item{gap:6px}}.marquee-politician{width:24px;height:24px;border-radius:var(--radius-full);object-fit:cover}@media(max-width:640px){.marquee-politician{width:20px;height:20px}}.marquee-ticker{font-weight:700;font-size:var(--fs-sm)}@media(max-width:640px){.marquee-ticker{font-size:var(--fs-xs)}}.marquee-ticker.buy{color:var(--color-buy)}.marquee-ticker.sell{color:var(--color-sell)}.marquee-size{font-size:var(--fs-sm);color:var(--text-primary);font-weight:500}@media(max-width:640px){.marquee-size{font-size:var(--fs-xs)}}.marquee-type{font-size:var(--fs-xs);font-weight:500;color:var(--text-muted)}@media(max-width:640px){.marquee-type{font-size:10px}}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.trades-page{max-width:1400px;margin:0 auto;padding:var(--s6)}.trades-page .trades-page--header{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s5)}.trades-page .trades-page--header h1{font-size:var(--fs-xl);font-weight:600;text-transform:uppercase}.trades-page .trades-page--header .time-range{padding:var(--s1) var(--s3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--text-secondary)}.trades-page .trades-page--content{margin-top:var(--s5)}.trades-page .no-results{display:flex;align-items:center;justify-content:center;padding:var(--s12);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.trades-page .no-results p{color:var(--text-secondary);font-size:var(--fs-md)}.trades-page .pagination{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-top:var(--s5);padding:var(--s4)}.trades-page .pagination .pagination--btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.trades-page .pagination .pagination--btn svg{width:18px;height:18px}.trades-page .pagination .pagination--btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.trades-page .pagination .pagination--btn:disabled{opacity:.4;cursor:not-allowed}.trades-page .pagination .pagination--info{font-size:var(--fs-sm);color:var(--text-secondary)}.trades-page .pagination .pagination--info strong{color:var(--text-primary)}.trades-filter-bar{display:flex;flex-direction:column;gap:var(--s3);margin-bottom:var(--s5);padding:var(--s4);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.trades-filter-bar .filter-row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}.trades-filter-bar .search-input{position:relative;flex:1;min-width:180px;max-width:240px}.trades-filter-bar .search-input svg{position:absolute;left:var(--s3);top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-muted);pointer-events:none}.trades-filter-bar .search-input input{width:100%;padding:var(--s2) var(--s3) var(--s2) var(--s8);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--fs-sm);transition:border-color var(--transition-fast)}.trades-filter-bar .search-input input::placeholder{color:var(--text-muted)}.trades-filter-bar .search-input input:focus{outline:none;border-color:var(--color-accent)}.trades-filter-bar .select-wrapper{position:relative;min-width:140px}.trades-filter-bar .select-wrapper select{width:100%;padding:var(--s2) var(--s8) var(--s2) var(--s3);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-sm);appearance:none;cursor:pointer;transition:border-color var(--transition-fast)}.trades-filter-bar .select-wrapper select:focus{outline:none;border-color:var(--color-accent)}.trades-filter-bar .select-wrapper select:has(option:checked:not([value=""])){color:var(--text-primary)}.trades-filter-bar .select-wrapper svg{position:absolute;right:var(--s3);top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--text-muted);pointer-events:none}.trades-filter-bar .clear-btn{padding:var(--s2) var(--s4);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:all var(--transition-fast)}.trades-filter-bar .clear-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-light)}.trades-filter-bar .labels-row{display:flex;align-items:flex-start;gap:var(--s3);padding-top:var(--s3);border-top:1px solid var(--border-color)}.trades-filter-bar .labels-row .labels-title{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:500;padding-top:2px;flex-shrink:0}.trades-filter-bar .labels-row .labels-list{display:flex;flex-wrap:wrap;gap:var(--s2)}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4)}@media(max-width:1024px){.stats-row{grid-template-columns:repeat(2,1fr);gap:var(--s3)}}@media(max-width:480px){.stats-row{grid-template-columns:1fr;gap:var(--s3)}}.stats-row .stats-row--item{display:flex;flex-direction:column;position:relative;padding:var(--s5) var(--s6);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}@media(max-width:768px){.stats-row .stats-row--item{padding:var(--s4) var(--s5)}}.stats-row .stats-row--value{font-size:var(--fs-2xl);font-weight:600;color:var(--text-primary);line-height:1.2}@media(max-width:640px){.stats-row .stats-row--value{font-size:var(--fs-xl)}}.stats-row .stats-row--label{font-size:var(--fs-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:var(--s1)}@media(max-width:640px){.stats-row .stats-row--label{font-size:var(--fs-xs)}}.stats-row .stats-row--icon{position:absolute;right:var(--s4);top:50%;transform:translateY(-50%);width:48px;height:48px;color:var(--text-muted);opacity:.3}@media(max-width:640px){.stats-row .stats-row--icon{width:36px;height:36px;right:var(--s3)}}.stats-row .stats-row--icon svg{width:100%;height:100%}.trades-table{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.trades-table table{width:100%;border-collapse:collapse}.trades-table thead{background:var(--bg-secondary)}.trades-table thead th{padding:var(--s3) var(--s4);text-align:left;font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.trades-table tbody tr{border-bottom:1px solid var(--border-color);transition:background var(--transition-fast)}.trades-table tbody tr:hover{background:var(--bg-hover)}.trades-table tbody tr:last-child{border-bottom:none}.trades-table td{padding:var(--s3) var(--s4);font-size:var(--fs-sm);color:var(--text-primary);vertical-align:middle}.trades-table .politician-cell .politician-wrapper{display:flex;align-items:center;gap:var(--s3)}.trades-table .politician-cell img{width:36px;height:36px;border-radius:var(--radius-full);object-fit:cover}.trades-table .politician-cell .politician-info{display:flex;flex-direction:column;gap:2px}.trades-table .politician-cell .name{font-weight:500;color:var(--color-accent)}.trades-table .politician-cell .meta{font-size:var(--fs-xs);color:var(--text-secondary)}.trades-table .politician-cell .meta .democrat{color:var(--color-democrat)}.trades-table .politician-cell .meta .republican{color:var(--color-republican)}.trades-table .issuer-cell .issuer-wrapper{display:flex;align-items:center;gap:var(--s3)}.trades-table .issuer-cell .issuer-badge{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-sm);font-weight:600;font-size:var(--fs-sm);color:var(--text-secondary)}.trades-table .issuer-cell .issuer-logo{width:32px;height:32px;object-fit:contain;filter:brightness(0) invert(.5)}.trades-table .issuer-cell .issuer-info{display:flex;flex-direction:column;gap:2px}.trades-table .issuer-cell .name{font-weight:500;color:var(--color-accent)}.trades-table .issuer-cell .ticker{font-size:var(--fs-xs);color:var(--text-secondary)}.trades-table .date-cell .time{display:block;font-size:var(--fs-xs);color:var(--text-muted)}.trades-table .date-cell .date{display:block}.trades-table .filed-cell .days{font-weight:600}.trades-table .filed-cell .label{font-size:var(--fs-xs);color:var(--text-secondary);margin-left:var(--s1)}.trades-table .owner-cell{color:var(--text-secondary)}.trades-table .trade-type{display:inline-block;padding:var(--s1) var(--s2);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:600}.trades-table .trade-type.buy{background:color-mix(in srgb,var(--color-buy) 20%,transparent);color:var(--color-buy)}.trades-table .trade-type.sell{background:color-mix(in srgb,var(--color-sell) 20%,transparent);color:var(--color-sell)}.trades-table .size-cell .size-badge{display:inline-flex;align-items:center;gap:var(--s1);padding:var(--s1) var(--s2);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--fs-xs);color:var(--text-secondary)}.trades-table .labels-cell .labels-wrapper{display:flex;flex-wrap:wrap;gap:var(--s1);max-width:200px}.trades-table .price-cell{font-weight:500}.trades-table .ai-col{width:80px;text-align:center}.trades-table .ai-cell{text-align:center}.trades-table .ai-cell .ai-wrapper{display:flex;align-items:center;justify-content:center;gap:var(--s2)}.trades-table.compact td{padding:var(--s2) var(--s3)}.trades-table.compact .politician-cell img{width:28px;height:28px}.ai-insight-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--s3);min-width:280px;max-width:360px;box-shadow:var(--shadow-lg)}.ai-insight-header{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2);padding-bottom:var(--s2);border-bottom:1px solid var(--border-color)}.ai-icon{width:16px;height:16px;color:var(--color-accent)}.ai-label{font-size:var(--fs-xs);font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:.5px}.ai-insight-content{font-size:var(--fs-sm);line-height:1.5;color:var(--text-primary)}.ai-insight-card.error .ai-insight-content{color:var(--color-sell)}.error-message{font-style:italic}.loading-skeleton{display:flex;flex-direction:column;gap:var(--s2)}.skeleton-line{height:14px;background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-hover) 50%,var(--bg-secondary) 75%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.5s infinite}.skeleton-line.short{width:60%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.trade-tooltip-container{position:relative;display:inline-flex}.ai-insight-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.ai-insight-btn svg{width:16px;height:16px;color:var(--text-secondary);transition:color var(--transition-fast)}.ai-insight-btn:hover{background:var(--bg-hover);border-color:var(--color-accent)}.ai-insight-btn:hover svg{color:var(--color-accent)}.ai-insight-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ai-insight-btn[aria-expanded=true]{background:var(--color-accent);border-color:var(--color-accent)}.ai-insight-btn[aria-expanded=true] svg{color:#fff}.trade-tooltip-popover{position:absolute;top:calc(100% + var(--s2));right:0;z-index:100;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.trade-tooltip-popover{position:fixed;top:auto;right:var(--s3);bottom:var(--s3);left:var(--s3)}.trade-tooltip-popover .ai-insight-card{max-width:none;width:100%}}.meme-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.meme-btn svg{width:16px;height:16px;color:var(--text-secondary);transition:color var(--transition-fast)}.meme-btn:hover{background:#fbbf24;border-color:#f59e0b}.meme-btn:hover svg{color:#1f2937}.meme-btn:focus-visible{outline:2px solid #fbbf24;outline-offset:2px}.meme-modal-backdrop{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.meme-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.meme-modal.meme-modal--wide{max-width:600px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.meme-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--s4);border-bottom:1px solid var(--border-color)}.meme-modal-header h3{margin:0;font-size:var(--fs-lg);color:var(--text-primary)}.meme-modal-header .close-btn{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1}.meme-modal-header .close-btn:hover{color:var(--text-primary)}.meme-modal-content{padding:var(--s4);overflow-y:auto;flex:1}.meme-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--s6);text-align:center}.meme-loading p{margin:var(--s3) 0 0;color:var(--text-primary);font-weight:500}.meme-loading .meme-loading-sub{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:400}.meme-spinner{width:48px;height:48px;border:4px solid var(--bg-secondary);border-top-color:#fbbf24;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.meme-error{text-align:center;padding:var(--s4)}.meme-error p{color:var(--color-sell);margin-bottom:var(--s3)}.meme-error button{background:var(--color-accent);color:#fff;border:none;padding:var(--s2) var(--s4);border-radius:var(--radius-sm);cursor:pointer}.meme-error button:hover{opacity:.9}.meme-prompt-editor{display:flex;flex-direction:column;gap:var(--s4)}.prompt-field{display:flex;flex-direction:column;gap:var(--s2)}.prompt-field label{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.prompt-field textarea,.prompt-field input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:var(--s3);font-size:var(--fs-base);color:var(--text-primary);font-family:inherit;resize:vertical;transition:border-color var(--transition-fast)}:is(.prompt-field textarea,.prompt-field input)::placeholder{color:var(--text-muted)}:is(.prompt-field textarea,.prompt-field input):focus{outline:none;border-color:#fbbf24}.prompt-field textarea{min-height:120px}.prompt-actions{display:flex;gap:var(--s3);justify-content:flex-end;padding-top:var(--s2)}.regenerate-btn{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);padding:var(--s2) var(--s4);border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.regenerate-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.generate-btn{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;border:none;padding:var(--s2) var(--s4);border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.generate-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #fbbf244d}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.edit-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);padding:var(--s2) var(--s4);border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.edit-btn:hover{background:var(--bg-tertiary)}.meme-result{display:flex;flex-direction:column;align-items:center;gap:var(--s4)}.meme-image{width:100%;max-width:400px;border-radius:var(--radius-md);border:2px solid var(--border-color)}.meme-caption{font-size:var(--fs-lg);font-weight:600;text-align:center;color:var(--text-primary);margin:0;padding:0 var(--s2)}.meme-actions{display:flex;gap:var(--s3)}.download-btn{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1f2937;border:none;padding:var(--s2) var(--s4);border-radius:var(--radius-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.download-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #fbbf244d}.meme-modal-footer{padding:var(--s3) var(--s4);border-top:1px solid var(--border-color);text-align:center}.meme-modal-footer .disclaimer{font-size:var(--fs-xs);color:var(--text-muted);font-style:italic}.politicians-page{max-width:1400px;margin:0 auto;padding:var(--s6)}.politicians-page .politicians-page--header{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s5)}.politicians-page .politicians-page--header h1{font-size:var(--fs-xl);font-weight:600;text-transform:uppercase}.politicians-page .politicians-page--header .time-range{padding:var(--s1) var(--s3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--text-secondary)}.politicians-page .trait-filter-panel{margin-top:var(--s5);padding:var(--s4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border)}.politicians-page .trait-filter-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.politicians-page .trait-filter-toggle{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);background:transparent;border:none;color:var(--text-primary);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:color var(--transition-fast)}.politicians-page .trait-filter-toggle:hover{color:var(--color-accent)}.politicians-page .trait-filter-toggle .icon{font-size:10px;color:var(--text-muted)}.politicians-page .clear-traits{padding:var(--s1) var(--s3);background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.politicians-page .clear-traits:hover{background:var(--bg-tertiary);color:var(--text-primary)}.politicians-page .trait-filter-categories{display:flex;flex-direction:column;gap:var(--s4);margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--glass-border)}.politicians-page .trait-category{display:flex;flex-direction:column;gap:var(--s2)}.politicians-page .trait-category-label{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:0}.politicians-page .trait-category-badges{display:flex;flex-wrap:wrap;gap:var(--s2)}.politicians-page .politicians-page--results-header{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s5);padding-bottom:var(--s3);border-bottom:1px solid var(--glass-border)}.politicians-page .results-count{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:500}.politicians-page .politicians-page--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s5);margin-top:var(--s5)}.politicians-page .pagination{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-top:var(--s5);padding:var(--s4)}.politicians-page .pagination .pagination--btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.politicians-page .pagination .pagination--btn svg{width:18px;height:18px}.politicians-page .pagination .pagination--btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.politicians-page .pagination .pagination--btn:disabled{opacity:.4;cursor:not-allowed}.politicians-page .pagination .pagination--info{font-size:var(--fs-sm);color:var(--text-secondary)}.politicians-page .pagination .pagination--info strong{color:var(--text-primary)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s5)}@media(max-width:640px){.filter-bar{gap:var(--s2)}}.filter-bar .filter-bar--search{position:relative;flex:1;min-width:200px;max-width:300px}@media(max-width:640px){.filter-bar .filter-bar--search{flex:none;width:100%;max-width:none;min-width:0;order:-1}}.filter-bar .filter-bar--search svg{position:absolute;left:var(--s3);top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text-muted);pointer-events:none}.filter-bar .filter-bar--search input{width:100%;padding:var(--s3) var(--s4) var(--s3) var(--s10);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--fs-sm)}.filter-bar .filter-bar--search input::placeholder{color:var(--text-muted)}.filter-bar .filter-bar--search input:focus{outline:none;border-color:var(--color-accent)}.filter-bar .filter-bar--select{position:relative;min-width:140px}@media(max-width:640px){.filter-bar .filter-bar--select{flex:1;min-width:calc(50% - var(--s1))}}.filter-bar .filter-bar--select select{width:100%;padding:var(--s3) var(--s8) var(--s3) var(--s4);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-sm);appearance:none;cursor:pointer}.filter-bar .filter-bar--select select:focus{outline:none;border-color:var(--color-accent)}.filter-bar .filter-bar--select svg{position:absolute;right:var(--s3);top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--text-muted);pointer-events:none}.politician-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:var(--s3) var(--s4);padding:var(--s5);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.politician-card:hover{transform:translateY(-2px);border-color:var(--glass-border-hover)}.politician-card.party--democrat{box-shadow:0 0 40px #3b82f614}.politician-card.party--democrat:hover{box-shadow:0 8px 32px #0006,0 0 50px #3b82f626}.politician-card.party--republican{box-shadow:0 0 40px #ef444414}.politician-card.party--republican:hover{box-shadow:0 8px 32px #0006,0 0 50px #ef444426}.politician-card .politician-card--avatar{grid-row:1 / 3;width:64px;height:64px;border-radius:var(--radius-full);overflow:hidden;border:2px solid var(--border-color);box-shadow:0 0 0 2px transparent;transition:box-shadow var(--transition-base)}.politician-card .politician-card--avatar img{width:100%;height:100%;object-fit:cover}.politician-card.party--democrat .politician-card--avatar{border-color:var(--color-democrat);box-shadow:0 0 16px color-mix(in srgb,var(--color-democrat) 40%,transparent)}.politician-card.party--republican .politician-card--avatar{border-color:var(--color-republican);box-shadow:0 0 16px color-mix(in srgb,var(--color-republican) 40%,transparent)}.politician-card:hover .politician-card--avatar{box-shadow:0 0 24px color-mix(in srgb,currentColor 50%,transparent)}.politician-card .politician-card--info{display:flex;flex-direction:column;justify-content:center;gap:var(--s1);min-width:0}.politician-card .politician-card--name{font-size:var(--fs-md);font-weight:500;color:var(--text-primary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.politician-card .politician-card--affiliation{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-xs);color:var(--text-secondary)}.politician-card .politician-card--affiliation .party-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-sm);font-size:11px;font-weight:700;color:#fff}.politician-card .politician-card--affiliation .party-badge--democrat{background:var(--color-democrat)}.politician-card .politician-card--affiliation .party-badge--republican{background:var(--color-republican)}.politician-card .politician-card--affiliation .chamber,.politician-card .politician-card--affiliation .state{color:var(--text-muted)}.politician-card .politician-card--affiliation .chamber:after{content:"·";margin-left:var(--s2);color:var(--text-muted)}.politician-card .politician-card--traits{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:var(--s1);padding-top:var(--s2)}.politician-card .trait-overflow{display:inline-flex;align-items:center;padding:2px var(--s1);font-size:10px;font-weight:500;color:var(--text-muted);background:var(--bg-secondary);border-radius:var(--radius-full)}.politician-card .politician-card--stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--glass-border)}@media(max-width:640px){.politician-card .politician-card--stats{grid-template-columns:repeat(2,1fr);gap:var(--s3)}}.politician-card .stat{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.politician-card .stat .stat-value{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);line-height:1.2;white-space:nowrap}.politician-card .stat .stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.trait-badge{display:inline-flex;align-items:center;gap:4px;padding:var(--s1) var(--s2);background:color-mix(in srgb,var(--trait-color) 15%,transparent);border:1px solid color-mix(in srgb,var(--trait-color) 30%,transparent);border-radius:var(--radius-full);color:var(--trait-color);font-size:var(--fs-xs);font-weight:500;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.trait-badge--sm{padding:2px var(--s1);font-size:10px}.trait-badge--md{padding:var(--s1) var(--s2);font-size:var(--fs-xs)}.trait-badge--clickable{cursor:pointer}.trait-badge--clickable:hover{background:color-mix(in srgb,var(--trait-color) 25%,transparent);border-color:color-mix(in srgb,var(--trait-color) 50%,transparent);transform:translateY(-1px)}.trait-badge--clickable:active{transform:translateY(0)}.trait-badge--selected{background:color-mix(in srgb,var(--trait-color) 40%,transparent);border-color:var(--trait-color);box-shadow:0 0 8px color-mix(in srgb,var(--trait-color) 40%,transparent)}.politician-detail{max-width:1400px;margin:0 auto;padding:var(--s6)}.politician-detail .not-found{text-align:center;padding:var(--s12);color:var(--text-secondary);font-size:var(--fs-lg)}.politician-detail .politician-detail--header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--s6);padding:var(--s6);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.politician-detail .politician-detail--profile{display:flex;align-items:center;gap:var(--s5)}.politician-detail .politician-detail--photo{width:100px;height:100px;border-radius:var(--radius-full);object-fit:cover;border:3px solid var(--border-color)}.politician-detail .politician-detail--info h1{font-size:var(--fs-2xl);font-weight:600;margin-bottom:var(--s2)}.politician-detail .politician-detail--meta{display:flex;align-items:center;gap:var(--s3);color:var(--text-secondary);font-size:var(--fs-sm)}.politician-detail .politician-detail--meta .badge{text-transform:uppercase;font-weight:600}.politician-detail .politician-detail--meta .badge-democrat{background:color-mix(in srgb,var(--color-democrat) 20%,transparent);color:var(--color-democrat)}.politician-detail .politician-detail--meta .badge-republican{background:color-mix(in srgb,var(--color-republican) 20%,transparent);color:var(--color-republican)}.politician-detail .politician-detail--meta .chamber,.politician-detail .politician-detail--meta .state{padding:var(--s1) var(--s2);background:var(--bg-secondary);border-radius:var(--radius-sm)}.politician-detail .politician-detail--traits{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s3)}.politician-detail .politician-detail--social{display:flex;gap:var(--s2);margin-top:var(--s3)}.politician-detail .social-link{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-secondary);transition:all var(--transition-fast)}.politician-detail .social-link svg{width:16px;height:16px}.politician-detail .social-link:hover{background:var(--color-accent);color:#fff}.politician-detail .district{padding:var(--s1) var(--s2);background:var(--bg-secondary);border-radius:var(--radius-sm)}.politician-detail .politician-detail--info-cards{display:flex;gap:var(--s6)}.politician-detail .politician-detail--info-card{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-left:var(--s6);border-left:1px solid var(--border-color)}.politician-detail .politician-detail--info-card:first-child{border-left:none;padding-left:0}.politician-detail .politician-detail--info-card .label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.politician-detail .politician-detail--info-card .value{font-size:var(--fs-md);font-weight:500;color:var(--text-primary)}.politician-detail .politician-detail--info-card .sub{font-size:var(--fs-xs);color:var(--text-secondary)}.politician-detail .politician-detail--committees{margin-top:var(--s6);padding:var(--s5);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.politician-detail .politician-detail--committees h3{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--s3);color:var(--text-primary)}.politician-detail .politician-detail--committees .committees-list{display:flex;flex-wrap:wrap;gap:var(--s2)}.politician-detail .politician-detail--committees .committee-item{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-secondary)}.politician-detail .politician-detail--committees .committee-item .committee-rank{font-size:var(--fs-xs);color:var(--text-muted);padding:2px var(--s1);background:var(--bg-tertiary);border-radius:var(--radius-xs)}.politician-detail .politician-detail--tenure{margin-top:var(--s4);padding:var(--s5);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.politician-detail .politician-detail--tenure h3{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--s3);color:var(--text-primary)}.politician-detail .politician-detail--tenure .tenure-list{display:flex;flex-direction:column;gap:var(--s2)}.politician-detail .politician-detail--tenure .tenure-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--fs-sm)}.politician-detail .politician-detail--tenure .tenure-item .tenure-chamber{font-weight:500;color:var(--text-primary);min-width:60px}.politician-detail .politician-detail--tenure .tenure-item .tenure-dates{color:var(--text-secondary)}.politician-detail .politician-detail--tenure .tenure-item .tenure-congress{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto}.politician-detail .politician-detail--charts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5);margin-top:var(--s6)}@media(max-width:900px){.politician-detail .politician-detail--charts{grid-template-columns:1fr}}.politician-detail .politician-detail--trades{margin-top:var(--s6)}.politician-detail .politician-detail--trades .trades-header{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s4)}.politician-detail .politician-detail--trades .trades-header h2{font-size:var(--fs-lg);font-weight:600;margin:0}.politician-detail .politician-detail--trades .trades-header .filter-badge{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);background:var(--color-accent);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:500}.politician-detail .politician-detail--trades .trades-header .filter-badge .filter-count{opacity:.8}.politician-detail .politician-detail--trades .trades-header .filter-badge button{display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:var(--s1);border-radius:50%;background:#fff3;color:#fff;font-size:14px;line-height:1;transition:background var(--transition-fast)}.politician-detail .politician-detail--trades .trades-header .filter-badge button:hover{background:#ffffff59}.politician-detail .politician-detail--trades .no-trades{text-align:center;padding:var(--s8);color:var(--text-secondary);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.politician-tabs{display:flex;gap:var(--s1);margin-bottom:var(--s5);border-bottom:1px solid var(--border-color)}.politician-tabs--tab{padding:var(--s3) var(--s5);font-size:var(--fs-sm);font-weight:500;color:var(--text-secondary);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--transition-fast),border-color var(--transition-fast)}.politician-tabs--tab:hover{color:var(--text-primary)}.politician-tabs--tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.chart-card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--s4);position:relative}.chart-card .chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s3);gap:var(--s3)}.chart-card .chart-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:0}.chart-card .date-range-selector{display:flex;gap:2px;background:var(--bg-secondary);border-radius:var(--radius-md);padding:2px}.chart-card .range-btn{padding:var(--s1) var(--s2);font-size:var(--fs-xs);font-weight:500;color:var(--text-muted);background:transparent;border-radius:var(--radius-sm);transition:all var(--transition-fast);min-width:36px}.chart-card .range-btn:hover{color:var(--text-primary)}.chart-card .range-btn.active{background:var(--color-accent);color:#fff}.chart-card .chart-container{height:220px;width:100%;position:relative}.axis text{fill:var(--text-muted);font-size:11px}.axis line,.axis path{stroke:var(--border-color)}.grid line{stroke:var(--border-color)}.grid path{stroke:none}.chart-tooltip{position:absolute;pointer-events:none;z-index:100;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--s3);box-shadow:0 4px 12px #0006;min-width:140px;transform:translateY(-50%)}.chart-tooltip .tooltip-content{display:flex;flex-direction:column;gap:var(--s1)}.chart-tooltip .tooltip-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--s1)}.chart-tooltip .tooltip-subtitle{font-size:var(--fs-xs);color:var(--text-muted);margin-top:-4px;margin-bottom:var(--s1)}.chart-tooltip .tooltip-row{font-size:var(--fs-xs);color:var(--text-secondary);display:flex;align-items:center;gap:var(--s2)}.chart-tooltip .tooltip-row.buy{color:var(--color-buy)}.chart-tooltip .tooltip-row.buy .dot{width:8px;height:8px;border-radius:50%;background:var(--color-buy)}.chart-tooltip .tooltip-row.sell{color:var(--color-sell)}.chart-tooltip .tooltip-row.sell .dot{width:8px;height:8px;border-radius:50%;background:var(--color-sell)}.chart-tooltip .tooltip-row.total{margin-top:var(--s1);padding-top:var(--s1);border-top:1px solid var(--border-color);color:var(--text-primary)}.chart-tooltip .tooltip-row strong{font-weight:600;color:var(--text-primary)}.filter-badge{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);background:var(--color-accent);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:500}.filter-badge button{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#fff3;color:#fff;font-size:12px;line-height:1;transition:background var(--transition-fast)}.filter-badge button:hover{background:#ffffff4d}.politician-bio{max-width:1400px;margin:0 auto;padding:var(--s6)}.politician-bio .not-found,.politician-bio .no-bio{text-align:center;padding:var(--s12);color:var(--text-secondary);font-size:var(--fs-lg);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.politician-bio .politician-bio--header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--s6);padding:var(--s6);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.politician-bio .politician-bio--profile{display:flex;align-items:center;gap:var(--s5)}.politician-bio .politician-bio--photo{width:120px;height:120px;border-radius:var(--radius-full);object-fit:cover;border:3px solid var(--border-color)}.politician-bio .politician-bio--info h1{font-size:var(--fs-2xl);font-weight:600;margin-bottom:var(--s2)}.politician-bio .politician-bio--meta{display:flex;align-items:center;gap:var(--s3);color:var(--text-secondary);font-size:var(--fs-sm)}.politician-bio .politician-bio--meta .badge{padding:var(--s1) var(--s3);border-radius:var(--radius-sm);text-transform:uppercase;font-weight:600;font-size:var(--fs-xs)}.politician-bio .politician-bio--meta .badge-democrat{background:color-mix(in srgb,var(--color-democrat) 20%,transparent);color:var(--color-democrat)}.politician-bio .politician-bio--meta .badge-republican{background:color-mix(in srgb,var(--color-republican) 20%,transparent);color:var(--color-republican)}.politician-bio .politician-bio--meta .chamber,.politician-bio .politician-bio--meta .state{padding:var(--s1) var(--s2);background:var(--bg-secondary);border-radius:var(--radius-sm)}.politician-bio .politician-bio--content{display:flex;flex-direction:column;gap:var(--s5)}.politician-bio .bio-section{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--s5)}.politician-bio .bio-section h2{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--s4);color:var(--text-primary)}.politician-bio .bio-section h3{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--s3);color:var(--text-primary)}.politician-bio .bio-section--compact{padding:var(--s4)}.politician-bio .bio-text{font-size:var(--fs-md);line-height:1.7;color:var(--text-secondary)}.politician-bio .bio-details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5)}@media(max-width:768px){.politician-bio .bio-details-grid{grid-template-columns:1fr}}.politician-bio .info-list{display:flex;flex-direction:column;gap:var(--s3)}.politician-bio .info-item{display:flex;flex-direction:column;gap:var(--s1)}.politician-bio .info-item dt{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.politician-bio .info-item dd{font-size:var(--fs-sm);color:var(--text-primary)}.politician-bio .education-list{display:flex;flex-direction:column;gap:var(--s2);list-style:none;padding:0;margin:0}.politician-bio .education-list li{font-size:var(--fs-sm);color:var(--text-secondary);padding-left:var(--s4);position:relative}.politician-bio .education-list li:before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.politician-bio .sports-teams{display:flex;flex-wrap:wrap;gap:var(--s4)}.politician-bio .sports-team{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);transition:transform var(--transition-fast),border-color var(--transition-fast)}.politician-bio .sports-team:hover{transform:translateY(-2px);border-color:var(--border-light)}.politician-bio .sports-team--logo{width:48px;height:48px;object-fit:contain}.politician-bio .sports-team--info{display:flex;flex-direction:column;gap:2px}.politician-bio .sports-team--name{font-size:var(--fs-sm);font-weight:500;color:var(--text-primary)}.politician-bio .sports-team--league{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.issuers-page{max-width:1400px;margin:0 auto;padding:var(--s6)}.issuers-page .issuers-page--header{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s5)}.issuers-page .issuers-page--header h1{font-size:var(--fs-xl);font-weight:600;text-transform:uppercase}.issuers-page .issuers-page--header .time-range{padding:var(--s1) var(--s3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--text-secondary)}.issuers-page .issuers-page--search{display:flex;gap:var(--s3);margin-bottom:var(--s4)}.issuers-page .search-wrapper{position:relative;flex:1;max-width:400px}.issuers-page .search-wrapper .search-icon{position:absolute;left:var(--s3);top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text-muted);pointer-events:none}.issuers-page .search-wrapper input{width:100%;padding:var(--s3) var(--s4) var(--s3) calc(var(--s3) + 26px);background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--fs-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.issuers-page .search-wrapper input::placeholder{color:var(--text-muted)}.issuers-page .search-wrapper input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 20%,transparent)}.issuers-page .filter-toggle{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.issuers-page .filter-toggle svg{width:16px;height:16px}.issuers-page .filter-toggle:hover,.issuers-page .filter-toggle.active{background:var(--bg-tertiary);border-color:var(--color-accent);color:var(--text-primary)}.issuers-page .filter-toggle .filter-count{padding:2px var(--s2);background:var(--color-accent);border-radius:var(--radius-sm);font-size:10px;color:#fff;font-weight:600}.issuers-page .issuers-page--filters{margin-bottom:var(--s5);padding:var(--s4);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border)}.issuers-page .filter-row{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:flex-end}.issuers-page .filter-group{display:flex;flex-direction:column;gap:var(--s1);min-width:140px}.issuers-page .filter-group label{font-size:var(--fs-xs);font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em}.issuers-page .filter-group input,.issuers-page .filter-group select{padding:var(--s2) var(--s3);background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--fs-sm);transition:border-color var(--transition-fast)}:is(.issuers-page .filter-group input,.issuers-page .filter-group select):focus{outline:none;border-color:var(--color-accent)}.issuers-page .filter-group select{cursor:pointer}.issuers-page .clear-filters{padding:var(--s2) var(--s4);background:transparent;border:1px solid var(--color-sell);border-radius:var(--radius-md);color:var(--color-sell);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.issuers-page .clear-filters:hover{background:var(--color-sell);color:#fff}.issuers-page .issuers-page--results-header{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s5);padding-bottom:var(--s3);border-bottom:1px solid var(--glass-border)}.issuers-page .results-count{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:500}.issuers-page .issuers-page--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s5);margin-top:var(--s5)}.issuers-page .issuers-page--grid a{text-decoration:none}.issuers-page .pagination{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-top:var(--s5);padding:var(--s4)}.issuers-page .pagination .pagination--btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast)}.issuers-page .pagination .pagination--btn svg{width:18px;height:18px}.issuers-page .pagination .pagination--btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.issuers-page .pagination .pagination--btn:disabled{opacity:.4;cursor:not-allowed}.issuers-page .pagination .pagination--info{font-size:var(--fs-sm);color:var(--text-secondary)}.issuers-page .pagination .pagination--info strong{color:var(--text-primary)}.issuer-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:var(--s3) var(--s4);padding:var(--s5);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base);box-shadow:0 0 40px #6366f114}.issuer-card:hover{transform:translateY(-2px);border-color:var(--glass-border-hover);box-shadow:0 8px 32px #0006,0 0 50px #6366f126}.issuer-card .issuer-card--badge{grid-row:1 / 2;width:56px;height:56px;border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(135deg,var(--color-accent),color-mix(in srgb,var(--color-accent) 70%,#000));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #6366f14d}.issuer-card .issuer-card--badge .badge-letter{font-size:var(--fs-xl);font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.issuer-card .issuer-card--badge .badge-logo{width:36px;height:36px;mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.issuer-card .issuer-card--badge.has-logo{background:#fff!important;box-shadow:0 2px 8px #0000001a}.issuer-card.sector--information-technology .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.issuer-card.sector--health-care .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#10b981,#059669)}.issuer-card.sector--financials .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#f59e0b,#d97706)}.issuer-card.sector--consumer-discretionary .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#ec4899,#db2777)}.issuer-card.sector--industrials .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#6b7280,#4b5563)}.issuer-card.sector--communication-services .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.issuer-card.sector--energy .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#ef4444,#dc2626)}.issuer-card.sector--materials .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#78716c,#57534e)}.issuer-card.sector--utilities .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#14b8a6,#0d9488)}.issuer-card.sector--real-estate .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#a855f7,#9333ea)}.issuer-card.sector--consumer-staples .issuer-card--badge:not(.has-logo){background:linear-gradient(135deg,#22c55e,#16a34a)}.issuer-card .issuer-card--info{display:flex;flex-direction:column;justify-content:center;gap:var(--s1);min-width:0}.issuer-card .issuer-card--name{font-size:var(--fs-md);font-weight:500;color:var(--text-primary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.issuer-card .issuer-card--meta{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-xs);flex-wrap:wrap}.issuer-card .issuer-card--meta .ticker{color:var(--text-secondary);font-family:var(--font-mono);font-weight:500}.issuer-card .issuer-card--meta .sector-badge{display:inline-flex;padding:2px var(--s2);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:10px;color:var(--text-muted);text-transform:capitalize}.issuer-card .issuer-card--stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--glass-border)}.issuer-card .stat{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.issuer-card .stat .stat-value{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);line-height:1.2}.issuer-card .stat .stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.issuer-detail{max-width:1400px;margin:0 auto;padding:var(--s6)}.issuer-detail .back-link{display:inline-flex;align-items:center;gap:var(--s2);margin-bottom:var(--s4);color:var(--text-secondary);font-size:var(--fs-sm);text-decoration:none;transition:color var(--transition-fast)}.issuer-detail .back-link svg{width:18px;height:18px}.issuer-detail .back-link:hover{color:var(--color-accent)}.issuer-detail .not-found{text-align:center;padding:var(--s12);color:var(--text-secondary);font-size:var(--fs-lg)}.issuer-detail .issuer-detail--header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--s6);padding:var(--s6);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.issuer-detail .issuer-detail--profile{display:flex;align-items:center;gap:var(--s5)}.issuer-detail .issuer-detail--badge{width:80px;height:80px;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--color-accent),color-mix(in srgb,var(--color-accent) 70%,#000));display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #6366f14d}.issuer-detail .issuer-detail--badge .badge-letter{font-size:var(--fs-2xl);font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.issuer-detail .issuer-detail--badge .badge-logo{width:56px;height:56px;mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.issuer-detail .issuer-detail--badge.has-logo{background:#fff;box-shadow:0 2px 12px #0000001a}.issuer-detail .issuer-detail--info h1{font-size:var(--fs-2xl);font-weight:600;margin-bottom:var(--s2)}.issuer-detail .issuer-detail--meta{display:flex;align-items:center;gap:var(--s3);font-size:var(--fs-sm)}.issuer-detail .issuer-detail--meta .ticker{color:var(--text-secondary);font-family:var(--font-mono);font-weight:600}.issuer-detail .issuer-detail--meta .sector,.issuer-detail .issuer-detail--meta .country{padding:var(--s1) var(--s2);background:var(--bg-secondary);border-radius:var(--radius-sm);color:var(--text-muted)}.issuer-detail .issuer-detail--performance{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s1)}.issuer-detail .issuer-detail--performance .label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase}.issuer-detail .issuer-detail--performance .value{font-size:var(--fs-lg);font-weight:600}.issuer-detail .issuer-detail--performance .value.positive{color:var(--color-buy)}.issuer-detail .issuer-detail--performance .value.negative{color:var(--color-sell)}.issuer-detail .issuer-detail--charts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s5);margin-top:var(--s6)}@media(max-width:900px){.issuer-detail .issuer-detail--charts{grid-template-columns:1fr}}.issuer-detail .issuer-detail--politicians{margin-top:var(--s6)}.issuer-detail .issuer-detail--politicians h2{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--s4)}.issuer-detail .issuer-detail--politicians .politicians-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s4)}.issuer-detail .issuer-detail--politicians .politicians-grid a{text-decoration:none}.issuer-detail .issuer-detail--trades{margin-top:var(--s6)}.issuer-detail .issuer-detail--trades .trades-header{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s4)}.issuer-detail .issuer-detail--trades .trades-header h2{font-size:var(--fs-lg);font-weight:600;margin:0}.issuer-detail .issuer-detail--trades .trades-header .filter-badge{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);background:var(--color-accent);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:500}.issuer-detail .issuer-detail--trades .trades-header .filter-badge .filter-count{opacity:.8}.issuer-detail .issuer-detail--trades .trades-header .filter-badge button{display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:var(--s1);border-radius:50%;background:#fff3;color:#fff;font-size:14px;line-height:1;transition:background var(--transition-fast)}.issuer-detail .issuer-detail--trades .trades-header .filter-badge button:hover{background:#ffffff59}.issuer-detail .issuer-detail--trades .no-trades{text-align:center;padding:var(--s8);color:var(--text-secondary);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.committees-page{max-width:1400px;margin:0 auto;padding:var(--s6)}.committees-page .committees-page--header{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s5)}.committees-page .committees-page--header .star-icon{width:14px;height:14px;color:var(--color-accent)}.committees-page .committees-page--header h1{font-size:var(--fs-xl);font-weight:600;text-transform:uppercase}.committees-page .committees-page--header .time-range{padding:var(--s1) var(--s3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--text-secondary)}.committees-page .committees-page--search{display:flex;gap:var(--s3);margin-bottom:var(--s4)}.committees-page .search-wrapper{position:relative;flex:1;max-width:400px}.committees-page .search-wrapper .search-icon{position:absolute;left:var(--s3);top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--text-muted);pointer-events:none}.committees-page .search-wrapper input{width:100%;padding:var(--s3) var(--s4) var(--s3) calc(var(--s3) + 26px);background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--fs-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.committees-page .search-wrapper input::placeholder{color:var(--text-muted)}.committees-page .search-wrapper input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-accent) 20%,transparent)}.committees-page .loading{text-align:center;padding:var(--s8);color:var(--text-muted);font-size:var(--fs-md)}.committees-page .committees-section{margin-top:var(--s6)}.committees-page .section-header{font-size:var(--fs-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--s4);padding-bottom:var(--s3);border-bottom:1px solid var(--glass-border)}.committees-page .committees-page--grid{display:grid;grid-template-columns:1fr;gap:var(--s3)}@media(min-width:768px){.committees-page .committees-page--grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1200px){.committees-page .committees-page--grid{grid-template-columns:repeat(3,1fr)}}.committees-page .committees-page--grid a{text-decoration:none}.committees-page .no-results{text-align:center;padding:var(--s6);color:var(--text-muted);font-size:var(--fs-sm)}.committee-card{display:flex;align-items:center;gap:var(--s4);padding:var(--s4);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.committee-card:hover{transform:translateY(-1px);border-color:var(--glass-border-hover);box-shadow:0 4px 16px #0000004d}.committee-card .committee-card--logo{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:50%}.committee-card .committee-card--logo img{width:28px;height:28px;object-fit:contain;filter:brightness(0) invert(1);opacity:.7}.committee-card .committee-card--name{flex:1;font-size:var(--fs-sm);font-weight:500;color:var(--text-primary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.committee-card .committee-card--stats{display:flex;gap:var(--s4);flex-shrink:0}.committee-card .stat{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;min-width:60px}.committee-card .stat .stat-value{font-size:var(--fs-md);font-weight:600;color:var(--text-primary);line-height:1.2}.committee-card .stat .stat-label{font-size:10px;color:var(--text-muted)}.committee-detail{max-width:1400px;margin:0 auto;padding:var(--s6)}.committee-detail .back-link{display:inline-flex;align-items:center;gap:var(--s2);margin-bottom:var(--s4);color:var(--text-secondary);font-size:var(--fs-sm);text-decoration:none;transition:color var(--transition-fast)}.committee-detail .back-link svg{width:18px;height:18px}.committee-detail .back-link:hover{color:var(--color-accent)}.committee-detail .not-found{text-align:center;padding:var(--s12);color:var(--text-secondary);font-size:var(--fs-lg)}.committee-detail .committee-detail--header{position:relative;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--s6);padding:var(--s8);background:var(--bg-card);background-size:cover;background-position:center;border-radius:var(--radius-lg);border:1px solid var(--border-color);min-height:160px;overflow:hidden}.committee-detail .committee-detail--profile{display:flex;align-items:center;gap:var(--s5)}.committee-detail .committee-detail--logo{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:50%}.committee-detail .committee-detail--logo img{width:48px;height:48px;object-fit:contain;filter:brightness(0) invert(1);opacity:.8}.committee-detail .committee-detail--info h1{font-size:var(--fs-2xl);font-weight:600;margin-bottom:var(--s2)}.committee-detail .committee-detail--meta{display:flex;align-items:center;gap:var(--s3);font-size:var(--fs-sm)}.committee-detail .committee-detail--meta .chamber-badge{padding:var(--s1) var(--s3);border-radius:var(--radius-md);font-weight:500;text-transform:uppercase;font-size:var(--fs-xs);letter-spacing:.02em}.committee-detail .committee-detail--meta .chamber-badge.senate{background:#6366f126;color:#818cf8}.committee-detail .committee-detail--meta .chamber-badge.house{background:#22c55e26;color:#4ade80}.committee-detail .committee-detail--meta .committee-url{display:inline-flex;align-items:center;gap:var(--s1);color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast)}.committee-detail .committee-detail--meta .committee-url svg{width:14px;height:14px}.committee-detail .committee-detail--meta .committee-url:hover{color:var(--color-accent)}.committee-detail .committee-detail--members{margin-top:var(--s6)}.committee-detail .committee-detail--members h2{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--s4)}.committee-detail .committee-detail--members .members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s4)}.committee-detail .committee-detail--members .members-grid a{text-decoration:none}.committee-detail .committee-detail--trades{margin-top:var(--s6)}.committee-detail .committee-detail--trades h2{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--s4)}.committee-detail .committee-detail--trades .no-trades{text-align:center;padding:var(--s8);color:var(--text-secondary);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.sports-team-page{max-width:1000px;margin:0 auto;padding:var(--s6)}.sports-team-page .not-found{text-align:center;padding:var(--s12);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border)}.sports-team-page .not-found h2{font-size:var(--fs-xl);margin-bottom:var(--s3)}.sports-team-page .not-found p{color:var(--text-secondary);margin-bottom:var(--s5)}.sports-team-page .not-found a{color:var(--color-accent);font-weight:500}.sports-team-page .not-found a:hover{text-decoration:underline}.sports-team-page .sports-team-page--header{display:flex;align-items:center;gap:var(--s6);padding:var(--s6);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);margin-bottom:var(--s5)}.sports-team-page .sports-team-page--logo{width:100px;height:100px;object-fit:contain}.sports-team-page .sports-team-page--info{display:flex;flex-direction:column;gap:var(--s2)}.sports-team-page .sports-team-page--info .league-badge{display:inline-block;width:fit-content;padding:var(--s1) var(--s3);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.sports-team-page .sports-team-page--info h1{font-size:var(--fs-2xl);font-weight:600}.sports-team-page .sports-team-page--info .supporter-count{font-size:var(--fs-md);color:var(--text-secondary)}.sports-team-page .sports-team-page--stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-bottom:var(--s5)}.sports-team-page .stats-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);padding:var(--s5)}.sports-team-page .stats-card h3{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--s4)}.sports-team-page .stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s4)}.sports-team-page .stat-item{display:flex;flex-direction:column;gap:2px}.sports-team-page .stat-item .stat-value{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary)}.sports-team-page .stat-item .stat-label{font-size:var(--fs-xs);color:var(--text-muted)}.sports-team-page .stats-loading{font-size:var(--fs-sm);color:var(--text-muted);padding:var(--s3);text-align:center}.sports-team-page .party-bars{display:flex;flex-direction:column;gap:var(--s4)}.sports-team-page .party-bar{display:flex;flex-direction:column;gap:var(--s2)}.sports-team-page .party-info{display:flex;justify-content:space-between;align-items:center}.sports-team-page .party-info .party-label{font-size:var(--fs-sm);font-weight:500}.sports-team-page .party-info .party-label.democrat{color:var(--color-democrat)}.sports-team-page .party-info .party-label.republican{color:var(--color-republican)}.sports-team-page .party-info .party-count{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary)}.sports-team-page .bar-track{height:8px;background:var(--bg-secondary);border-radius:var(--radius-full);overflow:hidden}.sports-team-page .bar-fill{height:100%;border-radius:var(--radius-full);transition:width .3s ease}.sports-team-page .bar-fill.democrat{background:var(--color-democrat)}.sports-team-page .bar-fill.republican{background:var(--color-republican)}.sports-team-page .stats-card.trading-stats{box-shadow:0 0 40px #6366f11a}.sports-team-page .stats-card.team-performance{box-shadow:0 0 40px #22c55e14}.sports-team-page .sports-team-page--supporters{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-xl);border:1px solid var(--glass-border);padding:var(--s5);margin-bottom:var(--s5)}.sports-team-page .sports-team-page--supporters h2{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--s5);color:var(--text-primary)}.sports-team-page .supporters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s4)}.sports-team-page .supporter-card{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s4);background:#ffffff08;border-radius:var(--radius-lg);border:1px solid var(--glass-border);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.sports-team-page .supporter-card:hover{transform:translateY(-2px);border-color:var(--glass-border-hover);box-shadow:0 8px 24px #0000004d}.sports-team-page .supporter-card--photo{width:64px;height:64px;border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--glass-border)}.sports-team-page .supporter-card--info{display:flex;flex-direction:column;gap:4px}.sports-team-page .supporter-card--info .name{font-size:var(--fs-base);font-weight:600;color:var(--text-primary)}.sports-team-page .supporter-card--info .meta{font-size:var(--fs-xs);color:var(--text-muted)}.sports-team-page .supporter-card--info .meta.democrat{color:var(--color-democrat)}.sports-team-page .supporter-card--info .meta.republican{color:var(--color-republican)}.sports-team-page .supporter-card--stats{display:flex;gap:var(--s4);padding-top:var(--s3);border-top:1px solid var(--glass-border);margin-top:auto}.sports-team-page .supporter-card--stats .stat{display:flex;flex-direction:column;gap:2px}.sports-team-page .supporter-card--stats .stat .value{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary)}.sports-team-page .supporter-card--stats .stat .label{font-size:var(--fs-xs);color:var(--text-muted)}.sports-team-page .back-link{display:inline-block;color:var(--text-secondary);font-size:var(--fs-sm);transition:color var(--transition-fast)}.sports-team-page .back-link:hover{color:var(--text-primary)}@media(max-width:768px){.sports-team-page .sports-team-page--stats{grid-template-columns:1fr}}
