:root{--terminal-bg:#05080d;--terminal-panel:#0b1119;--terminal-line:#1a2737;--terminal-green:#23d990;--terminal-red:#ff6478;--terminal-cyan:#42c8ff;--terminal-amber:#f1c75b}
body{background:radial-gradient(circle at 10% 0%,rgba(66,200,255,.07),transparent 26%),radial-gradient(circle at 90% 0%,rgba(35,217,144,.05),transparent 24%),var(--terminal-bg)}
.card,.metrics>div,.strip>div{background:linear-gradient(180deg,#0d141e,#080d14);border-color:var(--terminal-line)}
header{border-bottom:1px solid rgba(255,255,255,.06)}
.badge.running{color:var(--terminal-green);border-color:rgba(35,217,144,.24);background:rgba(35,217,144,.07)}
.pair{background:#08101a;border-color:#19283a}.pair.ready{border-color:rgba(35,217,144,.25)}.pair.watch{border-color:rgba(241,199,91,.25)}
.money,.levels b,.riskbox b{font-variant-numeric:tabular-nums}
.primary{background:linear-gradient(135deg,#36edaa,#2ecb8c);color:#04110b}
.secondary,input,select{background:#08101a;border-color:#1c2b3e}

.trading-chart-shell{margin:0 0 16px;border:1px solid #19283a;border-radius:16px;overflow:hidden;background:#05090f}
.trading-chart-head{height:40px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 13px;border-bottom:1px solid #162232;background:#08101a;color:#788a9e;font-size:10px}
.trading-chart-head b{color:#dce7f2;font-size:11px;letter-spacing:.03em}
.trading-chart-head .market-live{display:inline-flex;align-items:center;gap:7px}
.trading-chart-head .market-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--terminal-green);box-shadow:0 0 10px rgba(35,217,144,.7)}
#tvChart{height:360px;width:100%;background:#05090f}
#tvChart .tradingview-widget-container,#tvChart .tradingview-widget-container__widget{height:100%!important;width:100%!important}
.levels>div:nth-child(1) b{color:var(--terminal-amber)}
.levels>div:nth-child(2) b{color:var(--terminal-red)}
.levels>div:nth-child(3) b{color:var(--terminal-green)}
.score.good{border-color:rgba(35,217,144,.72);color:var(--terminal-green)}
.score.mid{border-color:rgba(241,199,91,.72);color:var(--terminal-amber)}
@media(max-width:650px){#tvChart{height:290px}.trading-chart-head{padding:0 10px}}

.trade-visual{
  display:grid;
  grid-template-columns:minmax(0,1fr) 240px;
  gap:12px;
  margin:4px 0 18px;
}
.chart-terminal,.setup-map{
  border:1px solid #19283a;
  border-radius:16px;
  overflow:hidden;
  background:#05090f;
  box-shadow:0 14px 30px rgba(0,0,0,.18);
}
.chart-terminal-head,.setup-map-head{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 12px;
  border-bottom:1px solid #162232;
  background:linear-gradient(180deg,#0c141e,#081019);
}
.chart-terminal-head>div:first-child{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.chart-terminal-head b{
  color:#eaf2fa;
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.market-live{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:8px;
  font-weight:900;
  letter-spacing:.13em;
  color:var(--terminal-green);
}
.market-live:before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--terminal-green);
  box-shadow:0 0 11px rgba(35,217,144,.72);
}
.chart-actions{display:flex;align-items:center;gap:5px;flex:none}
.tf,.tv-open{
  height:27px;
  min-width:34px;
  padding:0 8px;
  display:grid;
  place-items:center;
  border:1px solid #1b2a3c;
  border-radius:7px;
  background:#09111a;
  color:#718399;
  font-size:9px;
  font-weight:850;
  text-decoration:none;
}
.tf:hover,.tv-open:hover{border-color:#2a4058;color:#dce7f2}
.tf.active{
  color:var(--terminal-cyan);
  border-color:rgba(66,200,255,.34);
  background:rgba(66,200,255,.08);
}
.tv-chart{
  width:100%;
  height:382px;
  background:
    linear-gradient(rgba(66,200,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(66,200,255,.018) 1px,transparent 1px),
    #05090f;
  background-size:28px 28px;
}
.tv-chart iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#05090f;
}
.chart-loading{
  height:100%;
  display:grid;
  place-items:center;
  color:#607287;
  font-size:11px;
}
.setup-map{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.setup-map-head span{
  color:#667a91;
  font-size:8px;
  font-weight:900;
  letter-spacing:.13em;
}
.setup-map-head b{
  font-size:10px;
  padding:4px 7px;
  border-radius:7px;
  color:#d9e4ef;
  background:#0c1620;
  border:1px solid #1c2d40;
}
.setup-map>small{
  color:#586a80;
  font-size:8px;
  line-height:1.5;
  padding:0 12px 12px;
}
.trade-map{
  position:relative;
  flex:1;
  min-height:310px;
  margin:12px 12px 8px 26px;
  border-left:1px dashed #2a3a4d;
}
.trade-map-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  text-align:center;
  color:#596b80;
  font-size:9px;
}
.map-level{
  position:absolute;
  left:-1px;
  right:0;
  transform:translateY(-50%);
}
.map-level-line{
  height:1px;
  position:relative;
  background:#314258;
}
.map-level-line:before{
  content:"";
  position:absolute;
  left:-4px;
  top:-3px;
  width:7px;height:7px;border-radius:50%;
  background:#75879b;
  box-shadow:0 0 0 3px #071019;
}
.map-level-copy{
  display:flex;
  justify-content:space-between;
  gap:6px;
  padding:4px 0 0 8px;
  font-size:8px;
  white-space:nowrap;
}
.map-level-copy span{color:#697d93}
.map-level-copy b{color:#d9e4ef;font-variant-numeric:tabular-nums}
.map-level.stop .map-level-line{background:rgba(255,100,120,.75)}
.map-level.stop .map-level-line:before{background:var(--terminal-red)}
.map-level.stop .map-level-copy span,.map-level.stop .map-level-copy b{color:#ff8595}
.map-level.entry .map-level-line{height:3px;background:var(--terminal-amber);box-shadow:0 0 14px rgba(241,199,91,.2)}
.map-level.entry .map-level-line:before{background:var(--terminal-amber);top:-2px}
.map-level.entry .map-level-copy span,.map-level.entry .map-level-copy b{color:#ffd976}
.map-level.target .map-level-line{background:rgba(35,217,144,.78)}
.map-level.target .map-level-line:before{background:var(--terminal-green)}
.map-level.target .map-level-copy span,.map-level.target .map-level-copy b{color:#59efb1}
.map-level.current .map-level-line{background:rgba(66,200,255,.68)}
.map-level.current .map-level-line:before{background:var(--terminal-cyan)}
.map-level.current .map-level-copy span,.map-level.current .map-level-copy b{color:#7ad9ff}
.trade-direction{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  font-size:26px;
  font-weight:900;
  opacity:.18;
}
.trade-direction.buy{color:var(--terminal-green)}
.trade-direction.sell{color:var(--terminal-red)}
@media(max-width:1050px){
  .trade-visual{grid-template-columns:1fr}
  .setup-map{min-height:220px}
  .trade-map{min-height:170px}
}
@media(max-width:650px){
  .tv-chart{height:300px}
  .chart-terminal-head{align-items:flex-start;flex-direction:column}
  .chart-actions{width:100%}
  .tf{flex:1}
  .tv-open{width:34px}
}

/* terminal7: operational setup refinement */
.maincard{min-height:560px}
.trade-visual{grid-template-columns:minmax(0,1fr) 188px;gap:10px}
.tv-chart{height:430px}
.setup-map{min-width:0}
.trade-map{min-height:350px;margin-left:22px}
.setup-ops{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin:0 0 12px;
  padding:11px 13px;
  border:1px solid #172638;
  border-radius:13px;
  background:linear-gradient(180deg,#0b131d,#081019);
}
.setup-ops-main{display:flex;align-items:center;gap:11px;min-width:0}
.setup-ops-main>div{display:grid;gap:3px;min-width:0}
.setup-ops-main b{font-size:12px;color:#dce7f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.setup-ops-main small,.setup-time small{color:#718398;font-size:9px}
.setup-state{
  flex:none;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid #26384c;
  background:#0c1722;
  color:#8fa3b8;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
}
.setup-state.waiting{color:#ffd978;border-color:rgba(241,199,91,.3);background:rgba(241,199,91,.07)}
.setup-state.approach{color:#8fdcff;border-color:rgba(66,200,255,.28);background:rgba(66,200,255,.07)}
.setup-state.ready{color:#55efb0;border-color:rgba(35,217,144,.3);background:rgba(35,217,144,.08);box-shadow:0 0 18px rgba(35,217,144,.06)}
.setup-state.invalid{color:#ff8797;border-color:rgba(255,100,120,.3);background:rgba(255,100,120,.08)}
.setup-state.done{color:#b7a6ff;border-color:rgba(183,166,255,.3);background:rgba(183,166,255,.07)}
.setup-time{display:grid;gap:2px;text-align:right;flex:none}
.setup-time>span{font-size:7px;letter-spacing:.13em;color:#65788e;font-weight:900}
.setup-time>b{font-size:10px;color:#d9e5ef}
.market-context{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:10px 0 13px;
}
.context-pill{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:25px;
  padding:0 8px;
  border:1px solid #1a2a3c;
  border-radius:8px;
  background:#08111a;
  color:#91a3b7;
  font-size:9px;
}
.context-pill b{font-size:8px;letter-spacing:.06em;color:#63778e}
.context-pill.ctx-buy{color:#55efb0;border-color:rgba(35,217,144,.2)}
.context-pill.ctx-sell{color:#ff8998;border-color:rgba(255,100,120,.2)}
.context-pill.ctx-wait{color:#ffd978;border-color:rgba(241,199,91,.18)}
.context-pill.snapshot{margin-left:auto;color:#6e8297}
.levels>div{min-width:0}
.levels small{
  display:block;
  margin-top:5px;
  color:#63768b;
  font-size:8px;
  line-height:1.35;
  font-variant-numeric:tabular-nums;
}
.map-band{
  position:absolute;
  left:0;
  right:0;
  z-index:0;
  min-height:5px;
  border-radius:3px;
  overflow:hidden;
}
.map-band span{
  position:absolute;
  right:4px;
  top:3px;
  font-size:6px;
  font-weight:900;
  letter-spacing:.1em;
  opacity:.72;
}
.map-band.reward{background:linear-gradient(90deg,rgba(35,217,144,.03),rgba(35,217,144,.14));border-right:2px solid rgba(35,217,144,.34)}
.map-band.reward span{color:#4de6a8}
.map-band.risk{background:linear-gradient(90deg,rgba(255,100,120,.03),rgba(255,100,120,.13));border-right:2px solid rgba(255,100,120,.32)}
.map-band.risk span{color:#ff8191}
.map-band.entry-zone{background:rgba(241,199,91,.14);border-top:1px solid rgba(241,199,91,.6);border-bottom:1px solid rgba(241,199,91,.6);z-index:1}
.map-band.entry-zone span{color:#ffd978;top:50%;transform:translateY(-50%)}
.map-level{z-index:3}
.map-level-copy{padding-right:3px}
.setup-map-head b.buy{color:#55efb0;border-color:rgba(35,217,144,.25);background:rgba(35,217,144,.06)}
.setup-map-head b.sell{color:#ff8998;border-color:rgba(255,100,120,.25);background:rgba(255,100,120,.06)}
.chart-terminal-head:after{
  content:"EMA20";
  font-size:7px;
  font-weight:900;
  letter-spacing:.1em;
  color:#8ba0b5;
  border:1px solid #1a2a3c;
  border-radius:6px;
  padding:4px 6px;
  margin-left:auto;
}
.chart-actions{margin-left:0}
@media(max-width:1200px){
  .trade-visual{grid-template-columns:minmax(0,1fr) 170px}
}
@media(max-width:1050px){
  .trade-visual{grid-template-columns:1fr}
  .tv-chart{height:390px}
  .setup-map{min-height:235px}
  .trade-map{min-height:185px}
}
@media(max-width:650px){
  .setup-ops{align-items:flex-start;flex-direction:column}
  .setup-time{text-align:left}
  .context-pill.snapshot{margin-left:0}
  .tv-chart{height:320px}
}

/* terminal8: compact full-width trading workspace */
.wrap{
  width:min(1480px,calc(100% - 28px));
  padding:18px 0 42px;
}
header{
  padding:2px 2px 14px;
  margin-bottom:10px;
}
nav{
  margin-bottom:22px;
}
.title{
  margin-bottom:14px;
}
.title h2{
  font-size:28px;
}
.strip{
  margin-bottom:12px;
}
.strip>div{
  padding:14px 16px;
}

/* Main setup uses the whole content width */
.dashgrid{
  grid-template-columns:1fr;
  gap:12px;
}
.maincard{
  min-height:0;
  padding:18px;
}
.cardhead{
  margin-bottom:14px;
}

/* Operational cards become a compact horizontal band */
.dashgrid>aside{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  align-items:start;
}
.dashgrid>aside .compact{
  min-height:0;
  height:auto;
  padding:16px 18px;
}
.dashgrid>aside .money{
  font-size:25px;
  margin:8px 0 10px;
}
.dashgrid>aside .row{
  padding:4px 0;
}
.dashgrid>aside .link{
  padding-top:7px;
}
.dashgrid>aside .gate{
  margin-top:8px;
  padding:10px 12px;
}

/* Use more width for the chart, less for the visual map */
.trade-visual{
  grid-template-columns:minmax(0,1fr) 200px;
  gap:10px;
  margin-bottom:12px;
}
.tv-chart{
  height:460px;
}
.trade-map{
  min-height:380px;
}
.setup-map>small{
  padding-bottom:9px;
}

/* Compact the setup information below the chart */
.setup-ops{
  margin-bottom:10px;
  padding:9px 11px;
}
.decisionline{
  margin:10px 0 8px;
}
.summary{
  margin:7px 0 9px;
  line-height:1.45;
}
.market-context{
  margin:7px 0 10px;
}
.levels>div{
  padding:12px 13px;
}
.riskbox{
  margin-top:9px;
}
.riskbox>div{
  padding:11px 13px;
}
.chips{
  margin-top:9px;
}

/* Radar becomes a tighter watchlist */
.radarcard{
  margin-top:12px;
  padding:16px 18px;
}
.radarcard .cardhead{
  margin-bottom:12px;
}
.pairs{
  gap:8px;
}
.pair{
  padding:10px 12px;
}

/* Bank tab density */
.metrics{
  gap:10px;
  margin-bottom:12px;
}
.metrics>div{
  padding:14px 16px;
}
.bankgrid{
  gap:12px;
  margin-bottom:12px;
}
.chart{
  min-height:300px;
}

/* Wide desktop: maximize the market view */
@media(min-width:1280px){
  .tv-chart{height:500px}
  .trade-visual{grid-template-columns:minmax(0,1fr) 210px}
  .trade-map{min-height:420px}
}

/* Medium desktop */
@media(max-width:1050px){
  .dashgrid>aside{grid-template-columns:1fr 1fr}
  .trade-visual{grid-template-columns:1fr}
  .tv-chart{height:390px}
  .setup-map{min-height:220px}
  .trade-map{min-height:170px}
}

/* Mobile */
@media(max-width:650px){
  .wrap{width:calc(100% - 16px);padding-top:12px}
  .dashgrid>aside{grid-template-columns:1fr}
  .maincard{padding:14px}
  .tv-chart{height:310px}
  .strip>div{padding:12px}
}

/* terminal9: single-screen trading desk */
.wrap{
  width:min(1500px,calc(100% - 24px));
  padding:12px 0 28px;
}
header{padding-bottom:10px;margin-bottom:8px}
nav{margin-bottom:14px}
.title{margin-bottom:10px}
.title .tag{margin-bottom:3px}
.title h2{font-size:26px}
.strip{margin-bottom:10px}
.strip>div{padding:11px 14px}
.strip span{margin-bottom:4px;font-size:8px}
.strip b{font-size:12px}

.dashgrid{display:block}
.maincard{padding:14px 16px 15px}
.maincard>.cardhead{margin-bottom:9px}
.maincard>.cardhead .tag{margin-bottom:3px}
.maincard>.cardhead h3{font-size:18px}
.score{width:52px;height:52px;border-width:4px;font-size:13px}

.setup-ops{
  margin:0 0 8px;
  padding:7px 9px;
  min-height:42px;
}
.setup-ops-main{gap:8px}
.setup-ops-main b{font-size:10px}
.setup-ops-main small,.setup-time small{font-size:8px}
.setup-time>b{font-size:9px}

.trade-visual{
  grid-template-columns:minmax(0,1.8fr) minmax(330px,.72fr);
  gap:9px;
  margin:0;
  align-items:stretch;
}
.chart-terminal{min-width:0}
.chart-terminal-head{
  min-height:38px;
  padding:6px 10px;
}
.chart-terminal-head b{font-size:11px}
.tf,.tv-open{height:24px;min-width:31px;padding:0 7px}
.tv-chart{height:350px}

.terminal-side{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  grid-template-areas:
    "map decision"
    "map context"
    "map levels"
    "map risk"
    "map chips"
    "map details";
  gap:7px 9px;
  align-content:start;
  min-width:0;
}
.terminal-side>.setup-map{grid-area:map;min-height:350px}
.terminal-side>.decisionline{grid-area:decision}
.terminal-side>.market-context{grid-area:context}
.terminal-side>.levels{grid-area:levels}
.terminal-side>.riskbox{grid-area:risk}
.terminal-side>.chips{grid-area:chips}
.terminal-side>.analysis-details{grid-area:details}

.setup-map-head{min-height:36px;padding:6px 8px}
.setup-map-head span{font-size:7px}
.setup-map-head b{font-size:8px;padding:3px 5px}
.trade-map{min-height:286px;margin:8px 8px 6px 18px}
.setup-map>small{display:none}
.map-level-copy{font-size:7px;padding-left:6px}
.map-band span{font-size:5px}

.decisionline{
  margin:0;
  padding:0 0 6px;
  border-bottom:1px solid #142131;
}
.decision{padding:5px 7px;font-size:9px}
.decisionline small{font-size:9px}

.market-context{
  margin:0;
  gap:4px;
}
.context-pill{
  min-height:21px;
  padding:0 6px;
  font-size:8px;
  border-radius:6px;
}
.context-pill b{font-size:7px}
.context-pill.snapshot{margin-left:0}

.terminal-side .levels{
  grid-template-columns:1fr 1fr;
  border-radius:9px;
}
.terminal-side .levels>div{
  padding:8px 9px;
  border-right:1px solid var(--terminal-line);
  border-bottom:1px solid var(--terminal-line);
}
.terminal-side .levels>div:nth-child(2n){border-right:0}
.terminal-side .levels>div:nth-last-child(-n+2){border-bottom:0}
.terminal-side .levels span{font-size:7px;margin-bottom:3px}
.terminal-side .levels b{font-size:11px}
.terminal-side .levels small{font-size:7px;margin-top:3px}

.terminal-side .riskbox{
  margin:0;
  border-radius:9px;
}
.terminal-side .riskbox>div{padding:8px 9px}
.terminal-side .riskbox span{font-size:7px;margin-bottom:3px}
.terminal-side .riskbox b{font-size:14px}

.terminal-side .chips{
  margin:0;
  gap:4px;
  max-height:52px;
  overflow:hidden;
}
.terminal-side .chip{padding:4px 6px;font-size:7px}

.analysis-details{
  border:1px solid #18283a;
  border-radius:8px;
  background:#081019;
  overflow:hidden;
}
.analysis-details summary{
  cursor:pointer;
  list-style:none;
  padding:6px 8px;
  color:#8092a6;
  font-size:8px;
  font-weight:850;
  letter-spacing:.04em;
}
.analysis-details summary::-webkit-details-marker{display:none}
.analysis-details summary:after{content:"+";float:right;color:#61758b}
.analysis-details[open] summary:after{content:"−"}
.analysis-details .summary{
  margin:0;
  padding:7px 8px;
  border-top:1px solid #142131;
  font-size:8px;
  line-height:1.45;
  color:#96a6b8;
}

/* Everything below the setup fits in one compact footer row */
.dashboard-footer{
  display:grid;
  grid-template-columns:210px 260px minmax(0,1fr);
  gap:9px;
  margin-top:9px;
  align-items:stretch;
}
.dashboard-footer .card{
  border-radius:14px;
  padding:11px 12px;
  min-height:0;
}
.dashboard-footer .tag{font-size:8px;margin-bottom:4px}
.footer-bank .money{
  font-size:20px;
  margin:3px 0 5px;
}
.footer-inline{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color:#6f8195;
  font-size:8px;
}
.footer-inline b{color:#e8eff6;margin-left:3px}
.footer-bank .link{
  padding-top:4px;
  font-size:9px;
}
.footer-discipline .gate{
  margin:4px 0 0;
  padding:7px 8px;
}
.footer-discipline .gate b{font-size:10px}
.footer-discipline .gate p{font-size:8px;margin-top:2px}
.footer-discipline .gate i{width:7px;height:7px;margin-top:4px}

.dashboard-footer .radarcard{margin:0}
.radar-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
}
.radar-head .tag{margin:0}
.radar-head small{color:#64778c;font-size:8px}
.dashboard-footer .pairs{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:5px;
}
.dashboard-footer .pair{
  padding:7px 8px;
  border-radius:8px;
}
.dashboard-footer .pair b{font-size:9px}
.dashboard-footer .pair span{font-size:7px;margin-top:2px}

/* Keep the whole operational dashboard near one viewport on normal desktop */
@media(min-width:1100px) and (min-height:760px){
  #dash{min-height:calc(100vh - 112px)}
}

@media(max-width:1250px){
  .trade-visual{grid-template-columns:minmax(0,1.45fr) minmax(315px,.8fr)}
  .terminal-side{grid-template-columns:135px minmax(0,1fr)}
  .dashboard-footer{grid-template-columns:190px 235px minmax(0,1fr)}
}
@media(max-width:1050px){
  .trade-visual{grid-template-columns:1fr}
  .tv-chart{height:360px}
  .terminal-side{
    grid-template-columns:170px minmax(0,1fr);
    grid-template-areas:
      "map decision"
      "map context"
      "map levels"
      "map risk"
      "map chips"
      "map details";
  }
  .terminal-side>.setup-map{min-height:250px}
  .trade-map{min-height:195px}
  .dashboard-footer{grid-template-columns:1fr 1fr}
  .dashboard-footer .radarcard{grid-column:1/-1}
}
@media(max-width:700px){
  .terminal-side{
    grid-template-columns:1fr;
    grid-template-areas:"decision" "context" "map" "levels" "risk" "chips" "details";
  }
  .terminal-side>.setup-map{min-height:220px}
  .dashboard-footer{grid-template-columns:1fr}
  .dashboard-footer .radarcard{grid-column:auto}
  .dashboard-footer .pairs{grid-template-columns:repeat(2,1fr)}
}

.setup-state.research{color:#ff8797;border-color:rgba(255,100,120,.34);background:rgba(255,100,120,.09)}
.setup-state.validating{color:#ffd978;border-color:rgba(241,199,91,.3);background:rgba(241,199,91,.08)}
.context-pill.bt-rejected{color:#ff8797;border-color:rgba(255,100,120,.26);background:rgba(255,100,120,.06)}
.context-pill.bt-validating{color:#ffd978;border-color:rgba(241,199,91,.24);background:rgba(241,199,91,.06)}
.context-pill.bt-approved{color:#55efb0;border-color:rgba(35,217,144,.26);background:rgba(35,217,144,.06)}

.score.research{border-color:rgba(255,100,120,.55);color:#ff8797}
.chart-terminal-head:after{display:none!important}

.paper-validation{margin-top:7px;padding-top:7px;border-top:1px solid #182536}
.paper-head{display:grid;grid-template-columns:auto auto 1fr;gap:6px;align-items:center;font-size:8px;color:#71849a}
.paper-head>b{font-size:10px;color:#e8eff6;font-variant-numeric:tabular-nums}
.paper-state{justify-self:end;font-style:normal;font-size:7px;font-weight:800;letter-spacing:.08em;color:#ffd978}
.paper-state.pass{color:#55efb0}.paper-state.fail{color:#ff8797}
.paper-bar{height:3px;margin:5px 0;background:#111d2b;border-radius:999px;overflow:hidden}
.paper-bar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#29c9a0,#65e6bd);border-radius:999px;transition:width .35s ease}
.paper-validation small{display:block;color:#687b90;font-size:7px;line-height:1.3}

/* terminal14 · A+ selector workspace */
.selector-board{
  border:1px solid #172536;
  border-radius:12px;
  background:linear-gradient(180deg,#09111b,#070d14);
  padding:9px 10px;
  margin:0 0 9px;
}
.selector-board-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px
}
.selector-board-head>div{display:flex;align-items:center;gap:7px;min-width:0}
.selector-board-head .tag{margin:0;font-size:7px}
.selector-board-head b{font-size:10px;color:#e5edf5;white-space:nowrap}
.selector-news{
  font-size:6.5px;font-weight:800;letter-spacing:.08em;color:#d8b75d;
  border:1px solid rgba(216,183,93,.22);background:rgba(216,183,93,.06);
  border-radius:999px;padding:3px 6px;white-space:nowrap
}
.selector-pairs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:7px}
.selector-pair{
  appearance:none;border:1px solid #18283a;background:#081019;border-radius:8px;
  display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;
  gap:1px 6px;text-align:left;padding:6px 7px;color:#8092a6;cursor:pointer
}
.selector-pair:hover,.selector-pair.active{border-color:#315271;background:#0b1622}
.selector-pair b{font-size:8px;color:#e5edf5}.selector-pair span{font-size:6.5px;grid-column:1}
.selector-pair em{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;font-size:13px;font-weight:850;color:#8ca1b7}
.selector-pair.a_plus{border-color:rgba(35,217,144,.35)}.selector-pair.a_plus em{color:#55efb0}
.selector-pair.wait_confirmation,.selector-pair.watchlist{border-color:rgba(241,199,91,.28)}
.selector-pair.wait_confirmation em,.selector-pair.watchlist em{color:#ffd978}
.selector-pair.no_trade em{color:#6f8296}
.selector-reading{display:grid;grid-template-columns:235px minmax(0,1fr);gap:8px 10px;align-items:start}
.selector-summary{min-width:0}
.selector-summary p{font-size:7.5px;color:#8295a9;line-height:1.4;margin:5px 0 0}
.selector-decision{
  display:inline-flex;border-radius:999px;padding:4px 7px;font-size:7px;font-weight:900;letter-spacing:.08em;
  border:1px solid #2b3a4a;color:#9aabbb;background:#0b131d
}
.selector-decision.a_plus{color:#55efb0;border-color:rgba(35,217,144,.35);background:rgba(35,217,144,.07)}
.selector-decision.wait_confirmation,.selector-decision.watchlist{color:#ffd978;border-color:rgba(241,199,91,.3);background:rgba(241,199,91,.06)}
.selector-decision.no_trade{color:#ff8797;border-color:rgba(255,100,120,.24);background:rgba(255,100,120,.05)}
.selector-factors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.selector-factor{min-width:0;border:1px solid #142232;border-radius:7px;padding:5px 6px;background:#071019}
.selector-factor>div{display:flex;justify-content:space-between;gap:4px;align-items:center}
.selector-factor span{font-size:6.5px;color:#71849a}.selector-factor b{font-size:7px;color:#dbe5ee;font-variant-numeric:tabular-nums}
.selector-factor>i{display:block;height:2px;margin:4px 0;background:#132131;border-radius:999px;overflow:hidden}
.selector-factor>i>u{display:block;height:100%;background:#4aa7c8;border-radius:999px;text-decoration:none}
.selector-factor small{display:block;font-size:6px;color:#5f7388;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.selector-blockers{
  grid-column:1/-1;display:flex;gap:4px;flex-wrap:wrap;max-height:37px;overflow:hidden
}
.selector-blocker,.selector-positive,.selector-ok{
  font-size:6.5px;border-radius:999px;padding:3px 6px;border:1px solid #1c2a39
}
.selector-blocker{color:#ff8797;border-color:rgba(255,100,120,.2);background:rgba(255,100,120,.04)}
.selector-positive,.selector-ok{color:#55dcb0;border-color:rgba(35,217,144,.18);background:rgba(35,217,144,.04)}
.context-pill.selector-chip{color:#8ad3ff;border-color:rgba(74,167,200,.28);background:rgba(74,167,200,.06)}
.context-pill.news-manual{color:#ffd978;border-color:rgba(241,199,91,.22);background:rgba(241,199,91,.05)}

@media(max-width:1050px){
  .selector-reading{grid-template-columns:1fr}
  .selector-factors{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:700px){
  .selector-pairs{grid-template-columns:repeat(2,1fr)}
  .selector-factors{grid-template-columns:repeat(2,1fr)}
  .selector-board-head{align-items:flex-start}
  .selector-news{white-space:normal;text-align:right}
}


/* terminal16 · readable clean decision workspace */
html{font-size:16px}
body{font-size:12px;line-height:1.5}
button,input,select,textarea,label{font-size:12px}
small{font-size:12px}

.wrap{
  width:min(1380px,calc(100% - 32px));
  padding:16px 0 32px;
}
header{padding:4px 2px 14px;margin-bottom:10px}
.brand strong{font-size:15px}
.private,.badge,.nav{font-size:12px}
nav{margin-bottom:18px}
.nav{padding:9px 14px}

.title{margin-bottom:12px}
.title .tag,.tag{font-size:11px;letter-spacing:.08em}
.title h2{font-size:28px;line-height:1.15}
.title small,.title small b{font-size:12px}

.strip{
  grid-template-columns:1fr 1fr;
  margin-bottom:12px;
}
.strip>div{padding:12px 14px}
.strip>div:nth-child(3),
.strip>div:nth-child(4){display:none}
.strip span{font-size:12px;margin-bottom:3px}
.strip b{font-size:14px}

.maincard{
  padding:16px;
  border-radius:16px;
}
.maincard>.cardhead{margin-bottom:12px}
.maincard>.cardhead .tag{font-size:11px}
.maincard>.cardhead h3{font-size:22px}
.score{
  width:auto;height:auto;min-width:64px;
  border:1px solid #26384c;border-radius:10px;
  padding:8px 10px;font-size:16px;
  display:flex;align-items:center;justify-content:center;
}

/* selector */
.selector-board{
  padding:12px;
  margin-bottom:12px;
  border-radius:14px;
}
.selector-board-head{margin-bottom:10px}
.selector-board-head .tag{font-size:11px}
.selector-board-head b{font-size:14px}
.selector-news{font-size:11px;padding:5px 8px}
.selector-pairs{gap:8px;margin-bottom:10px}
.selector-pair{
  padding:10px 11px;
  border-radius:10px;
  gap:4px 8px;
}
.selector-pair b{font-size:13px}
.selector-pair span{font-size:12px}
.selector-pair em{font-size:18px}
.selector-reading{
  grid-template-columns:minmax(230px,.65fr) minmax(0,1fr);
  gap:10px 14px;
}
.selector-summary p{font-size:12px;line-height:1.5;margin-top:8px}
.selector-decision{
  padding:7px 10px;
  font-size:13px;
  border-radius:10px;
}
.selector-factors{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:flex-start;
}
.simple-check{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 10px;
  border-radius:9px;
  border:1px solid #263648;
  background:#0a121b;
  color:#94a7ba;
  font-size:12px;
  font-weight:800;
}
.simple-check.ok{
  color:#55efb0;
  border-color:rgba(35,217,144,.28);
  background:rgba(35,217,144,.06);
}
.simple-check.off{
  color:#ffd978;
  border-color:rgba(241,199,91,.25);
  background:rgba(241,199,91,.05);
}
.selector-blockers{
  max-height:none;
  gap:7px;
  margin-top:2px;
}
.selector-blocker,.selector-positive,.selector-ok{
  font-size:12px;
  padding:5px 8px;
}

/* main action */
.clean-setup{margin-top:0}
.action-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px;
  border:1px solid #203247;
  border-radius:14px;
  background:linear-gradient(180deg,#0b1520,#08111a);
  margin-bottom:12px;
}
.action-panel>div:first-child{min-width:0}
.action-panel .tag{display:block;margin-bottom:7px}
.action-panel .setup-state{
  display:block;
  width:max-content;
  max-width:100%;
  padding:8px 12px;
  font-size:20px;
  border-radius:10px;
}
.action-panel p{
  margin:9px 0 0;
  color:#9aabbd;
  font-size:13px;
  line-height:1.5;
}
.action-side{
  min-width:190px;
  display:grid;
  gap:7px;
  justify-items:end;
}
.action-side .decision{
  padding:8px 11px;
  font-size:15px;
  border-radius:9px;
}
.action-side small{font-size:12px;color:#71849a}

.entry-plan{
  display:grid;
  grid-template-columns:.8fr 1.5fr 1fr 1fr .7fr;
  border:1px solid #19293b;
  border-radius:12px;
  overflow:hidden;
  margin-bottom:12px;
  background:#081019;
}
.entry-plan>div{
  min-width:0;
  padding:12px 13px;
  border-right:1px solid #19293b;
}
.entry-plan>div:last-child{border-right:0}
.entry-plan span{
  display:block;
  color:#73879c;
  font-size:12px;
  margin-bottom:4px;
}
.entry-plan b{
  display:block;
  color:#e4edf5;
  font-size:15px;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.entry-plan small{
  display:block;
  color:#6f8297;
  font-size:11px;
  margin-top:4px;
}

.simple-context{
  display:flex;
  gap:10px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.market-context{margin:0;gap:7px}
.context-pill{
  min-height:32px;
  padding:0 9px;
  font-size:12px;
  border-radius:8px;
}
.context-pill b{font-size:11px}
.chips{margin:0;gap:6px}
.chip{font-size:12px;padding:6px 8px}

.clean-details{
  margin-top:6px;
  border-radius:10px;
}
.clean-details summary{
  padding:10px 12px;
  font-size:12px;
}
.clean-details .summary{
  font-size:12px;
  line-height:1.55;
  padding:10px 12px 4px;
}
.clean-details>small{
  display:inline-block;
  padding:4px 12px 10px;
  color:#71849a;
  font-size:11px;
}
.clean-empty{
  min-height:170px;
  display:grid;
  place-content:center;
  text-align:center;
}
.clean-empty b{
  font-size:24px;
  color:#ff8797;
}
.clean-empty p{
  max-width:560px;
  font-size:13px;
  color:#879aac;
  margin:8px auto 0;
}

/* compact footer, larger type */
.dashboard-footer{
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}
.dashboard-footer .card{padding:13px 14px}
.dashboard-footer .tag{font-size:11px}
.footer-bank .money{font-size:24px;margin:4px 0 7px}
.footer-inline{font-size:12px;gap:14px}
.footer-bank .link{font-size:12px;padding-top:7px}
.footer-discipline .gate{padding:10px 11px}
.footer-discipline .gate b{font-size:13px}
.footer-discipline .gate p{font-size:12px;line-height:1.45}
.paper-validation{margin-top:10px;padding-top:10px}
.paper-head{font-size:12px}
.paper-head>b{font-size:13px}
.paper-state{font-size:11px}
.paper-bar{height:5px;margin:8px 0}
.paper-validation small{font-size:12px}

/* bank readability */
.metrics>div{padding:15px 16px}
.metrics span,.metrics small{font-size:12px}
.metrics b{font-size:18px}
.cardhead .tag{font-size:11px}
.cardhead h3{font-size:18px}
.row,.riskbox span,.levels span{font-size:12px}
.table table{font-size:12px}
.table th,.table td{padding:10px 8px}
.emptyrow{font-size:12px}
.preview{font-size:12px}
dialog label,dialog input,dialog select,dialog button{font-size:12px}

/* embedded chart/map intentionally removed in terminal16 */
.chart-terminal,.setup-map,.trade-visual{display:none!important}

@media(max-width:900px){
  .selector-reading{grid-template-columns:1fr}
  .entry-plan{grid-template-columns:1fr 1fr}
  .entry-plan>div{border-bottom:1px solid #19293b}
  .action-panel{align-items:flex-start;flex-direction:column}
  .action-side{justify-items:start;min-width:0}
}
@media(max-width:650px){
  .wrap{width:calc(100% - 18px);padding-top:10px}
  .selector-pairs{grid-template-columns:1fr 1fr}
  .entry-plan{grid-template-columns:1fr}
  .entry-plan>div{border-right:0}
  .dashboard-footer{grid-template-columns:1fr}
  .title h2{font-size:24px}
  .action-panel .setup-state{font-size:18px}
}

/* terminal17 · automatic economic news guard */
.selector-news.news-auto{color:#9fb1c3;border-color:#25384c;background:#0c1620}
.selector-news.news-clear{color:#55efb0;border-color:rgba(35,217,144,.30);background:rgba(35,217,144,.07)}
.selector-news.news-watch{color:#ffd978;border-color:rgba(241,199,91,.30);background:rgba(241,199,91,.07)}
.selector-news.news-block{color:#ff8797;border-color:rgba(255,100,120,.32);background:rgba(255,100,120,.08)}
.context-pill.news-clear{color:#55efb0;border-color:rgba(35,217,144,.25);background:rgba(35,217,144,.05)}
.context-pill.news-watch{color:#ffd978;border-color:rgba(241,199,91,.25);background:rgba(241,199,91,.05)}
.context-pill.news-block{color:#ff8797;border-color:rgba(255,100,120,.28);background:rgba(255,100,120,.06)}
.context-pill.news-unknown{color:#9fb1c3}

/* terminal18 · dual-source news confirmation */
.selector-news-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.news-credit{font-size:10px;color:#6f8297;text-decoration:none;border-bottom:1px dotted #405267;line-height:1.2}
.news-credit:hover{color:#a8bacb}
@media(max-width:700px){
  .selector-news-wrap{justify-content:flex-start}
}


/* terminal19 · richer bank management and projection */
.bank-metrics{
  grid-template-columns:repeat(6,minmax(0,1fr));
  margin-bottom:12px;
}
.bank-metrics>div{
  min-width:0;
  padding:14px 15px;
}
.bank-metrics span{font-size:11px}
.bank-metrics b{font-size:17px}
.bank-metrics small{font-size:11px}

.bankgrid{
  grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);
  gap:12px;
  margin-bottom:12px;
}
.performance-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:10px;
}
.performance-strip>div{
  border:1px solid #18283a;
  border-radius:9px;
  padding:9px 10px;
  background:#081019;
}
.performance-strip span{
  display:block;
  font-size:11px;
  color:#71849a;
  margin-bottom:3px;
}
.performance-strip b{
  font-size:14px;
  color:#e6edf5;
  font-variant-numeric:tabular-nums;
}

.risk-control-card .riskmoney{
  margin-bottom:10px;
}
.daily-risk-meter{
  height:7px;
  background:#111d2b;
  border-radius:999px;
  overflow:hidden;
  margin:7px 0 12px;
}
.daily-risk-meter i{
  display:block;
  height:100%;
  width:0;
  border-radius:999px;
  background:linear-gradient(90deg,#3bbd93,#e4bc58,#e26f79);
  transition:width .25s ease;
}
.risk-control-card .row{
  padding:8px 0;
}
.risk-control-card .row b{
  font-variant-numeric:tabular-nums;
}

.projection-card{
  margin-bottom:12px;
  padding:16px;
}
.projection-head{
  align-items:flex-start;
}
.projection-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 9px;
  border-radius:8px;
  border:1px solid #2c3b4b;
  color:#9eb0c1;
  font-size:11px;
  font-weight:850;
  letter-spacing:.05em;
}
.projection-badge.moderate{
  color:#55efb0;
  border-color:rgba(35,217,144,.28);
  background:rgba(35,217,144,.05);
}
.projection-badge.high{
  color:#ffd978;
  border-color:rgba(241,199,91,.28);
  background:rgba(241,199,91,.06);
}
.projection-badge.aggressive{
  color:#ff8797;
  border-color:rgba(255,100,120,.28);
  background:rgba(255,100,120,.06);
}
.projection-note{
  margin:2px 0 12px;
  max-width:900px;
  color:#7e91a5;
  font-size:12px;
  line-height:1.5;
}
.projection-controls{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
  margin-bottom:10px;
}
.projection-controls label{
  position:relative;
  display:grid;
  gap:5px;
  color:#7c8fa3;
  font-size:11px;
}
.projection-controls input{
  width:100%;
  min-height:40px;
  padding:8px 42px 8px 10px;
  border:1px solid #1c2d40;
  border-radius:9px;
  background:#081019;
  color:#e8eff6;
  font-variant-numeric:tabular-nums;
}
.projection-controls label>span{
  position:absolute;
  right:11px;
  bottom:10px;
  color:#61768b;
  font-size:11px;
  pointer-events:none;
}
.projection-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  border:1px solid #19293b;
  border-radius:11px;
  overflow:hidden;
  background:#081019;
}
.projection-summary>div{
  min-width:0;
  padding:12px 13px;
  border-right:1px solid #19293b;
}
.projection-summary>div:last-child{border-right:0}
.projection-summary span{
  display:block;
  color:#71849a;
  font-size:11px;
  margin-bottom:4px;
}
.projection-summary b{
  display:block;
  color:#e8eff6;
  font-size:16px;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.projection-summary small{
  display:block;
  color:#61758a;
  font-size:10px;
  margin-top:3px;
}
.projection-riskline{
  display:grid;
  grid-template-columns:auto auto 1fr;
  align-items:center;
  gap:8px 12px;
  margin-top:10px;
  padding:9px 11px;
  border:1px solid rgba(255,100,120,.16);
  border-radius:9px;
  background:rgba(255,100,120,.035);
}
.projection-riskline span{
  color:#8a9cae;
  font-size:11px;
}
.projection-riskline b{
  color:#ff8797;
  font-size:13px;
  font-variant-numeric:tabular-nums;
}
.projection-riskline small{
  color:#687b8e;
  font-size:11px;
}

@media(max-width:1180px){
  .bank-metrics{grid-template-columns:repeat(3,1fr)}
  .projection-summary{grid-template-columns:repeat(3,1fr)}
  .projection-summary>div{border-bottom:1px solid #19293b}
}
@media(max-width:900px){
  .bankgrid{grid-template-columns:1fr}
  .projection-controls{grid-template-columns:1fr 1fr}
  .projection-summary{grid-template-columns:1fr 1fr}
  .projection-riskline{grid-template-columns:1fr}
}
@media(max-width:650px){
  .bank-metrics{grid-template-columns:1fr 1fr}
  .projection-controls{grid-template-columns:1fr}
  .projection-summary{grid-template-columns:1fr}
  .performance-strip{grid-template-columns:1fr}
}


/* terminal20 · simplified bank */
.bank-simple-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1.25fr;
  gap:12px;
  margin-bottom:12px;
}
.bank-simple-grid>.card{
  padding:16px;
  border-radius:14px;
}
.bank-big{
  margin:8px 0 2px;
  font-size:30px;
  line-height:1.1;
  font-weight:900;
  color:#e8eff6;
  font-variant-numeric:tabular-nums;
}
.bank-now-card>small,
.risk-rule-note,
.projection-disclaimer{
  display:block;
  color:#71849a;
  font-size:11px;
  line-height:1.45;
}
.bank-simple-rows{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:14px;
}
.bank-simple-rows>div{
  padding:10px 11px;
  border:1px solid #18283a;
  border-radius:9px;
  background:#081019;
}
.bank-simple-rows span{
  display:block;
  font-size:11px;
  color:#71849a;
  margin-bottom:3px;
}
.bank-simple-rows b{
  font-size:15px;
  color:#e8eff6;
  font-variant-numeric:tabular-nums;
}

.simple-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.simple-card-head h3{
  margin:3px 0 0;
  font-size:17px;
  color:#e8eff6;
}
.risk-main{
  margin-top:16px;
}
.risk-main span{
  display:block;
  font-size:11px;
  color:#71849a;
  margin-bottom:4px;
}
.risk-main b{
  display:block;
  font-size:24px;
  color:#e8eff6;
  font-variant-numeric:tabular-nums;
}
.bank-risk-simple .daily-risk-meter{
  height:6px;
  margin:10px 0 0;
}
.risk-rule-note{
  margin-top:10px;
}

.bank-projection-simple h3{
  margin:5px 0 4px;
  font-size:18px;
  color:#e8eff6;
}
.bank-projection-simple>p{
  margin:0 0 14px;
  color:#7b8fa3;
  font-size:12px;
  line-height:1.45;
}
.projection-simple-values{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-bottom:10px;
}
.projection-simple-values>div{
  padding:11px 10px;
  border:1px solid #19293b;
  border-radius:9px;
  background:#081019;
}
.projection-simple-values span{
  display:block;
  color:#71849a;
  font-size:11px;
}
.projection-simple-values b{
  display:block;
  margin-top:4px;
  color:#e8eff6;
  font-size:15px;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.projection-simple-values small{
  display:block;
  margin-top:3px;
  color:#55efb0;
  font-size:11px;
}
.projection-disclaimer{
  color:#8b7c73;
}

/* Old detailed bank widgets are no longer used in terminal20 */
.bank-metrics,
.bankgrid,
.projection-card{display:none!important}

@media(max-width:1050px){
  .bank-simple-grid{grid-template-columns:1fr 1fr}
  .bank-projection-simple{grid-column:1/-1}
}
@media(max-width:700px){
  .bank-simple-grid{grid-template-columns:1fr}
  .bank-projection-simple{grid-column:auto}
  .projection-simple-values{grid-template-columns:1fr}
  .bank-big{font-size:27px}
}
