/* static/dash/chart_at.css
   CHART DASHBOARD — multi compare + search + top control bars
*/

:root{
  --ct-bg:#000;
  --ct-glass:rgba(0,0,0,0.86);
  --ct-bd:rgba(255,255,255,0.08);
  --ct-bd-hover:rgba(255,255,255,0.15);
  --ct-text:rgba(255,255,255,0.92);
  --ct-dim:rgba(255,255,255,0.72);
  --ct-faint:rgba(255,255,255,0.48);
  --ct-shadow:0 16px 34px rgba(0,0,0,0.86);
  --ct-gap:12px;
  --ct-pad:12px;

  --ct-slot-h:38px;
  --ct-slot-gap:8px;
  --ct-slot-visible:10;
  --ct-menu-max-h:calc((var(--ct-slot-h) * var(--ct-slot-visible)) + (var(--ct-slot-gap) * 9) + 20px);
}

.chartdash-root,
.chartdash-root *{
  box-sizing:border-box;
  border-radius:0 !important;
  min-width:0;
}

.chartdash-root{
  width:100%;
  background:#000 !important;
  color:var(--ct-text);
}

/* generic glass */
.chartdash-root .chart-box,
.chartdash-root .macrodash-root-head,
.chartdash-root .macrodash-ctl-box,
.chartdash-root .chartdash-dd,
.chartdash-root .chartdash-stat-card,
.chartdash-root .nonfin-switch-btn,
.chartdash-root .tree-btn,
.chartdash-root .chartdash-chip{
  background:var(--ct-glass) !important;
  border:1px solid var(--ct-bd) !important;
  box-shadow:0 1px 0 rgba(255,255,255,0.03) inset, var(--ct-shadow);
}

/* header */
.macrodash-root-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
}

.macrodash-root-title{
  font-size:1rem;
  font-weight:600;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--ct-text);
}

.macrodash-root-subtitle{
  font-size:.74rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ct-dim);
}

/* toolbar */
.chartdash-toolbar{
  margin-top:12px;
}

.chartdash-ctl-strip{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:10px;
}

.macrodash-ctl-box{
  padding:10px 12px;
}

.macrodash-ctl-label{
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ct-faint);
  margin-bottom:5px;
}

.macrodash-ctl-value{
  font-size:.92rem;
  font-weight:600;
  color:var(--ct-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* top controls */
.chartdash-control-panels{
  margin-top:14px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.chartdash-top-selectors{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
}

.chartdash-indicator-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
}

.chartdash-mode-inline{
  display:flex;
  align-items:stretch;
}

.chartdash-mode-switch{
  display:flex;
  gap:10px;
}

.chartdash-mode-switch .nonfin-switch-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:10px 14px;
  text-decoration:none;
  color:var(--ct-dim);
  font-size:.78rem;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.chartdash-mode-switch .nonfin-switch-btn.is-active{
  background:linear-gradient(180deg, rgba(220,220,225,0.92), rgba(160,165,175,0.96)) !important;
  color:#0b0b0d !important;
  border-color:rgba(255,255,255,0.25) !important;
  font-weight:700;
}

/* dropdowns */
.chartdash-dd{
  overflow:hidden;
}

.chartdash-dd > summary{
  list-style:none;
  cursor:pointer;
  user-select:none;
}

.chartdash-dd > summary::-webkit-details-marker{
  display:none;
}

.chartdash-dd-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  min-height:58px;
  background:linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.02) 100%);
  border-bottom:1px solid transparent;
}

.chartdash-dd[open] > summary{
  border-bottom:1px solid var(--ct-bd);
}

.chartdash-dd-summary::after{
  content:"+";
  font-size:1rem;
  line-height:1;
  color:var(--ct-dim);
}

.chartdash-dd[open] .chartdash-dd-summary::after{
  content:"–";
}

.chartdash-dd-copy{
  min-width:0;
}

.chartdash-dd-label{
  font-size:.68rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--ct-faint);
  margin-bottom:4px;
}

