*{box-sizing:border-box}body{margin:0}.app-root{color:#f1f0e8;background:#0b0e1c;flex-direction:column;align-items:center;gap:.9rem;min-height:100vh;padding:1rem .8rem 3rem;font-family:system-ui,sans-serif;display:flex}.topbar{justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:44rem;display:flex}.topbar h1{color:#d4a942;margin:0;font-size:1.25rem}.langswitch{border:1px solid #d4a94240;border-radius:999px;display:inline-flex;overflow:hidden}.langswitch button{color:#9aa0b4;cursor:pointer;background:0 0;border:none;padding:.3rem .6rem;font-family:inherit;font-size:.7rem;font-weight:700}.langswitch button.active{color:#14182b;background:#d4a942}.subtitle{color:#9aa0b4;text-align:center;max-width:30rem;margin:0;font-size:.9rem}.upload-btn{color:#14182b;cursor:pointer;background:#d4a942;border-radius:.5rem;padding:.55rem 1.2rem;font-size:.9rem;font-weight:700}.upload-btn:has(input:disabled){opacity:.6;cursor:default}.last-updated{color:#6b7280;margin:-.4rem 0 0;font-size:.72rem}.error{color:#e0554f;font-size:.9rem}.portfolio{flex-direction:column;gap:.9rem;width:100%;max-width:44rem;display:flex}.hero{background:linear-gradient(160deg,#16203c,#131829);border:1px solid #d4a94233;border-radius:.9rem;flex-direction:column;align-items:center;gap:.2rem;padding:1.1rem 1.2rem;display:flex}.hero-label{color:#9aa0b4;font-size:.75rem}.hero-value{font-size:2rem;line-height:1.1}.hero-stats{border-top:1px solid #d4a94226;flex-wrap:wrap;justify-content:center;gap:1.5rem;width:100%;margin-top:.7rem;padding-top:.7rem;display:flex}.hero-stats>div{flex-direction:column;align-items:center;gap:.1rem;display:flex}.hero-stats span{color:#6b7280;font-size:.7rem}.hero-stats strong{font-size:.95rem}.ticker-bar{background:#141a30;border:1px solid #d4a9422e;border-radius:.5rem;align-items:center;gap:.7rem;width:100%;padding:.5rem .8rem;display:flex;overflow:hidden}.ticker-dot{background:#3f9a5c;border-radius:50%;flex-shrink:0;width:.45rem;height:.45rem;box-shadow:0 0 .4rem #3f9a5c}.ticker-track{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 4% 96%,#0000);mask-image:linear-gradient(90deg,#0000,#000 4% 96%,#0000)}.ticker-strip{white-space:nowrap;gap:1.6rem;animation:25s linear infinite ticker-scroll;display:inline-flex}.ticker-item{align-items:baseline;gap:.4rem;font-family:ui-monospace,monospace;font-size:.78rem;display:inline-flex}.ticker-symbol{color:#9aa0b4}.ticker-price{color:#f1f0e8;font-weight:700}.ticker-up{color:#3f9a5c}.ticker-down{color:#e0554f}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.insights{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.insights li{background:#141a30;border-inline-start:.22rem solid #d4a942;border-radius:.4rem;padding:.6rem .85rem;font-size:.85rem;line-height:1.45}.cards{flex-direction:column;gap:.5rem;display:flex}.holding-card{background:#141a30;border:1px solid #d4a94226;border-radius:.7rem;overflow:hidden}.holding-card.open{border-color:#d4a94273}.card-head{width:100%;color:inherit;cursor:pointer;text-align:start;background:0 0;border:none;align-items:center;gap:.7rem;padding:.7rem .85rem;font-family:inherit;display:flex}.card-head:disabled{cursor:default;opacity:.75}.card-avatar{color:#d4a942;background:#d4a94226;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;font-size:.72rem;font-weight:700;display:flex}.card-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.card-name{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.card-sub{color:#6b7280;flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.72rem;display:flex}.card-sentiment{font-size:.8rem}.card-numbers{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.15rem;display:flex}.card-price{font-family:ui-monospace,monospace;font-size:.92rem;font-weight:700}.card-pl{font-size:.78rem}.card-pl small{opacity:.85}.card-body{border-top:1px solid #d4a9421f;flex-direction:column;gap:.8rem;padding:.2rem .85rem .9rem;display:flex}.range-block{flex-direction:column;gap:.35rem;margin-top:.7rem;display:flex}.range-labels{color:#6b7280;justify-content:space-between;font-size:.68rem;display:flex}.range-track{background:linear-gradient(90deg,#3f9a5c 0%,#d4a942 50%,#e0554f 100%);border-radius:999px;height:.35rem;position:relative}.range-marker{background:#f1f0e8;border:2px solid #0b0e1c;border-radius:50%;width:.75rem;height:.75rem;position:absolute;top:50%;transform:translate(-50%,-50%)}.range-hint{color:#c9cede;margin:0;font-size:.78rem;line-height:1.45}.signal-panel{flex-wrap:wrap;gap:1rem;display:flex}.signal-item{flex-direction:column;gap:.1rem;display:flex}.signal-item span{color:#6b7280;font-size:.68rem}.signal-item strong{font-family:ui-monospace,monospace;font-size:.88rem}.disclaimer{color:#6b7280;margin:0;font-size:.7rem;line-height:1.4}.chart-container{width:100%}.chart-range-picker{gap:.35rem;margin-bottom:.5rem;display:flex}.chart-range-picker button{color:#9aa0b4;cursor:pointer;background:0 0;border:1px solid #d4a94240;border-radius:999px;padding:.2rem .55rem;font-family:inherit;font-size:.7rem}.chart-range-picker button.active{color:#14182b;background:#d4a942;border-color:#d4a942}.card-news{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.card-news a{color:#9aa0b4;font-size:.76rem;text-decoration:underline}.trend-badge{font-weight:600}.trend-bullish{color:#3f9a5c}.trend-bearish{color:#e0554f}.trend-neutral{color:#9aa0b4}.pl-pos{color:#3f9a5c}.pl-neg{color:#e0554f}.data-freshness{color:#6b7280;text-align:center;max-width:34rem;margin:-.4rem 0 0;font-size:.72rem;line-height:1.5}.data-freshness.stale{color:#d4a942}.freshness-note{color:#e0554f}.market-open{color:#3f9a5c;font-weight:600}.delay-note{color:#6b7280}.movers-section{width:100%;max-width:44rem;margin-top:.5rem}.section-title{color:#d4a942;margin:0 0 .6rem;font-size:1rem}.movers-columns{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.movers-col{flex-direction:column;gap:.4rem;display:flex}.movers-col-title{margin:0 0 .2rem;font-size:.8rem}.movers-col-title.up{color:#3f9a5c}.movers-col-title.down{color:#e0554f}@media (width<=520px){.movers-columns{grid-template-columns:1fr}}.watchlist-section,.portfolio-section{width:100%;max-width:44rem;margin-top:1.2rem}.section-hint{color:#6b7280;margin:0 0 .7rem;font-size:.8rem;line-height:1.45}.search-wrap{margin-bottom:.7rem;position:relative}.search-input{color:#f1f0e8;background:#141a30;border:1px solid #d4a94240;border-radius:.5rem;width:100%;padding:.6rem .9rem;font-family:inherit;font-size:.9rem}.search-input:focus{border-color:#d4a942;outline:none}.search-results{z-index:20;top:100%;background:#141a30;border:1px solid #d4a9424d;border-radius:.5rem;max-height:16rem;margin-top:.25rem;padding:.3rem;list-style:none;position:absolute;inset-inline:0;overflow-y:auto}.search-results button{width:100%;color:inherit;cursor:pointer;text-align:start;background:0 0;border:none;border-radius:.35rem;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .6rem;font-family:inherit;font-size:.85rem;display:flex}.search-results button:hover{background:#d4a9421f}.search-results small{color:#6b7280;font-family:ui-monospace,monospace;font-size:.7rem}.watch-row{position:relative}.watch-remove{top:.5rem;z-index:2;color:#6b7280;cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:.85rem;position:absolute;inset-inline-end:.5rem}.watch-remove:hover{color:#e0554f}.holding-card.skeleton{background:linear-gradient(90deg,#141a30 25%,#1b2240 37%,#141a30 63%) 0 0/400% 100%;height:3.6rem;animation:1.4s infinite skeleton-shine}@keyframes skeleton-shine{0%{background-position:100% 0}to{background-position:-100% 0}}.search-spinner{top:50%;border:2px solid #d4a94240;border-top-color:#d4a942;border-radius:50%;width:.9rem;height:.9rem;animation:.7s linear infinite spin;position:absolute;inset-inline-end:.8rem;transform:translateY(-50%)}@keyframes spin{to{transform:translateY(-50%)rotate(360deg)}}.glossary-section{width:100%;max-width:44rem;margin-top:1.2rem}.glossary-toggle{text-align:start;color:#d4a942;cursor:pointer;background:#141a30;border:1px solid #d4a94233;border-radius:.5rem;width:100%;padding:.65rem .9rem;font-family:inherit;font-size:.88rem;font-weight:700}.glossary-body{margin-top:.6rem}.glossary-list{flex-direction:column;gap:.7rem;margin:0;display:flex}.glossary-item{background:#141a30;border-inline-start:.2rem solid #d4a94259;border-radius:.4rem;padding:.55rem .8rem}.glossary-item dt{margin-bottom:.2rem;font-size:.85rem;font-weight:700}.glossary-item dd{color:#c9cede;margin:0;font-size:.8rem;line-height:1.45}.layout-grid{flex-direction:column;align-items:center;gap:1.5rem;width:100%;display:flex}.center-col{flex-direction:column;order:1;gap:.9rem;width:100%;max-width:44rem;display:flex}.side-panel{width:100%;max-width:44rem}.side-news{order:2}.side-edu{order:3}@media (width>=1080px){.layout-grid{grid-template-columns:17rem minmax(0,44rem) 17rem;align-items:start;gap:1.5rem;max-width:84rem;display:grid}.center-col,.side-panel{order:initial;max-width:none}.side-panel{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow-y:auto}}.side-news-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.side-news-list li{background:#141a30;border:1px solid #d4a94226;border-radius:.5rem;padding:.6rem .7rem}.side-news-list a{color:#d4d8e6;font-size:.8rem;line-height:1.4;text-decoration:none}.side-news-list a:hover{text-decoration:underline}.side-news-source{color:#6b7280;margin-top:.3rem;font-size:.68rem;display:block}.edu-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.edu-list li{background:#141a30;border-inline-start:.2rem solid #d4a94259;border-radius:.4rem;padding:.6rem .8rem}.edu-list strong{margin-bottom:.25rem;font-size:.85rem;display:block}.edu-list p{color:#c9cede;margin:0;font-size:.78rem;line-height:1.5}.risk-panel{margin-top:.3rem}.risk-title{text-transform:uppercase;letter-spacing:.05em;color:#9aa0b4;margin:0 0 .5rem;font-size:.72rem}.risk-grid{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.7rem;display:grid}.risk-item{background:#d4a9420d;border:1px solid #d4a94226;border-radius:.5rem;padding:.55rem .7rem}.risk-item span{color:#6b7280;font-size:.7rem;display:block}.risk-item strong{margin:.1rem 0;font-family:ui-monospace,monospace;font-size:1.05rem;display:block}.risk-item p{color:#9aa0b4;margin:0;font-size:.7rem;line-height:1.4}.profile-block{margin-top:.7rem}.profile-summary{color:#c7cad6;margin:0 0 .6rem;font-size:.78rem;line-height:1.5}.profile-facts{color:#9aa0b4;flex-direction:column;gap:.3rem;font-size:.75rem;display:flex}.profile-facts strong{color:#d4a942;font-weight:500}.profile-facts a{color:#d4a942}.risk-badges{gap:.35rem;display:inline-flex}.risk-badge{color:#9aa0b4;background:#d4a94214;border:1px solid #d4a94226;border-radius:.3rem;padding:.05rem .35rem;font-family:ui-monospace,monospace;font-size:.68rem}.allocation-block{width:100%}.allocation-title{color:#9aa0b4;margin:0 0 .5rem;font-size:.85rem;font-weight:600}.allocation-bar{background:#141a30;border-radius:.4rem;width:100%;height:1.1rem;display:flex;overflow:hidden}.allocation-seg{min-width:2px;height:100%}.allocation-legend{flex-wrap:wrap;gap:.6rem 1rem;margin-top:.6rem;display:flex}.allocation-legend-item{color:#c9cede;align-items:center;gap:.35rem;font-size:.75rem;display:inline-flex}.allocation-dot{border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem}
