/* v23 Stock Pro+ */
.stock-v23-body{background:radial-gradient(circle at 78% 14%,rgba(103,67,220,.22),transparent 34%),radial-gradient(circle at 24% 36%,rgba(20,166,255,.12),transparent 38%),#050916}.stock-v23-shell{max-width:1740px}.stock-v23-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) 330px;gap:26px;align-items:center;min-height:440px;padding:42px;border-radius:34px;background-size:cover;background-position:center;border:1px solid rgba(90,142,255,.18);box-shadow:0 34px 120px rgba(0,0,0,.34),inset 0 0 80px rgba(57,109,255,.04)}.stock-v23-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0 42%,rgba(57,145,255,.1) 48%,transparent 58%);transform:translateX(-30%);animation:v23HeroSweep 10s ease-in-out infinite;pointer-events:none}.stock-v23-hero-copy{position:relative;z-index:1;max-width:830px}.stock-v23-hero-copy h1{font-size:clamp(3.1rem,6.2vw,7.3rem);line-height:.91;letter-spacing:-.08em;margin:12px 0;color:#fff;text-shadow:0 18px 65px rgba(0,0,0,.5)}.stock-v23-hero-copy p{font-size:1.16rem;line-height:1.58;color:#d2dbee;max-width:740px}.stock-v23-live{position:relative;z-index:1;border-radius:26px;padding:24px;background:linear-gradient(145deg,rgba(16,29,61,.76),rgba(6,12,31,.9));border:1px solid rgba(108,160,255,.15);box-shadow:0 24px 75px rgba(0,0,0,.3)}.stock-v23-live span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:#95a9cf;font-weight:900}.stock-v23-live b{display:block;color:#fff;font-size:2rem;letter-spacing:-.04em;margin:10px 0 4px}.stock-v23-live small{color:#98a8c7}.stock-v23-hero-stats{position:relative;z-index:1;grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stock-v23-hero-stats div{padding:16px 18px;border-radius:20px;background:rgba(9,18,42,.62);border:1px solid rgba(255,255,255,.07)}.stock-v23-hero-stats b{display:block;color:#74b2ff;font-size:1.7rem}.stock-v23-hero-stats span{color:#9caac6;font-weight:800}.stock-v23-overview{margin:28px 0;padding:26px;border-radius:30px;border:1px solid rgba(90,142,255,.18);box-shadow:0 26px 90px rgba(0,0,0,.22)}.overview-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;margin-bottom:18px}.overview-head h2{font-size:2rem;letter-spacing:-.045em;margin:6px 0;color:#fff}.overview-head p{max-width:620px;color:#aebbd4;line-height:1.5}.stock-v23-allocation-grid{margin:0}.stock-v23-allocation-grid article{background:linear-gradient(145deg,rgba(13,25,55,.75),rgba(8,14,34,.9));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.stock-v23-filterbar{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.stock-v23-filterbar button{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.055);color:#c9d4e9;border-radius:999px;padding:10px 17px;font-weight:900;cursor:pointer;transition:.18s}.stock-v23-filterbar button:hover,.stock-v23-filterbar button.active{background:linear-gradient(135deg,#713cff,#2793ff);border-color:rgba(120,170,255,.55);color:#fff;box-shadow:0 12px 35px rgba(64,112,255,.24)}.stock-grid-v23{display:grid;grid-template-columns:repeat(3,minmax(330px,1fr));gap:30px;max-width:1280px;margin:54px auto 80px;align-items:stretch}.stock-card-v23{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:620px;padding:24px;border-radius:32px;background:linear-gradient(152deg,rgba(18,39,73,.86),rgba(13,18,48,.94) 45%,rgba(6,11,28,.98));border:1px solid rgba(70,154,255,.22);box-shadow:0 30px 105px rgba(0,0,0,.36),0 0 0 1px rgba(255,255,255,.025) inset;cursor:pointer;opacity:0;transform:translate3d(0,42px,0) scale(.98);filter:blur(5px);transition:box-shadow .22s ease,border-color .22s ease,background .22s ease}.stock-card-v23:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 0%,rgba(30,228,255,.14),transparent 34%),radial-gradient(circle at 90% 10%,rgba(151,80,255,.16),transparent 35%);opacity:.8;pointer-events:none}.stock-card-v23-bg{position:absolute;inset:auto -20% -22% -20%;height:250px;background:radial-gradient(ellipse at center,rgba(54,128,255,.18),transparent 67%);pointer-events:none}.stock-card-v23.v23-card-in{opacity:1;filter:none;transform:translate3d(0,0,0) scale(1);transition:opacity .74s ease var(--delay,0ms),transform .78s cubic-bezier(.16,.86,.22,1) var(--delay,0ms),filter .72s ease var(--delay,0ms),box-shadow .22s ease,border-color .22s ease}.stock-card-v23.v23-focus{border-color:rgba(60,221,255,.48);box-shadow:0 44px 135px rgba(0,0,0,.48),0 0 72px rgba(47,126,255,.20),0 0 0 1px rgba(62,215,255,.14) inset}.stock-card-v23:hover{transform:translate3d(0,-6px,0) scale(1.006);border-color:rgba(71,225,255,.42)}.stock-card-v23-head{position:relative;z-index:2;display:flex;justify-content:space-between;gap:12px;margin-bottom:22px}.horizon-chip,.review-chip{font-size:.78rem;font-weight:900;border-radius:999px;padding:8px 13px;border:1px solid rgba(255,255,255,.1);background:rgba(9,19,44,.72);color:#d6e4ff}.horizon-chip.short{color:#9ff2ff;border-color:rgba(22,221,255,.28);background:rgba(11,112,150,.24)}.horizon-chip.medium{color:#b9c8ff;border-color:rgba(84,121,255,.26)}.horizon-chip.long{color:#d8c2ff;border-color:rgba(158,101,255,.26)}.review-chip{font-size:.72rem;padding:7px 11px}.review-chip.approved{color:#8df0af;background:rgba(26,160,88,.18);border-color:rgba(62,238,142,.28)}.review-chip.pending{color:#ffe094;background:rgba(184,134,21,.14);border-color:rgba(255,202,68,.24)}.review-chip.big{font-size:.8rem;padding:8px 13px;align-self:flex-start}.stock-card-v23-title{position:relative;z-index:2;display:grid;grid-template-columns:auto 1fr;gap:15px;align-items:center;min-height:84px}.stock-card-v23-title h3{margin:0;font-size:clamp(2rem,2.1vw,2.85rem);line-height:.94;letter-spacing:-.07em;color:#fff}.stock-card-v23-title small{display:block;margin-top:8px;color:#9baed0;font-weight:900}.ticker-avatar{width:56px;height:56px;border-radius:17px;background:linear-gradient(135deg,#26a6ff,#864eff);display:grid;place-items:center;color:white;font-weight:950;box-shadow:0 18px 48px rgba(81,101,255,.35)}.stock-card-v23 .v23-price-strip{position:relative;z-index:2;margin:16px 0;padding:12px 13px;border-radius:17px;background:rgba(4,10,26,.62);border:1px solid rgba(255,255,255,.07)}.stock-chart-v23-wrap{position:relative;z-index:2;height:206px;border-radius:24px;overflow:hidden;border:1px solid rgba(66,158,255,.22);background:linear-gradient(180deg,rgba(11,42,74,.62),rgba(5,10,27,.92));box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);margin-bottom:20px}.stock-chart-v23-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);transform:translateX(-120%);opacity:0}.v23-card-in .stock-chart-v23-wrap:after{animation:v23ChartSweep 1.4s ease .45s forwards}.stock-chart-v23{position:absolute;inset:8px 12px 31px;width:calc(100% - 24px);height:160px}.v23-grid path{stroke:rgba(164,195,255,.12);stroke-width:1;fill:none}.v23-area{opacity:.95}.v23-line{fill:none;stroke-width:4.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:760;stroke-dashoffset:760;filter:drop-shadow(0 0 10px rgba(49,166,255,.38))}.v23-forecast{fill:none;stroke:rgba(255,255,255,.34);stroke-width:2;stroke-dasharray:7 8;stroke-linecap:round;opacity:.8}.v23-dot{fill:#fff;filter:drop-shadow(0 0 14px rgba(78,207,255,.75))}.v23-card-in .v23-line{animation:v23Draw 1.25s ease forwards .2s}.v23-chart-footer{position:absolute;left:14px;right:14px;bottom:10px;display:flex;justify-content:space-between;color:#91a5cc;font-size:.72rem;font-weight:950;text-transform:uppercase}.stock-chart-v23-wrap small{position:absolute;left:14px;top:10px;font-size:.63rem;text-transform:uppercase;letter-spacing:.1em;color:#9baace;font-weight:900;background:rgba(4,10,26,.5);padding:4px 7px;border-radius:999px}.stock-card-v23-thesis{position:relative;z-index:2;min-height:96px;margin:0 0 18px;color:#d0dbef;font-size:1.02rem;line-height:1.55}.stock-card-v23-meta{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:auto}.stock-card-v23-meta span{min-height:72px;border-radius:16px;padding:12px;background:rgba(2,8,24,.54);border:1px solid rgba(255,255,255,.065);color:#c7d2e7}.stock-card-v23-meta b{display:block;color:#fff;margin-bottom:4px}.stock-owner-inline-actions{position:relative;z-index:3;margin-top:14px}.stock-info-modal.stock-v23-modal{position:fixed!important;inset:0!important;z-index:9999!important;display:grid!important;place-items:center!important;background:rgba(2,5,13,.72);backdrop-filter:blur(16px);padding:16px}.stock-info-modal.stock-v23-modal[hidden]{display:none!important}.stock-detail-v23{position:relative;width:min(1060px,calc(100vw - 28px));max-height:min(90vh,920px);overflow:auto;border-radius:30px;padding:28px;background:linear-gradient(155deg,rgba(15,27,59,.99),rgba(6,10,27,.99));box-shadow:0 50px 180px rgba(0,0,0,.72);border:1px solid rgba(95,166,255,.24)}.stock-v23-modal-head{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start;margin-bottom:18px}.stock-v23-modal-head h2{font-size:clamp(2.35rem,4.2vw,4.4rem);line-height:.92;letter-spacing:-.08em;color:#fff;margin:8px 0 12px}.stock-v23-modal-head p{max-width:800px;color:#ced9ed;font-size:1.08rem;line-height:1.55}.stock-v23-modal-layout{display:grid;grid-template-columns:minmax(0,1.55fr) 300px;gap:18px}.stock-v23-big-chart,.stock-v23-side-box,.stock-v23-news,.stock-v23-explain{border-radius:24px;border:1px solid rgba(255,255,255,.075);background:rgba(7,15,37,.64);padding:18px}.stock-v23-big-chart svg{width:100%;height:330px;display:block}.stock-v23-side-box{display:flex;flex-direction:column;gap:16px}.stock-v23-price-card{border-radius:20px;background:rgba(2,8,23,.72);border:1px solid rgba(255,255,255,.075);padding:18px}.stock-v23-price-card small{display:block;text-transform:uppercase;color:#8da0c5;font-weight:900}.stock-v23-price-card b{display:block;color:#fff;font-size:2rem;margin:8px 0}.stock-v23-price-card em{font-style:normal;font-weight:950}.stock-v23-price-card em.positive{color:#76f5a7}.stock-v23-price-card em.negative{color:#ff91a7}.risk-meter{height:12px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08)}.risk-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6cf2a0,#f3df65,#ff6c82)}.stock-v23-modal-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.stock-v23-modal-meta div{padding:14px 15px;border-radius:17px;background:rgba(3,9,24,.58);border:1px solid rgba(255,255,255,.065)}.stock-v23-modal-meta b{display:block;color:#fff;margin-bottom:5px}.stock-v23-modal-meta span{color:#cad5e9}.stock-news-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.stock-news-head a{color:#9cc7ff;font-weight:950;text-decoration:none}.stock-news-list{margin-top:10px}.stock-news-item{display:block;padding:13px 14px;border-radius:16px;background:rgba(2,8,23,.58);border:1px solid rgba(255,255,255,.06);margin-top:10px;text-decoration:none;color:#cbd6ed;transition:.15s}.stock-news-item:hover{border-color:rgba(88,158,255,.34);transform:translateY(-1px)}.stock-news-item b{display:block;color:#fff;margin-bottom:5px}.stock-news-item small{color:#8eaee2}.stock-news-item span{display:block;color:#9eacc5;margin-top:4px}.stock-news-empty{color:#aebbd5}.modal-owner-actions{margin-top:16px}.status-v23-refresh .status-v21-card{background:linear-gradient(145deg,rgba(16,30,64,.88),rgba(7,13,31,.96));border-color:rgba(90,142,255,.18);box-shadow:0 28px 90px rgba(0,0,0,.28)}.status-v23-refresh .status-v21-hero{background:radial-gradient(circle at 78% 20%,rgba(91,75,255,.22),transparent 34%),linear-gradient(145deg,rgba(15,28,60,.88),rgba(7,12,28,.96));border-color:rgba(93,147,255,.22)}
@keyframes v23Draw{to{stroke-dashoffset:0}}@keyframes v23ChartSweep{to{transform:translateX(120%);opacity:1}}@keyframes v23HeroSweep{0%,100%{transform:translateX(-38%);opacity:.2}50%{transform:translateX(38%);opacity:.45}}
@media (max-width:1320px){.stock-grid-v23{grid-template-columns:repeat(2,minmax(320px,1fr));max-width:920px}.stock-v23-hero{grid-template-columns:1fr}.stock-v23-hero-stats{grid-template-columns:repeat(3,1fr)}.stock-v23-modal-layout{grid-template-columns:1fr}.stock-v23-side-box{display:grid;grid-template-columns:1fr 1fr}}
@media (max-width:760px){.stock-v23-shell{padding:10px}.stock-v23-hero{padding:24px;border-radius:24px;min-height:auto}.stock-v23-hero-copy h1{font-size:3.35rem}.stock-v23-hero-copy p{font-size:1rem}.stock-v23-live{padding:18px}.stock-v23-hero-stats{grid-template-columns:1fr}.overview-head{display:block}.stock-v23-overview{padding:18px;border-radius:24px}.stock-v23-filterbar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}.stock-v23-filterbar button{white-space:nowrap}.stock-grid-v23{grid-template-columns:1fr;gap:22px;margin:34px auto}.stock-card-v23{min-height:auto;padding:20px;border-radius:26px}.stock-card-v23-title{grid-template-columns:1fr;min-height:auto}.ticker-avatar{width:50px;height:50px}.stock-card-v23-title h3{font-size:2.45rem}.stock-card-v23-meta,.stock-v23-modal-meta{grid-template-columns:1fr}.stock-card-v23-thesis{min-height:auto}.stock-info-modal.stock-v23-modal{padding:8px;align-items:center}.stock-detail-v23{width:calc(100vw - 16px);max-height:88vh;padding:18px;border-radius:24px}.stock-v23-modal-head{grid-template-columns:1fr}.stock-v23-big-chart svg{height:250px}.stock-v23-side-box{display:flex}.stock-news-head{display:block}.stock-card-v23.v23-focus{box-shadow:0 26px 80px rgba(0,0,0,.38),0 0 45px rgba(47,126,255,.16)}}
@media (prefers-reduced-motion:reduce){.stock-card-v23,.stock-card-v23.v23-card-in{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.v23-line{stroke-dashoffset:0!important;animation:none!important}.stock-v23-hero:after,.stock-chart-v23-wrap:after{animation:none!important}}
/* v27 portfolio + buy flow */
.stock-card-v23-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.10)}
.stock-card-v23-actions .small{min-width:86px}
.stock-action-chip{display:inline-flex;align-items:center;min-height:32px;padding:7px 11px;border-radius:999px;border:1px solid rgba(64,224,255,.25);background:rgba(23,233,255,.08);color:#dffaff;font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}
.stock-card-v23.market-up .v23-line{filter:drop-shadow(0 0 11px rgba(36,255,154,.42))}
.stock-card-v23.market-down .v23-line{filter:drop-shadow(0 0 11px rgba(255,80,105,.44))}
.stock-buy-card{width:min(480px,calc(100vw - 28px));padding:26px}
.stock-buy-card form{display:grid;gap:12px}
.stock-buy-card input{width:100%;border:1px solid rgba(255,255,255,.14);background:rgba(4,10,25,.72);color:#fff;border-radius:12px;padding:13px 14px}
.stock-buy-card label{font-size:.78rem;color:#aab6cf;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.stock-portfolio-hero.positive,.portfolio-pulse.positive{box-shadow:0 0 42px rgba(38,255,160,.16),inset 0 0 0 1px rgba(38,255,160,.16)}
.stock-portfolio-hero.negative,.portfolio-pulse.negative{box-shadow:0 0 42px rgba(255,70,100,.16),inset 0 0 0 1px rgba(255,70,100,.16)}
.portfolio-pulse{position:relative;overflow:hidden}
.portfolio-pulse:after{content:"";position:absolute;inset:-40%;background:radial-gradient(circle,rgba(38,255,160,.22),transparent 54%);animation:portfolioPulse 3.2s ease-in-out infinite}
.portfolio-pulse.negative:after{background:radial-gradient(circle,rgba(255,70,100,.22),transparent 54%)}
@keyframes portfolioPulse{0%,100%{transform:scale(.82);opacity:.45}50%{transform:scale(1.08);opacity:.95}}
.stock-portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0 44px}
.stock-holding-card{position:relative;overflow:hidden;padding:22px;min-height:330px;border-color:rgba(255,255,255,.12)}
.holding-orbit{position:absolute;right:-90px;top:-90px;width:230px;height:230px;border-radius:50%;border:1px solid rgba(38,255,160,.22);box-shadow:0 0 40px rgba(38,255,160,.14);animation:holdingOrbit 8s linear infinite}
.stock-holding-card.negative .holding-orbit{border-color:rgba(255,70,100,.24);box-shadow:0 0 40px rgba(255,70,100,.15)}
@keyframes holdingOrbit{to{transform:rotate(360deg)}}
.holding-head{position:relative;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.holding-head h2{margin:4px 0 0;font-size:1.35rem}
.holding-action{display:inline-flex;align-items:center;padding:8px 11px;border-radius:999px;background:rgba(38,255,160,.12);border:1px solid rgba(38,255,160,.28);color:#bfffe3;font-weight:900;text-transform:uppercase;font-size:.78rem}
.holding-action.saelg,.holding-action.saelg,.holding-action.sell{background:rgba(255,70,100,.12);border-color:rgba(255,70,100,.28);color:#ffd3da}
.holding-action.revurder,.holding-action.hold-oeje{background:rgba(255,205,82,.12);border-color:rgba(255,205,82,.28);color:#ffe6a2}
.holding-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0 18px}
.holding-numbers div{padding:13px;border-radius:16px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09)}
.holding-numbers span{display:block;color:#9fb0cf;font-size:.72rem;text-transform:uppercase;font-weight:800}
.holding-numbers b{display:block;margin-top:5px;color:#fff;font-size:1.05rem}
.holding-numbers small{display:block;color:inherit}
.stock-holding-card.positive .holding-numbers div:last-child{color:#75ffc0}
.stock-holding-card.negative .holding-numbers div:last-child{color:#ff8aa0}
.holding-status-line{height:8px;border-radius:999px;background:linear-gradient(90deg,rgba(255,70,100,.35),rgba(255,205,82,.24),rgba(38,255,160,.36));overflow:hidden}
.holding-status-line span{display:block;height:100%;border-radius:999px;background:rgba(255,255,255,.88);box-shadow:0 0 18px rgba(255,255,255,.45)}
.stock-holding-card p{position:relative;color:#c8d4ea;line-height:1.55}
.holding-meta{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.holding-meta span{padding:7px 9px;border-radius:999px;background:rgba(255,255,255,.07);color:#b8c5df;font-size:.78rem}
.holding-meta .archived{background:rgba(255,205,82,.12);color:#ffe6a2;border:1px solid rgba(255,205,82,.22)}
.stock-portfolio-empty{grid-column:1/-1;padding:34px}
@media (max-width:900px){.stock-portfolio-grid{grid-template-columns:1fr}.holding-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.stock-card-v23-actions{align-items:stretch;flex-direction:column}.stock-card-v23-actions .small{width:100%}.holding-numbers{grid-template-columns:1fr}.holding-head{flex-direction:column}}