.chartdash-dd-value{
  font-size:.96rem;
  font-weight:700;
  color:var(--ct-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.chartdash-dd-menu{
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:calc(var(--ct-menu-max-h) + 52px);
  overflow:hidden;
}

.chartdash-search-wrap{
  flex:0 0 auto;
}

.chartdash-search-input{
  width:100%;
  height:38px;
  padding:0 12px;
  background:rgba(255,255,255,0.03);
  border:1px solid var(--ct-bd);
  color:var(--ct-text);
  outline:none;
  font-size:.84rem;
}

.chartdash-search-input::placeholder{
  color:var(--ct-faint);
}

.chartdash-dd-menu-list{
  display:flex;
  flex-direction:column;
  gap:var(--ct-slot-gap);
  max-height:var(--ct-menu-max-h);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
}

.tree-leaf.sub-link{
  display:block;
  text-decoration:none;
}

.tree-btn{
  display:flex;
  align-items:center;
  min-height:var(--ct-slot-h);
  padding:9px 11px;
  color:var(--ct-dim);
  font-size:.82rem;
  line-height:1.2;
  transition:background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}

.tree-btn--small{
  min-height:36px;
}

.tree-leaf.sub-link:hover .tree-btn,
.tree-leaf.sub-link:focus .tree-btn,
.tree-leaf.sub-link:focus-visible .tree-btn{
  border-color:var(--ct-bd-hover) !important;
  color:var(--ct-text);
  transform:translateX(2px);
}

.tree-leaf.sub-link.active .tree-btn,
.tree-leaf.sub-link[aria-selected="true"] .tree-btn{
  background:linear-gradient(180deg, rgba(220,220,225,0.92), rgba(160,165,175,0.96)) !important;
  color:#0b0b0d !important;
  border-color:rgba(255,255,255,0.25) !important;
  font-weight:700;
}

/* compare chips */
.chartdash-chip-wrap{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.chartdash-chip-row-label{
  font-size:.68rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--ct-faint);
}

.chartdash-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.chartdash-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  text-decoration:none;
  color:var(--ct-text);
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.chartdash-chip:hover{
  border-color:var(--ct-bd-hover) !important;
}

.chartdash-chip-label{
  color:var(--ct-text);
}

.chartdash-chip-x{
  color:var(--ct-dim);
  font-weight:700;
}

/* main */
.macrodash-main{
  margin-top:14px;
  min-width:0;
  overflow:visible !important;
}

/* split / compare */
.macrodash-grid{
  display:grid;
  gap:12px;
  min-width:0;
}

.macrodash-grid--compare{
  grid-template-columns:repeat(2, minmax(0,1fr));
}

.chartdash-grid-multi{
  grid-template-columns:repeat(2, minmax(0,1fr));
}

.macrodash-col{
  min-width:0;
}

/* chart panel */
.chart-box.chart-polygon{
  display:flex;
  flex-direction:column;
  gap:0;
  padding:12px;
  width:100%;
  overflow:hidden;
}

.chart-polygon__hdr{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:0 0 12px 0;
  border-bottom:1px solid rgba(255,255,255,0.08);
  margin-bottom:12px;
}

.chart-polygon__head-left{
  min-width:0;
}

.chart-polygon__head-right{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-end;
}

.chart-polygon__title{
  font-size:1rem;
  line-height:1.1;
  color:var(--ct-text);
  font-weight:600;
  letter-spacing:.10em;
  text-transform:uppercase;
  word-break:break-word;
}

.chart-polygon__subtitle{
  margin-top:5px;
  font-size:.70rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ct-faint);
}

.chart-polygon__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}

.chart-polygon__metaitem{
  color:var(--ct-dim);
  font-size:.74rem;
  letter-spacing:.04em;
}

.chartdash-stat-strip{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:8px;
  width:100%;
  min-width:280px;
}

.chartdash-stat-card{
  padding:8px 10px;
  min-width:0;
}

.chartdash-stat-k{
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.11em;
  color:var(--ct-faint);
  margin-bottom:4px;
}

.chartdash-stat-v{
  font-size:.84rem;
  font-weight:600;
  color:var(--ct-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* graph */
.chart-polygon__graph{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  height:820px !important;
  min-height:820px !important;
  background:#000 !important;
  overflow:hidden !important;
}

.chart-polygon__graph .js-plotly-plot,
.chart-polygon__graph .plot-container,
.chart-polygon__graph .svg-container{
  width:100% !important;
  height:820px !important;
  min-height:820px !important;
  background:#000 !important;
}

.chart-polygon__graph .modebar{
  display:flex !important;
  opacity:1 !important;
}

/* empty */
.chartdash-hint,
.macrodash-empty,
.tree-empty{
  border:1px dashed rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.02);
  color:var(--ct-faint);
  padding:12px;
  font-size:.84rem;
}

/* responsive */
@media (max-width: 1480px){
  .chartdash-grid-multi{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 1380px){
  .chartdash-ctl-strip{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}

@media (max-width: 1180px){
  .chartdash-top-selectors{
    grid-template-columns:1fr;
  }

  .chartdash-indicator-row{
    grid-template-columns:1fr;
  }

  .macrodash-grid--compare,
  .chartdash-grid-multi{
    grid-template-columns:1fr;
  }

  .chart-polygon__hdr{
    flex-direction:column;
    align-items:stretch;
  }

  .chart-polygon__head-right{
    align-items:stretch;
  }

  .chart-polygon__meta{
    justify-content:flex-start;
  }

  .chartdash-stat-strip{
    grid-template-columns:repeat(2, minmax(0,1fr));
    min-width:0;
  }
}

@media (max-width: 760px){
  .chartdash-ctl-strip{
    grid-template-columns:1fr;
  }

  .chartdash-stat-strip{
    grid-template-columns:1fr;
  }

  .chart-polygon__title{
    font-size:.92rem;
  }

  .chart-polygon__graph,
  .chart-polygon__graph .js-plotly-plot,
  .chart-polygon__graph .plot-container,
  .chart-polygon__graph .svg-container{
    height:520px !important;
    min-height:520px !important;
  }
}


.chartdash-dd-menu{
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:calc(var(--ct-menu-max-h) + 52px);
  overflow:hidden;
}

.chartdash-search-wrap{
  flex:0 0 auto;
}

.chartdash-search-input{
  width:100%;
  height:38px;
  padding:0 12px;
  background:rgba(255,255,255,0.03);
  border:1px solid var(--ct-bd);
  color:var(--ct-text);
  outline:none;
  font-size:.84rem;
}

.chartdash-search-input::placeholder{
  color:var(--ct-faint);
}

.chartdash-dd-menu-list{
  display:flex;
  flex-direction:column;
  gap:var(--ct-slot-gap);
  max-height:var(--ct-menu-max-h);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
}