:root{--bg:#050505;--card:#101012;--line:#29292d;--text:#f5f5f5;--muted:#96969f;--red:#2e6cff;--green:#26d07c}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui;background:radial-gradient(circle at 20% 0,#19191c 0,transparent 28%),#050505;color:var(--text)}button,input{font:inherit}header{position:sticky;top:0;z-index:10;background:#050505e8;backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}nav{max-width:1400px;margin:auto;padding:18px 26px;display:flex;align-items:center;gap:30px}.brand{font-size:25px;font-weight:900;letter-spacing:-1px}.brand span{color:var(--red)}.tabs{display:flex;gap:8px;margin:auto}.tabs button{border:0;background:transparent;color:#aaa;padding:10px 14px;text-transform:uppercase;font-weight:800;cursor:pointer}.tabs button.active{color:#fff;border-bottom:2px solid var(--red)}.level{font-size:12px;font-weight:900}.ticker{display:flex;max-width:1400px;margin:18px auto 0;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#111}.ticker b{background:var(--red);padding:10px 18px;font-size:11px;letter-spacing:.08em}.ticker div{padding:10px 18px;white-space:nowrap;overflow:hidden;color:#ddd;font-size:12px}main{max-width:1400px;margin:auto;padding:24px 26px 80px}.hero{display:grid;grid-template-columns:1.4fr .6fr;gap:20px;padding:60px 0 40px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--red)}h1{font-size:clamp(42px,6vw,78px);line-height:.9;letter-spacing:-4px;margin:12px 0;text-transform:uppercase}h1 span{color:#777}.hero p{max-width:720px;color:#aaa;font-size:18px;line-height:1.5}.balance,.stats>div,.panel,.profile-card,.career{border:1px solid var(--line);background:linear-gradient(180deg,#151518,#0d0d0f);border-radius:24px}.balance{padding:30px;display:flex;flex-direction:column;justify-content:center}.balance small,.stats small{color:#888;font-weight:800}.balance strong{font-size:42px;margin:8px 0}.balance span{color:var(--green);font-weight:800}.view{display:none}.view.active{display:block}.section-head{display:flex;align-items:end;justify-content:space-between;margin:25px 0 18px}.section-head h2{font-size:38px;margin:0;letter-spacing:-2px}.section-head p{color:var(--muted);margin:5px 0}.section-head input{background:#111;border:1px solid var(--line);color:#fff;border-radius:999px;padding:12px 18px}.market-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}.market-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.fighter{border:1px solid var(--line);background:var(--card);border-radius:20px;overflow:hidden;cursor:pointer;transition:.2s}.fighter:hover{transform:translateY(-3px);border-color:#555}.fighter-photo{height:145px;position:relative;background:radial-gradient(circle at 50% 30%,#404048,#19191d 60%,#0c0c0e);display:grid;place-items:end center;overflow:hidden}.fighter-photo:before{content:"";width:86px;height:118px;border-radius:45px 45px 18px 18px;background:linear-gradient(180deg,#777,#2b2b30);opacity:.6;transform:translateY(22px)}.fighter-photo span{position:absolute;inset:auto 12px 10px auto;font-weight:900;font-size:34px;color:#ffffff22}.fighter-body{padding:17px}.fighter .top{display:flex;justify-content:space-between;gap:10px}.fighter h3{font-size:18px;margin:8px 0}.fighter .class{font-size:10px;color:#aaa;font-weight:900}.price{font-size:28px;font-weight:900}.move.up{color:var(--green)}.move.down{color:var(--red)}.fighter .meta{display:grid;grid-template-columns:1fr 1fr;gap:6px;color:#9c9ca3;font-size:11px;margin-top:14px}.fighter .meta b{color:#fff;font-weight:700}.catalyst{margin-top:12px;padding-top:10px;border-top:1px solid #222;color:#b9b9c0;font-size:11px;line-height:1.35}.news-rail{border:1px solid var(--line);background:#0f0f11;border-radius:22px;padding:16px;align-self:start;position:sticky;top:94px}.rail-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}.rail-head h3{margin:3px 0 0;font-size:22px}.rail-head button{background:none;border:0;color:#fff;font-size:10px;font-weight:900;cursor:pointer}.rail-news{padding:14px 0;border-bottom:1px solid #242428}.rail-news:last-child{border:0}.rail-news small{color:#777}.rail-news b{display:block;margin:5px 0;line-height:1.35;font-size:13px}.rail-news .tag{color:var(--red);font-weight:900;font-size:9px;letter-spacing:.08em}.news-source{font-size:11px;color:#888;border:1px solid var(--line);border-radius:999px;padding:9px 13px}.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.news-card{border:1px solid var(--line);background:var(--card);border-radius:20px;overflow:hidden}.news-image{aspect-ratio:1.25;background:linear-gradient(135deg,#25252b,#09090a);display:grid;place-items:center;font-size:58px;font-weight:900;color:#ffffff18}.news-copy{padding:18px}.news-copy .tag{color:var(--red);font-size:10px;font-weight:900;letter-spacing:.1em}.news-copy h3{margin:8px 0 9px;font-size:19px;line-height:1.25}.news-copy p{color:#999;font-size:13px;line-height:1.45;margin:0}.news-copy footer{display:flex;justify-content:space-between;color:#666;font-size:10px;margin-top:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.stats>div{padding:24px}.stats strong{display:block;font-size:30px;margin-top:7px}.panel{padding:20px}.holding,.rank-row{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:15px;padding:14px;border-bottom:1px solid var(--line);align-items:center}.holding:last-child,.rank-row:last-child{border:0}.rank-row b:first-child{font-size:20px}.profile-card{padding:30px;display:flex;gap:22px;align-items:center}.avatar{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;background:var(--red);font-weight:900;font-size:25px}.profile-card h2{font-size:40px;margin:5px 0}.profile-card p{color:#888}.career{margin-top:16px;padding:24px;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.career div{text-align:center;color:#666;font-size:25px}.career b{display:block;font-size:11px;margin-top:8px}.career .done{color:#fff}.modal{position:fixed;inset:0;background:#000c;display:grid;place-items:center;z-index:30;padding:20px}.modal.hidden{display:none}.modal-card{width:min(720px,100%);max-height:92vh;overflow:auto;background:#111;border:1px solid #333;border-radius:28px;padding:28px;position:relative}.close{position:absolute;right:20px;top:15px;background:none;border:0;color:#fff;font-size:30px;cursor:pointer;z-index:2}.fighter-hero{display:grid;grid-template-columns:160px 1fr;gap:22px;align-items:end}.fighter-photo.large{height:180px;border-radius:18px;border:1px solid #2c2c31}.modal h2{font-size:38px;margin:7px 0}.quote{display:flex;gap:15px;align-items:center}.quote strong{font-size:38px}.chart{height:120px;display:flex;align-items:end;gap:5px;margin:22px 0;border-bottom:1px solid #333}.chart i{flex:1;background:#444;border-radius:4px 4px 0 0}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;color:#aaa;font-size:12px}.facts div{background:#19191c;padding:12px;border-radius:12px}.fighter-news{margin-top:18px;border-top:1px solid #29292d;padding-top:14px}.fighter-news article{margin-top:7px;background:#18181b;border-radius:12px;padding:12px;font-size:12px;line-height:1.4}.trade{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:20px}.trade input,.trade button{border-radius:12px;border:1px solid #333;padding:14px;background:#19191c;color:#fff}.trade button{background:var(--green);color:#04140c;font-weight:900;cursor:pointer}.trade .sell{background:var(--red);color:#fff}.hint{display:block;color:#666;margin-top:10px}@media(max-width:1100px){.market-layout{grid-template-columns:1fr}.news-rail{position:relative;top:0}.market-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.market-grid,.news-grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.tabs{order:3;width:100%;overflow:auto}nav{flex-wrap:wrap}.level{margin-left:auto}.career{grid-template-columns:1fr 1fr}.holding,.rank-row{grid-template-columns:1.5fr 1fr}.holding>*:nth-child(3),.rank-row>*:nth-child(3){display:none}.fighter-hero{grid-template-columns:120px 1fr}.fighter-photo.large{height:150px}.facts{grid-template-columns:1fr 1fr}}@media(max-width:560px){main{padding:16px}.market-grid,.news-grid{grid-template-columns:1fr}.section-head{display:block}.section-head input{width:100%;margin-top:12px}.news-source{display:inline-block;margin-top:10px}.stats{grid-template-columns:1fr}.trade{grid-template-columns:1fr}.facts{grid-template-columns:1fr 1fr}h1{letter-spacing:-2px}.ticker{margin:12px}.level{display:none}.fighter-hero{grid-template-columns:1fr}.fighter-photo.large{height:160px}.modal h2{font-size:30px}}


/* V3: portrait fighter cards + plain-language market signals */
.fighter-photo{height:auto;aspect-ratio:4/5;place-items:end center;background:radial-gradient(circle at 50% 25%,#44444c,#19191d 58%,#09090b)}
.fighter-photo:before{width:58%;height:82%;border-radius:46% 46% 18% 18%;transform:translateY(8%);background:linear-gradient(180deg,#777,#25252a)}
.fighter-photo span{font-size:44px;right:14px;bottom:12px}
.photo-note{position:absolute;left:12px;bottom:12px;font-size:8px;font-weight:900;letter-spacing:.12em;color:#777}
.fighter-sub{color:#8f8f97;font-size:11px;margin:-2px 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.signals{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.signals span{border:1px solid #303036;background:#17171a;border-radius:999px;padding:6px 8px;font-size:9px;font-weight:800;color:#ddd}
.next-event{margin-top:12px;padding-top:11px;border-top:1px solid #242428;display:flex;flex-direction:column;gap:4px}
.next-event small{font-size:8px;letter-spacing:.12em;color:#777;font-weight:900}
.next-event b{font-size:11px;line-height:1.35;color:#d6d6db}
.fighter-photo.large{height:auto;aspect-ratio:4/5;min-height:260px}
.fighter-photo.large:before{height:84%;width:62%}
@media(max-width:1100px){.fighter-photo{aspect-ratio:4/5}.fighter-photo.large{min-height:220px}}
@media(max-width:560px){.fighter-photo{aspect-ratio:4/5}.fighter-photo.large{aspect-ratio:4/5;min-height:300px}}
.fighter-photo{background-size:cover;background-position:center top;background-repeat:no-repeat}

.brand img{display:block;width:220px;max-width:36vw;height:auto}.ticker b{background:#2e6cff}.avatar{background:#2e6cff}.trade .sell{background:#263142}.news-copy .tag,.rail-news .tag,.eyebrow{color:#6c95ff}@media(max-width:560px){.brand img{width:180px;max-width:50vw}}

.fighter-photo.has-image:before{display:none!important}.fighter-photo.has-image{background-size:cover!important;background-position:center top!important;background-repeat:no-repeat!important}


/* V6.4 Safari wide-screen fighter modal fix */
@media (min-width: 900px){
  .fighter-hero{
    display:grid;
    grid-template-columns:minmax(200px, 32%) minmax(0, 1fr);
    gap:24px;
    align-items:start;
  }
  .fighter-photo.large{
    position:relative;
    z-index:1;
    width:100%;
    max-width:320px;
    justify-self:start;
    overflow:hidden;
  }
  .fighter-hero > div:not(.fighter-photo){
    position:relative;
    z-index:3;
    min-width:0;
    padding-top:6px;
  }
  .fighter-hero .quote,
  .fighter-hero h2,
  .fighter-hero .class,
  .fighter-hero .fighter-sub{
    position:relative;
    z-index:4;
  }
  .fighter-photo.large.has-image{
    background-position:center top!important;
  }
}

/* V6.5 - FIGHTING MARKET brand logo */
.market-brand{
  display:flex;
  align-items:center;
  margin:0 0 8px 0;
  line-height:0;
}
.market-brand img{
  display:block;
  width:220px;
  max-width:36vw;
  height:auto;
}
@media(max-width:560px){
  .market-brand img{
    width:180px;
    max-width:58vw;
  }
}

/* V7 — real IPO accounts & portfolios */
.account-actions{display:flex;align-items:center;gap:10px}.account-btn{border:1px solid #34415c;background:#151a24;color:#fff;border-radius:10px;padding:10px 13px;font-weight:900;font-size:10px;letter-spacing:.08em}.account-btn.logged{border-color:#2e6cff;color:#8eafff}
.ipo-position{margin-top:18px;padding:10px 12px;border:1px solid #2d3442;border-radius:10px;background:#151922;color:#9ea8ba;font-size:11px;font-weight:800}
.auth-modal{position:fixed;inset:0;z-index:1000;background:#000c;display:grid;place-items:center;padding:20px}.auth-modal.hidden{display:none}.auth-card{position:relative;width:min(430px,100%);background:#111318;border:1px solid #2b303b;border-radius:20px;padding:28px;box-shadow:0 30px 90px #000}.auth-logo{width:190px;height:auto;margin-bottom:25px}.auth-card h2{font-size:30px;margin:7px 0}.auth-card p{color:#8e929d;font-size:13px}.auth-card label{display:block;color:#9ba1ad;font-size:10px;font-weight:900;letter-spacing:.06em;margin-top:15px}.auth-card input{box-sizing:border-box;width:100%;margin-top:7px;background:#0a0c10;border:1px solid #303642;border-radius:10px;color:#fff;padding:13px}.auth-primary{width:100%;margin-top:18px;background:#2e6cff;color:#fff;border:0;border-radius:10px;padding:13px;font-weight:900}.auth-switch{width:100%;margin-top:8px;background:transparent;color:#7fa3ff;border:0;padding:10px;font-size:10px;font-weight:900}.auth-close{position:absolute;right:16px;top:13px;border:0;background:transparent;color:#777;font-size:25px}.auth-msg{min-height:18px;margin-top:10px;color:#ff7b83;font-size:11px}.auth-msg.ok{color:#54d98c}.holding{grid-template-columns:2fr 1fr 1fr 1fr}.holding .holding-actions{display:flex;gap:5px}.holding button{border:1px solid #343b49;background:#171c25;color:#fff;border-radius:7px;padding:6px 8px;font-size:9px;font-weight:900}
@media(max-width:700px){.account-actions .level{display:none}.account-btn{padding:9px}.holding{grid-template-columns:1fr 1fr}.holding>*:nth-child(n+3){margin-top:5px}}

/* V7.1 — clearer IPO trading */
.trade-box{margin-top:14px;border:1px solid #2b3240;border-radius:14px;padding:14px;background:#11151d}
.trade-mode{display:flex;gap:6px;margin-bottom:12px}
.trade-mode button{flex:1;border:1px solid #303744;background:#171c25;color:#949cac;border-radius:8px;padding:9px;font-size:9px;font-weight:900;letter-spacing:.06em}
.trade-mode button.active{background:#2e6cff;border-color:#2e6cff;color:#fff}
.trade-box label{display:block;color:#9ba3b2;font-size:10px;font-weight:900;letter-spacing:.05em}
.trade-box input{box-sizing:border-box;width:100%;margin-top:7px;background:#080b10;border:1px solid #333b49;border-radius:9px;color:#fff;padding:12px;font-size:18px;font-weight:800}
.trade-preview{margin:10px 0 12px;padding:10px 12px;background:#0b0f15;border-radius:9px;color:#d8e2ff;font-size:12px;font-weight:800}
.trade-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.trade-actions button{border:0;border-radius:9px;padding:12px;font-weight:900;background:#2e6cff;color:#fff}
.trade-actions .sell{background:#293242}
.trade-feedback{margin-top:12px;border:1px solid #235b3c;background:#10271b;color:#7ee3aa;border-radius:10px;padding:12px;font-size:12px;font-weight:800}
.trade-feedback.hidden{display:none}
.stats{grid-template-columns:repeat(4,1fr)}
@media(max-width:800px){.stats{grid-template-columns:1fr 1fr}}

/* V7.2 — clearer IPO money terminology */
.hero-cash{margin-top:12px;padding-top:11px;border-top:1px solid #303641;display:flex;justify-content:space-between;align-items:center;gap:14px}
.hero-cash small{font-size:8px;letter-spacing:.08em;color:#818896;font-weight:900}
.hero-cash b{font-size:16px;color:#fff;white-space:nowrap}

/* V7.3 — hero cash below portfolio value, left aligned */
.hero-cash{
  margin-top:14px!important;
  padding-top:0!important;
  border-top:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:4px!important;
  text-align:left!important;
}
.hero-cash small{display:block!important;text-align:left!important}
.hero-cash b{display:block!important;text-align:left!important;font-size:18px!important}

/* V7.4 — reliable modal close target */
.modal-card .close{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
  z-index:50!important;
  width:48px!important;
  height:48px!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  font-size:30px!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  -webkit-appearance:none;
  touch-action:manipulation;
}

/* V7.5 — portfolio, trader profile and IPO live */
.portfolio-list{overflow:hidden}.portfolio-row{display:grid;grid-template-columns:56px minmax(150px,1.7fr) .8fr .8fr 1fr 1.2fr;gap:12px;align-items:center;padding:12px;border-bottom:1px solid #272b33}.portfolio-row:last-child{border-bottom:0}.portfolio-thumb{width:50px;height:62px;border-radius:8px;background:#242831 center top/cover no-repeat}.portfolio-name b{display:block}.portfolio-name small{color:#7f8795}.portfolio-row .num{text-align:right}.portfolio-share{height:5px;background:#252a33;border-radius:5px;overflow:hidden;margin-top:5px}.portfolio-share i{display:block;height:100%;background:#2e6cff}.portfolio-row button{border:1px solid #34415c;background:#171c25;color:#fff;border-radius:7px;padding:6px 8px;font-size:9px;font-weight:900;margin-left:4px}
.ipo-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ipo-stat-panel{padding:18px}.ipo-live-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid #282c34}.ipo-live-row:last-child{border:0}.ipo-live-row small{color:#828a98}.ipo-live-row b:last-child{text-align:right}
.profile-editor{max-width:650px;margin:18px auto;padding:20px}.profile-editor h3{margin-top:0}.profile-editor label{display:block;margin:13px 0;color:#969daa;font-size:10px;font-weight:900}.profile-editor input{box-sizing:border-box;width:100%;margin-top:6px;background:#0b0e13;border:1px solid #303743;border-radius:9px;color:#fff;padding:12px}.profile-editor input:disabled{color:#777}.profile-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.profile-meta div{background:#171a20;padding:12px;border-radius:9px}.profile-meta small{display:block;color:#777;font-size:8px}.profile-editor>button{border:0;border-radius:9px;padding:11px 14px;font-weight:900;background:#2e6cff;color:#fff;margin-right:7px}.profile-editor>.profile-logout{background:#252a33}
@media(max-width:900px){.ipo-stats-grid{grid-template-columns:1fr}.portfolio-row{grid-template-columns:50px 1fr 1fr}.portfolio-row .hide-mobile{display:none}.profile-meta{grid-template-columns:1fr}}

/* V7.6 registration */
.auth-link{display:block;width:100%;border:0;background:transparent;color:#7399ff;text-align:right;font-size:9px;font-weight:900;padding:7px 0 12px;cursor:pointer}
.auth-success-box{margin-top:12px;padding:13px;border:1px solid #255b3e;background:#10251a;border-radius:9px;color:#83e6ac;line-height:1.45}

/* V7.7 — fixed trader identity */
.profile-editor input[readonly],
.profile-editor input:disabled{
  cursor:not-allowed;
  opacity:.82;
}
.profile-meta{
  grid-template-columns:repeat(4,1fr);
}
#profileAccountId{
  font-size:10px;
  word-break:break-all;
  color:#8fa7de;
}
@media(max-width:900px){
  .profile-meta{grid-template-columns:1fr 1fr}
}


/* V7.7.2 — Safari navigation fix without changing layout */
html{
  overflow-x:hidden;
}
body{
  overflow-x:clip;
}

/* V7.7.3 — IPO position limit */
.ipo-limit-box{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}
.ipo-limit-box>div{background:#11151d;border:1px solid #2b3240;border-radius:9px;padding:10px}
.ipo-limit-box small{display:block;color:#7f8795;font-size:8px;font-weight:900;letter-spacing:.05em;margin-bottom:4px}
.ipo-limit-box b{font-size:12px;color:#fff}
@media(max-width:650px){.ipo-limit-box{grid-template-columns:1fr}}

/* V8 — Market Open */
.market-state-note{margin-top:10px;color:#7f8795;font-size:10px;font-weight:800}
.market-state-note.open{color:#59df96}
.ticker b.open{background:#14874d!important}
.chart.real-chart{height:150px;position:relative;display:block;border-bottom:1px solid #333;margin:22px 0}
.chart.real-chart svg{width:100%;height:100%;overflow:visible}
.chart.real-chart .chart-line{fill:none;stroke:#2e6cff;stroke-width:3}
.chart.real-chart .chart-area{fill:rgba(46,108,255,.10)}
.chart.real-chart .chart-zero{stroke:#333;stroke-width:1}
.market-price-change{font-size:12px;font-weight:900}
.market-price-change.up{color:#55d98a}
.market-price-change.down{color:#ff6977}
.market-price-change.flat{color:#888}
.ipo-live-head{margin-top:28px}
.rank-row.live-rank{grid-template-columns:70px minmax(160px,1.5fr) 1fr 1fr 1fr}
@media(max-width:700px){.rank-row.live-rank{grid-template-columns:55px 1fr 1fr}.rank-row.live-rank .rank-hide{display:none}}

/* V8.1 — real multi-trade chart */
.chart.real-chart{position:relative;padding-bottom:22px}
.chart-meta{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#747c8b}
.chart-meta b{font-size:10px}.chart-meta b.up{color:#55d98a}.chart-meta b.down{color:#ff6977}.chart-meta b.flat{color:#888}

/* V8.2 — editorial hero + unified FIGHTING blue */
.hero .eyebrow{
  color:#2e6cff!important;
}
#heroLine1{
  color:#f4f4f4;
}
#heroLine2{
  color:#707070;
}

/* V8.3 — market pause */
.ticker b.pause{background:#9a6a11!important}
.market-state-note.pause{color:#d6a846!important}

/* V8.4 — trading depot */
#portfolioPerf.up,#portfolioPnL.up,.performance.up{color:#55d98a}
#portfolioPerf.down,#portfolioPnL.down,.performance.down{color:#ff6977}
#portfolioPerf.flat,#portfolioPnL.flat,.performance.flat{color:#a0a0a0}
#portfolioPnL{display:block;margin-top:3px;font-size:10px}
.portfolio-row{grid-template-columns:54px minmax(190px,1.6fr) .6fr .75fr .75fr .8fr 1fr auto}
.performance small{font-weight:800}
.trade-history-head{margin-top:28px}
.trade-history{overflow:hidden}
.trade-row{display:grid;grid-template-columns:80px minmax(170px,1.5fr) .7fr .8fr .9fr;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid #252a33}
.trade-row:last-child{border-bottom:0}
.trade-row span{min-width:0}.trade-row small{display:block;color:#737b88;font-size:8px;font-weight:900;margin-bottom:3px}.trade-row b{font-size:11px}
.trade-side{display:inline-flex!important;width:max-content;padding:6px 8px;border-radius:6px;font-size:9px!important;font-weight:900}
.trade-side.buy{background:rgba(42,170,93,.13);color:#55d98a}.trade-side.sell{background:rgba(225,66,82,.13);color:#ff6977}
.empty-trades{color:#777;padding:14px}
@media(max-width:950px){
  .portfolio-row{grid-template-columns:48px minmax(150px,1fr) .6fr .8fr auto}
  .portfolio-row .performance{display:block}
  .trade-row{grid-template-columns:70px 1fr .7fr}
  .trade-row span:nth-child(4),.trade-row span:nth-child(5){display:none}
}

/* V8.4.1 — FIGHTING MARKET branding */
:root{
  --fighting-blue:#2e6cff;
}

#market .market-brand{
  display:flex;
  align-items:center;
  min-height:28px;
  margin-bottom:10px;
}
#market .market-brand img{
  display:block;
  width:230px;
  max-width:42vw;
  height:auto;
  object-fit:contain;
  object-position:left center;
}

/* One consistent blue for all Market editorial labels */
#market .eyebrow,
#market .tag,
#market .rail-head .eyebrow,
#market .rail-news .tag,
#market .news-source,
#market .news-rail .tag,
#market .news-rail a,
#market .news-rail .all,
#news .eyebrow,
#news .tag,
#news .news-source{
  color:var(--fighting-blue)!important;
}

@media(max-width:700px){
  #market .market-brand img{
    width:190px;
    max-width:65vw;
  }
}

/* V8.5 — clickable brand + order confirmation */
.brand-home{display:flex;align-items:center;text-decoration:none;cursor:pointer}
.brand-home img{display:block}

.order-card{width:min(680px,92vw);max-height:90vh;overflow:auto;background:#101114;border:1px solid #343943;border-radius:22px;padding:22px;position:relative;color:#fff}
.order-success{font-size:24px;font-weight:900;color:#55d98a;text-align:center;margin-top:4px}
.order-success.sell{color:#ff6977}
.order-success-lead{text-align:center;color:#9da4af;margin:4px 0 18px}
.order-fighter{display:grid;grid-template-columns:78px 1fr auto;gap:14px;align-items:center;padding:16px;border:1px solid #303640;border-radius:14px;background:#0c0f13}
.order-fighter-photo{width:72px;height:82px;border-radius:10px;background:#1b1e24 center top/cover no-repeat}
.order-fighter h2{margin:0 0 5px;font-size:22px}
#orderSide{color:#55d98a}
#orderSide.sell{color:#ff6977}
.order-price{text-align:right}.order-price small{display:block;color:#7d8592;font-size:8px;font-weight:900}.order-price strong{display:block;font-size:23px;margin:4px 0}.order-price span{font-size:11px;font-weight:900}
.order-details{margin:12px 0;border:1px solid #303640;border-radius:14px;overflow:hidden}
.order-details>div{display:flex;justify-content:space-between;gap:18px;padding:10px 14px;border-bottom:1px solid #252a31}
.order-details>div:last-child{border-bottom:0}.order-details span{color:#9aa1ac}.order-details b{text-align:right}
.order-total b{color:#2e6cff;font-size:16px}
.order-account{border:1px solid #303640;border-radius:14px;padding:14px;margin-bottom:14px}
.order-account-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:10px}
.order-account-grid>div{padding:8px 10px;border-right:1px solid #282d35;text-align:center}
.order-account-grid>div:last-child{border-right:0}.order-account-grid small{display:block;color:#838b98;font-size:8px;font-weight:900;margin-bottom:4px}.order-account-grid strong{font-size:13px}
.order-ok{width:100%;border:0;border-radius:9px;background:#2e6cff;color:white;padding:12px;font-weight:900;font-size:14px;cursor:pointer}
.order-portfolio{display:block;margin:9px auto 0;border:0;background:transparent;color:#6090ff;font-weight:900;font-size:10px;cursor:pointer}
@media(max-width:650px){
  .order-fighter{grid-template-columns:62px 1fr}.order-fighter-photo{width:58px;height:68px}.order-price{grid-column:1/-1;text-align:left}
  .order-account-grid{grid-template-columns:1fr 1fr}.order-account-grid>div:nth-child(2){border-right:0}.order-account-grid>div{border-bottom:1px solid #282d35}.order-account-grid>div:nth-child(3),.order-account-grid>div:nth-child(4){border-bottom:0}
}

/* V8.5.1 — subtle FIGHTING blue CI atmosphere */
:root{
  --fighting-blue:#2e6cff;
  --fighting-blue-rgb:46,108,255;
}

/* Fighter cards: very soft blue light behind the fighter, fading to black */
#market .fighter-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
#market .fighter-card::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 62% 48% at 50% 32%,
      rgba(var(--fighting-blue-rgb),.095) 0%,
      rgba(var(--fighting-blue-rgb),.035) 42%,
      rgba(var(--fighting-blue-rgb),0) 74%);
}

/* Market News: restrained CI wash from the upper/right edge */
#market .news-rail,
#market .market-news,
#market .rail-news{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
#market .news-rail::before,
#market .market-news::before,
#market .rail-news::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 70% 42% at 100% 10%,
      rgba(var(--fighting-blue-rgb),.075) 0%,
      rgba(var(--fighting-blue-rgb),.025) 45%,
      rgba(var(--fighting-blue-rgb),0) 76%);
}

/* Portfolio and ranking panels get only a tiny edge glow */
#portfolio .portfolio-row,
#ranking .ranking-row{
  background-image:
    linear-gradient(110deg,
      rgba(var(--fighting-blue-rgb),.035) 0%,
      rgba(var(--fighting-blue-rgb),0) 30%);
}

/* Modal: soft blue atmosphere behind fighter/price area */
.fighter-modal-card,
.modal-card{
  background-image:
    radial-gradient(ellipse 58% 32% at 82% 12%,
      rgba(var(--fighting-blue-rgb),.065) 0%,
      rgba(var(--fighting-blue-rgb),0) 72%);
}

/* Mobile stays intentionally quieter */
@media(max-width:700px){
  #market .fighter-card::before{
    background:
      radial-gradient(ellipse 68% 40% at 50% 30%,
        rgba(var(--fighting-blue-rgb),.07) 0%,
        rgba(var(--fighting-blue-rgb),0) 72%);
  }
}

/* V8.5.2 — corrected visible CI gradients */
#market .fighter{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(ellipse 90% 58% at 50% 30%,
      rgba(46,108,255,.16) 0%,
      rgba(46,108,255,.075) 36%,
      rgba(46,108,255,.018) 62%,
      rgba(46,108,255,0) 78%),
    #101114;
}
#market .fighter::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:-1;
  left:8%;
  right:8%;
  top:6%;
  height:52%;
  background:linear-gradient(135deg,
    rgba(46,108,255,0) 15%,
    rgba(46,108,255,.07) 50%,
    rgba(46,108,255,0) 82%);
  filter:blur(18px);
}

#market .news-rail{
  background:
    radial-gradient(ellipse 100% 36% at 100% 12%,
      rgba(46,108,255,.15) 0%,
      rgba(46,108,255,.05) 48%,
      rgba(46,108,255,0) 78%),
    #101114;
}
#market .rail-news{
  background:
    linear-gradient(100deg,
      rgba(46,108,255,.045) 0%,
      rgba(46,108,255,0) 55%);
}

/* a subtle blue atmosphere behind the market section itself */
#market{
  background-image:
    radial-gradient(ellipse 42% 28% at 22% 38%,
      rgba(46,108,255,.055) 0%,
      rgba(46,108,255,0) 76%);
}

@media(max-width:700px){
  #market .fighter{
    background:
      radial-gradient(ellipse 95% 50% at 50% 28%,
        rgba(46,108,255,.12) 0%,
        rgba(46,108,255,.045) 45%,
        rgba(46,108,255,0) 76%),
      #101114;
  }
}

/* V8.5.3 — News imagery standardized to Instagram 4:5 */
#news .news-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:start;
}

#news .news-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  border-radius:16px;
}

#news .news-image{
  width:100%;
  aspect-ratio:4 / 5;
  height:auto!important;
  min-height:0!important;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 50% 30%,
      rgba(46,108,255,.12) 0%,
      rgba(46,108,255,.035) 48%,
      rgba(46,108,255,0) 78%),
    #0d1015;
}

#news .news-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}

#news .news-copy{
  flex:1;
  padding:15px 16px 16px;
}

#news .news-copy h3{
  margin-top:6px;
}

@media(max-width:1050px){
  #news .news-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:650px){
  #news .news-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  #news .news-card{
    max-width:520px;
    margin-inline:auto;
    width:100%;
  }
}

/* V8.5.4 — clickable news cards */
a.news-card,
a.rail-news{
  color:inherit;
  text-decoration:none;
}

.linked-news{
  cursor:pointer;
}

#news a.news-card{
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}

#news a.news-card:hover{
  transform:translateY(-2px);
  border-color:rgba(46,108,255,.48);
  box-shadow:0 12px 34px rgba(0,0,0,.24),0 0 0 1px rgba(46,108,255,.08);
}

#market a.rail-news{
  display:block;
  transition:background-color .15s ease;
}

#market a.rail-news:hover{
  background-color:rgba(46,108,255,.055);
}

/* V8.5.5 — start page alignment cleanup */
:root{
  --market-side-col:330px;
  --market-gap:18px;
}

/* Hero uses exactly the same right column as the Market/News row.
   Result: portfolio box and news box start at the same x-position
   and have exactly the same width. */
.hero{
  grid-template-columns:minmax(0,1fr) var(--market-side-col)!important;
  gap:var(--market-gap)!important;
}

/* Market logo and search are stacked; no editorial line underneath. */
#market .market-head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
  margin:25px 0 14px;
}

#market .market-head .market-brand{
  margin:0;
  min-height:0;
}

#market .market-head .market-brand img{
  display:block;
  width:230px;
  max-width:42vw;
  height:auto;
}

#market .market-head #search{
  width:230px;
  max-width:100%;
  box-sizing:border-box;
  background:#111;
  border:1px solid var(--line);
  color:#fff;
  border-radius:999px;
  padding:10px 16px;
}

/* Same right column as the hero. */
#market .market-layout{
  grid-template-columns:minmax(0,1fr) var(--market-side-col)!important;
  gap:var(--market-gap)!important;
  align-items:start;
}

/* News starts exactly at the top of the fighter cards. */
#market .news-rail{
  margin-top:0!important;
  align-self:start!important;
}

/* News CI: headline blue, copy white, metadata grey. */
#market .rail-news b{
  color:#2e6cff!important;
}

#market .rail-news p{
  margin:4px 0 7px;
  color:#fff!important;
  font-size:12px;
  line-height:1.35;
}

#market .rail-news small{
  color:#777!important;
}

#news .news-copy h3{
  color:#2e6cff!important;
}

#news .news-copy p{
  color:#fff!important;
}

#news .news-copy footer{
  color:#777;
}

/* Preserve readable proportions on narrower screens. */
@media(max-width:1050px){
  :root{
    --market-side-col:290px;
  }
}

@media(max-width:850px){
  .hero{
    grid-template-columns:1fr!important;
  }
  #market .market-layout{
    grid-template-columns:1fr!important;
  }
  #market .news-rail{
    position:relative!important;
    top:auto!important;
    width:100%;
  }
}

@media(max-width:700px){
  #market .market-head .market-brand img,
  #market .market-head #search{
    width:190px;
    max-width:100%;
  }
}

/* V8.5.6 — Market logo/search in one row + news flush with fighter cards */
#market .market-head{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:18px!important;
  margin:25px 0 14px!important;
}

#market .market-head .market-brand{
  flex:0 0 auto;
}

#market .market-head #search{
  flex:0 0 230px;
  width:230px!important;
  margin:0!important;
}

/* The news rail is part of the same market-layout row as the fighter grid,
   so force both to start on exactly the same top line. */
#market .market-layout{
  align-items:start!important;
}

#market .market-grid,
#market .news-rail{
  margin-top:0!important;
}

#market .news-rail{
  align-self:start!important;
  top:94px;
}

/* Mobile: stack logo/search again only when horizontal space becomes tight. */
@media(max-width:650px){
  #market .market-head{
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:9px!important;
  }
  #market .market-head #search{
    flex-basis:auto;
    width:100%!important;
    max-width:320px!important;
  }
}

/* V8.5.7 — exact fighter/news top alignment */

/* New 2-column / 2-row market grid:
   row 1 = logo + search only over fighter column
   row 2 = fighter cards + market news, perfectly aligned */
#market .market-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--market-side-col);
  grid-template-rows:auto auto;
  column-gap:var(--market-gap);
  row-gap:14px;
  align-items:start;
  margin-top:25px;
}

#market .market-head{
  grid-column:1;
  grid-row:1;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:18px!important;
  margin:0!important;
}

#market .market-grid{
  grid-column:1;
  grid-row:2;
  margin:0!important;
  align-self:start!important;
}

#market .news-rail{
  grid-column:2;
  grid-row:2;
  margin:0!important;
  align-self:start!important;
  position:sticky;
  top:94px;
}

/* The old market-layout wrapper is no longer used here. */
#market .market-layout{
  display:contents!important;
}

@media(max-width:850px){
  #market .market-shell{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
  }
  #market .market-head{
    grid-column:1;
    grid-row:1;
  }
  #market .market-grid{
    grid-column:1;
    grid-row:2;
  }
  #market .news-rail{
    grid-column:1;
    grid-row:3;
    position:relative!important;
    top:auto!important;
    width:100%;
  }
}

/* V8.5.9 — Login/Register field separation
   .auth-card label had higher/later specificity than .hidden and therefore
   accidentally forced registration-only labels visible on the login form. */
.auth-card label.hidden{
  display:none!important;
}
#usernameLabel.hidden,
#passwordRepeatLabel.hidden{
  display:none!important;
}

/* V8.6.0 — one-time Trader name correction */
.username-change-box{
  margin:10px 0 4px;
  padding:13px;
  border:1px solid rgba(46,108,255,.38);
  border-radius:12px;
  background:rgba(46,108,255,.06);
}
.username-change-box p{
  margin:0 0 10px;
  color:#a9b0bd;
  font-size:11px;
  line-height:1.45;
}
.username-change-box p b{color:#fff}
#saveUsernameOnce{
  border:1px solid #2e6cff;
  background:#2e6cff;
  color:#fff;
  border-radius:8px;
  padding:10px 12px;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
#profileUsername.username-editable{
  border-color:#2e6cff!important;
  background:#0b1019!important;
  color:#fff!important;
}
.username-locked-hint{
  margin:8px 0 4px;
  color:#777f8d;
  font-size:10px;
  font-weight:800;
}

/* V8.7.0 — MARKET OPEN live order impact preview */
.trade-preview .impact-title{margin-bottom:9px;color:#8f9bb0;font-size:9px;font-weight:900;letter-spacing:.11em}
.trade-preview .impact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.trade-preview .impact-side{padding:10px;border:1px solid #252d39;border-radius:9px;background:#090d13}
.trade-preview .impact-side small{display:block;color:#7e8796;font-size:8px;font-weight:900;letter-spacing:.08em;margin-bottom:3px}
.trade-preview .impact-side>b{display:block;color:#fff;font-size:11px;margin-bottom:7px}
.trade-preview .impact-price{display:flex;align-items:center;gap:6px;font-size:15px;margin-bottom:4px}
.trade-preview .impact-price span{color:#9ca5b3}.trade-preview .impact-price strong{color:#5e6877}.trade-preview .impact-price b{font-size:17px}
.trade-preview .buy-impact .impact-price b,.trade-preview .buy-impact em{color:#38d98a}
.trade-preview .sell-impact .impact-price b,.trade-preview .sell-impact em{color:#ff667a}
.trade-preview .impact-side em{display:block;font-style:normal;font-size:10px;font-weight:900}
.trade-preview .impact-side p{margin:7px 0 0;color:#aeb6c3;font-size:9px;line-height:1.35}
@media(max-width:560px){.trade-preview .impact-grid{grid-template-columns:1fr}}

/* V8.7.1 — executed trade result / actual market impact */
.order-market-impact{
  margin:14px 0;padding:14px;border:1px solid rgba(46,108,255,.34);
  border-radius:12px;background:rgba(46,108,255,.055)
}
.order-market-move{display:grid;grid-template-columns:1fr auto 1fr 1.15fr;gap:12px;align-items:end;margin-top:9px}
.order-market-move small{display:block;color:#788292;font-size:8px;font-weight:900;letter-spacing:.08em;margin-bottom:3px}
.order-market-move strong{color:#fff;font-size:18px}
.order-arrow{color:#667181;font-size:20px;padding-bottom:1px}
.order-impact-percent{padding-left:12px;border-left:1px solid #283140}
.order-impact-percent strong.positive{color:#38d98a}
.order-impact-percent strong.negative{color:#ff667a}
@media(max-width:560px){
  .order-market-move{grid-template-columns:1fr auto 1fr}
  .order-impact-percent{grid-column:1/-1;padding:10px 0 0;border-left:0;border-top:1px solid #283140}
}

/* V8.7.2 — subtle visual feedback after a MARKET OPEN trade */
.fighter{position:relative}
.fighter.trade-pulse-buy::after,
.fighter.trade-pulse-sell::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  animation:tradeCardPulse 2.5s ease-out forwards
}
.fighter.trade-pulse-buy::after{box-shadow:inset 0 0 0 1px rgba(56,217,138,.8),0 0 30px rgba(56,217,138,.22)}
.fighter.trade-pulse-sell::after{box-shadow:inset 0 0 0 1px rgba(255,102,122,.8),0 0 30px rgba(255,102,122,.20)}
.fighter .price.price-pulse-up{animation:pricePulseUp 2.3s ease-out}
.fighter .price.price-pulse-down{animation:pricePulseDown 2.3s ease-out}
@keyframes tradeCardPulse{
  0%{opacity:0;transform:scale(.995)}
  18%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1)}
}
@keyframes pricePulseUp{
  0%,100%{color:inherit;text-shadow:none}
  18%,45%{color:#38d98a;text-shadow:0 0 14px rgba(56,217,138,.35)}
}
@keyframes pricePulseDown{
  0%,100%{color:inherit;text-shadow:none}
  18%,45%{color:#ff667a;text-shadow:0 0 14px rgba(255,102,122,.32)}
}
@media(prefers-reduced-motion:reduce){
  .fighter.trade-pulse-buy::after,.fighter.trade-pulse-sell::after,
  .fighter .price.price-pulse-up,.fighter .price.price-pulse-down{animation:none}
}

/* V8.8.0 — portfolio realized / unrealized P&L */
#portfolio .portfolio-stats{grid-template-columns:repeat(7,minmax(0,1fr))}
#portfolio .portfolio-stats>div:nth-child(3),
#portfolio .portfolio-stats>div:nth-child(4){background:linear-gradient(180deg,rgba(46,108,255,.055),rgba(46,108,255,.015))}
#portfolio .portfolio-stats strong.positive,#portfolio .portfolio-stats small.positive{color:#38d98a}
#portfolio .portfolio-stats strong.negative,#portfolio .portfolio-stats small.negative{color:#ff667a}
@media(max-width:1150px){#portfolio .portfolio-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){#portfolio .portfolio-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V8.8.1 — clearer P&L wording + fitted portfolio summary labels */
#portfolio .portfolio-stats>div{
  min-width:0;
  padding-left:20px;
  padding-right:20px;
}
#portfolio .portfolio-stats>div>small:first-child{
  display:block;
  min-height:2.45em;
  font-size:10px;
  line-height:1.18;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}
#portfolio .portfolio-stats>div>strong{
  font-size:clamp(21px,1.75vw,31px);
  line-height:1.05;
  overflow-wrap:normal;
  word-break:normal;
}

/* V8.8.2 — keep portfolio Euro values on one line */
#portfolio .portfolio-stats>div>strong{
  font-size:clamp(18px,1.48vw,27px);
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:keep-all;
}
#portfolio #portfolioPerf{
  font-size:clamp(21px,1.65vw,29px);
}
@media(max-width:1150px){
  #portfolio .portfolio-stats>div>strong{font-size:clamp(20px,2.2vw,27px)}
}
@media(max-width:700px){
  #portfolio .portfolio-stats>div>strong{font-size:clamp(19px,5.5vw,26px)}
}

/* V8.9.0 — Portfolio positions UX */
.positions-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:28px 0 12px}
.positions-head h3{margin:0;font-size:24px}.positions-head p{margin:5px 0 0;color:#8f949e}
.position-sort{display:flex;align-items:center;gap:10px;color:#8f949e;font-size:10px;font-weight:900;letter-spacing:.07em}
.position-sort select{min-width:150px;padding:10px 34px 10px 12px;border:1px solid #303744;border-radius:9px;background:#11151c;color:#fff;font:inherit}
.portfolio-row .position-course{min-width:165px}
.portfolio-row .position-course b{white-space:nowrap}
.portfolio-row .position-course b span{color:#697382;padding:0 4px}
@media(max-width:800px){
  .positions-head{align-items:stretch;flex-direction:column}
  .position-sort{justify-content:space-between}
  .position-sort select{flex:1}
}

/* V8.9.1 — Trade history filters */
.trade-history-head{
  align-items:flex-end;
}
.trade-history-filter{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.trade-history-filter button{
  border:1px solid #303744;
  background:#11151c;
  color:#8f98a8;
  border-radius:999px;
  padding:8px 12px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
  cursor:pointer;
}
.trade-history-filter button.active{
  background:#2e6cff;
  border-color:#2e6cff;
  color:#fff;
}
.trade-row .trade-fighter{
  min-width:0;
}
.trade-row .trade-fighter b{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:700px){
  .trade-history-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .trade-history-filter{
    width:100%;
  }
  .trade-history-filter button{
    flex:1;
  }
}

/* V9.1.0 — Main Trader Ranking */
.ranking-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 14px}
.ranking-summary>div{padding:15px 17px;border:1px solid #262d38;border-radius:11px;background:#0d1118}
.ranking-summary small{display:block;color:#7f8998;font-size:9px;font-weight:900;letter-spacing:.07em;margin-bottom:5px}
.ranking-summary strong{font-size:21px;color:#fff;white-space:nowrap}
.ranking-pro{overflow:hidden}
.ranking-pro .rank-row{grid-template-columns:80px minmax(180px,1.5fr) minmax(150px,1fr) minmax(120px,.75fr) minmax(145px,.9fr);align-items:center}
.ranking-pro .rank-header{min-height:38px;background:#0a0d12;color:#697382;font-size:8px;font-weight:900;letter-spacing:.08em;border-bottom:1px solid #242b35}
.ranking-pro .rank-header>*{font-size:8px}
.ranking-pro .rank-place{font-size:15px}
.ranking-pro .rank-place small{color:#7e8794;font-size:9px}
.ranking-pro .rank-trader b{display:block}.ranking-pro .rank-trader small{color:#777f8d}
.ranking-pro .rank-trader em{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#2e6cff;color:#fff;font-size:7px;font-style:normal;letter-spacing:.06em;vertical-align:2px}
.ranking-pro .rank-value b{font-size:14px}
.ranking-pro .rank-gap{color:#8f98a7}
.ranking-pro .top-rank{background:linear-gradient(90deg,rgba(46,108,255,.075),transparent 45%)}
.ranking-pro .top-1{box-shadow:inset 3px 0 0 rgba(255,211,92,.85)}
.ranking-pro .top-2{box-shadow:inset 3px 0 0 rgba(198,205,216,.7)}
.ranking-pro .top-3{box-shadow:inset 3px 0 0 rgba(190,126,72,.75)}
.ranking-pro .my-rank{background:linear-gradient(90deg,rgba(46,108,255,.17),rgba(46,108,255,.035));box-shadow:inset 3px 0 0 #2e6cff}
.ranking-pro .rank-separator{padding:7px 15px;background:#111722;color:#6f8fdc;font-size:8px;font-weight:900;letter-spacing:.1em;border-top:1px solid #27334a}
@media(max-width:850px){
 .ranking-summary{grid-template-columns:repeat(2,1fr)}
 .ranking-pro .rank-row{grid-template-columns:60px minmax(140px,1fr) 125px}
 .ranking-pro .rank-hide{display:none}
}
@media(max-width:520px){
 .ranking-summary strong{font-size:18px}
 .ranking-pro .rank-row{grid-template-columns:48px minmax(120px,1fr) 108px;padding-left:9px;padding-right:9px}
 .ranking-pro .rank-value b{font-size:12px}
}

/* V9.2.0 — Special Rankings */
.special-rankings{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 18px}
.special-rank-card{padding:17px;border:1px solid #262e3a;border-radius:13px;background:linear-gradient(180deg,rgba(46,108,255,.075),rgba(12,16,23,.95) 42%)}
.special-rank-card h3{margin:4px 0 13px;font-size:17px;color:#fff}
.special-rank-list{display:flex;flex-direction:column}
.special-rank-row{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;padding:9px 0;border-top:1px solid #242b35}
.special-rank-row:first-child{border-top:0}
.special-place{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#171d27;color:#8faeff;font-size:10px}
.special-rank-row:first-child .special-place{background:#2e6cff;color:#fff}
.special-rank-row span>b{display:block;color:#fff;font-size:11px}
.special-rank-row span>small{display:block;color:#737d8c;font-size:8px;margin-top:2px}
.special-rank-row>strong{font-size:12px;white-space:nowrap}
.special-empty{color:#777f8d;font-size:10px;margin:8px 0}
@media(max-width:900px){.special-rankings{grid-template-columns:1fr}}

/* V9.3.0 — Shared FIGHTING Account */
.shared-account-note{
  margin:8px 0 0;
  color:#7f8795;
  font-size:9px;
  line-height:1.45;
  text-align:center;
}
.shared-account-note strong{color:#fff}

/* V9.4.0 — Focused Trade Impact */
.trade-impact-focus{padding:15px;border:1px solid #244477;border-radius:12px;background:linear-gradient(135deg,rgba(46,108,255,.15),rgba(12,17,25,.94) 55%)}
.trade-impact-focus.sell{border-color:#53323a;background:linear-gradient(135deg,rgba(190,60,75,.10),rgba(12,17,25,.94) 55%)}
.impact-kicker{font-size:9px;font-weight:900;letter-spacing:.09em;color:#83a8ff;margin-bottom:12px}
.trade-impact-focus.sell .impact-kicker{color:#d99099}
.impact-main{display:grid;grid-template-columns:1fr 28px 1fr 1fr;gap:10px;align-items:end}
.impact-main>div:not(.impact-arrow){padding:10px 11px;background:rgba(0,0,0,.2);border-radius:8px}
.impact-main small,.impact-facts small{display:block;color:#7d8795;font-size:8px;font-weight:900;letter-spacing:.05em;margin-bottom:4px}
.impact-main strong{font-size:17px;color:#fff;white-space:nowrap}
.impact-arrow{text-align:center;color:#71809a;font-size:20px;padding-bottom:8px}
.impact-move.positive strong{color:#56d79b}.impact-move.negative strong{color:#ff727f}
.impact-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:8px}
.impact-facts span{padding:8px 10px;border:1px solid #252d38;border-radius:8px}
.impact-facts b{font-size:11px;color:#fff;white-space:nowrap}
.impact-note{margin:9px 1px 0;color:#697382;font-size:8px;line-height:1.4}
@media(max-width:680px){
 .impact-main{grid-template-columns:1fr 22px 1fr}
 .impact-main .impact-move{grid-column:1/-1}
 .impact-facts{grid-template-columns:repeat(2,1fr)}
}

/* V9.4.3 — Safari/iPhone robust image rendering */
.fighter-photo,
.portfolio-thumb,
.order-fighter-photo{
  overflow:hidden;
}
.fighter-photo .fighter-img,
.portfolio-thumb img,
.order-fighter-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}
.fighter-photo .fighter-img{
  position:absolute;
  inset:0;
  z-index:1;
}
.fighter-photo.has-image{
  position:relative;
  background-image:none!important;
}
.fighter-photo.has-image>span,
.fighter-photo.has-image>.photo-note{
  display:none!important;
}
.fighter-photo.large .fighter-img{
  object-fit:cover;
  object-position:center top;
}
.portfolio-thumb img{
  border-radius:inherit;
}
.order-fighter-photo img{
  border-radius:inherit;
}

/* Safari: ensure lazy images inside initially offscreen cards still paint */
@supports (-webkit-touch-callout:none){
  .fighter-photo .fighter-img{
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
  }
}
