body{background:#0f1117;color:#e2e8f0;min-height:100vh;padding-bottom:44px}.navbar{position:sticky;top:0;z-index:1030;background:#1a1d27 !important;border-bottom:1px solid #2d3148}.sticky-table-wrap{position:sticky;top:var(--sticky-table-top, 58px);overflow-x:auto;overflow-y:auto;max-height:var(--sticky-table-h, calc(100vh - 200px))}thead.sticky-thead th{position:sticky;top:0;z-index:90;background:#1e2235}.page-sticky-header,.analysis-sticky-header{position:sticky;top:58px;z-index:200;background:#0f1117;padding-top:.75rem;padding-bottom:.25rem;margin-bottom:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.5)}.card{--bs-card-color: #e2e8f0;background:#1a1d27;border:1px solid #2d3148;border-radius:.5rem;color:#e2e8f0}.card-body,.card-footer{color:#e2e8f0}.card-header{background:#1e2235;border-bottom:1px solid #2d3148}.table{color:#e2e8f0}.table-dark{--bs-table-bg: #1a1d27;--bs-table-hover-bg: rgb(32.12, 35.8261538462, 48.18)}.form-control,.form-select{background:#0f1117;border-color:#2d3148;color:#e2e8f0}.form-control:focus,.form-select:focus{background:#0f1117;color:#e2e8f0;border-color:#6366f1;box-shadow:0 0 0 .2rem rgba(99,102,241,.25)}.form-select option{background:#1a1d27}label.form-label{color:#c7d0f0}.modal-dark{background:#1a1d27;border-color:#2d3148;color:#e2e8f0}.modal-dark .modal-header,.modal-dark .modal-footer{border-color:#2d3148}.flash-container .alert{border-radius:.375rem}.portfolio-ticker{position:fixed;left:0;right:0;bottom:0;z-index:1040;height:34px;border-top:1px solid #2d3148;background:#141720;overflow:hidden}.portfolio-ticker__track{display:flex;align-items:center;height:100%;white-space:nowrap;min-width:max-content;flex-shrink:0;animation:ticker-scroll 70s linear infinite;will-change:transform;padding-right:1rem;text-decoration:none}.portfolio-ticker a,.portfolio-ticker a:hover,.portfolio-ticker a:visited{text-decoration:none}.portfolio-ticker__item{display:inline-flex;align-items:center;gap:.45rem;margin-right:1.5rem;font-size:.78rem;color:#e2e8f0;text-decoration:none}.portfolio-ticker__item:hover{text-decoration:none}.portfolio-ticker__kind{font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:.08rem .35rem;border-radius:999px;border:1px solid rgba(0,0,0,0)}.portfolio-ticker__kind--owned{color:#6366f1;border-color:rgba(99,102,241,.5);background:rgba(99,102,241,.1)}.portfolio-ticker__kind--similar{color:#06b6d4;border-color:rgba(6,182,212,.5);background:rgba(6,182,212,.1)}.portfolio-ticker__name{color:#8b93b0}.portfolio-ticker__price{color:#e2e8f0;font-weight:600}.portfolio-ticker__change{font-weight:700}@keyframes ticker-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}.text-gain{color:#10b981}.text-loss{color:#ef4444}.text-muted{color:#8b93b0 !important}.stat-label{color:#c7d0f0;font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.insight-text{color:#d1d9f0;font-size:.85rem;line-height:1.55}.ticker-badge{font-family:"SFMono-Regular",Consolas,monospace;font-weight:700;letter-spacing:.05em}.btn-primary{background:#6366f1;border-color:#6366f1}.btn-primary:hover,.btn-primary:focus{background:#5254cc;border-color:#5254cc}.btn-analyse{background:linear-gradient(135deg, #6366f1, #8b5cf6);border:none;padding:.75rem 2rem;font-weight:600;font-size:1.05rem}.btn-analyse:hover{background:linear-gradient(135deg, #5254cc, #7c3aed)}.badge-risk-Low{background:#10b981}.badge-risk-Medium{background:#f59e0b}.badge-risk-High{background:#ef4444}.list-group-item-dark{background:#1a1d27;color:#e2e8f0;border-color:#2d3148}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.spin{display:inline-block;animation:spin .7s linear infinite}.summary-card{background:#1e2235;border:1px solid #2d3148;border-radius:.5rem;text-align:center}.summary-card .summary-card__label{color:#8b93b0;font-size:.8rem;margin-bottom:.25rem}.summary-card .summary-card__value{font-size:1.75rem;font-weight:700}.holdings-table{min-width:700px}.holdings-table thead{background:#1e2235}.holdings-table tfoot tr{border-top:2px solid #3d4165;background:#1e2235}.currency-toggle .btn{font-size:.7rem;line-height:1.6;padding:0 .5rem}.holding-form .form-label{margin-bottom:.25rem}.group-list-item{background:#1a1d27;color:#e2e8f0;border-color:#2d3148}.group-list-item:hover{background:rgb(30.08,33.5507692308,45.12)}.create-group-form{background:#141720;border-bottom:1px solid #2d3148}.insight-card{border-left:4px solid #6366f1}.insight-card .insight-card__header{padding-top:.5rem;padding-bottom:.5rem}.insight-card .insight-card__body{padding:.5rem}.insight-card .insight-stats{border-top:1px solid #2d3148;border-bottom:1px solid #2d3148;padding:.25rem 0;margin-bottom:.5rem}.insight-card .insight-stats .insight-stats__divider{border-left:1px solid #2d3148;border-right:1px solid #2d3148}.insight-card .insight-stats .stat-label{font-size:.65rem}.insight-card .card-cur-toggle .btn{font-size:.7rem;padding:0 .4rem;line-height:1.6}.sortable{cursor:pointer;user-select:none;white-space:nowrap}.sortable .sort-icon{opacity:.35;font-size:.75rem;margin-left:3px;transition:opacity .15s}.sortable:hover .sort-icon{opacity:.75}.sortable.sort-asc .sort-icon,.sortable.sort-desc .sort-icon{opacity:1;color:#a5b4fc}.risk-bar{height:8px;border-radius:4px;overflow:hidden}.allocation-chart-wrap canvas{max-width:220px;max-height:220px}.allocation-table{font-size:.85rem}.allocation-table tfoot tr{border-top:2px solid #3d4165}.allocation-table .allocation-bar-track{background:#2d3148;border-radius:4px;height:8px;overflow:hidden}.allocation-table .allocation-bar-track .allocation-bar-fill{height:100%;border-radius:4px}.opp-stock-card,.sim-stock-card{background:#141720;border:1px solid #2d3148;border-radius:8px;padding:10px;margin-bottom:8px}.opp-stock-card .stock-card__ticker,.sim-stock-card .stock-card__ticker{font-size:1rem}.opp-stock-card .stock-card__name,.sim-stock-card .stock-card__name{font-size:.75rem;color:#8b93b0}.opp-stock-card .stock-card__stars,.sim-stock-card .stock-card__stars{font-size:1.1rem;letter-spacing:1px}.opp-stock-card .stock-card__summary,.sim-stock-card .stock-card__summary{color:#d1d9f0;font-size:.8rem;margin-bottom:6px}.opp-stock-card .badge-signal,.sim-stock-card .badge-signal{background:hsl(160.1183431953,84.07960199%,-15.5882352941%);color:#10b981;font-weight:500;margin-right:4px;margin-bottom:4px}.opp-stock-card .badge-caution,.sim-stock-card .badge-caution{background:hsl(0,84.236453202%,25.1960784314%);color:#ef4444;font-weight:500;margin-right:4px;margin-bottom:4px}
