/* --- BUTTONS --- */.btn {  font-family: var(--sans);  font-size: 13px;  font-weight: 600;  min-height: 24px;  padding: 9px 18px;  border: none;  border-radius: var(--radius);  cursor: pointer;  background: var(--bg1);  color: var(--text2);  transition: background 0.18s, color 0.18s, opacity 0.18s;  letter-spacing: -0.01em;  position: relative;  overflow: hidden;}.btn:hover { background: var(--bg2); color: var(--text); }/* --- LAYOUT --- */
.main { max-width: 1640px; margin: 0 auto; padding: 32px 36px 80px; position: relative; z-index: 1; }
.app-view-hidden {
  display:none;
}
/* --- SECTION HEADERS --- */.section-head {  display: flex;  align-items: center;  gap: 10px;  margin-bottom: 16px;  padding-bottom: 10px;  border-bottom: 1px solid var(--border);}.section-title {  font-family: var(--mono);  font-size: 11px;  font-weight: 700;  color: var(--text);  letter-spacing: 0.16em;  text-transform: uppercase;}/* --- PANELS --- */.panel {  background: var(--bg);  border: none;  border-radius: var(--radius-lg);  overflow: hidden;  margin-bottom: 24px;  position: relative;}.panel-head {  padding: 12px 20px;  background: var(--bg1);  border-bottom: 1px solid var(--border);  border-left: none;  border-radius: var(--radius-lg) var(--radius-lg) 0 0;  display: flex;  align-items: center;  gap: 12px;}.panel-head.collapsible {  cursor: pointer;  user-select: none;  transition: background 0.15s ease;}.panel-head.collapsible:hover {  background: var(--bg2);}.panel-collapsible-content {  overflow: hidden;  /* height is driven by JS for pixel-perfect animation */  transition: height 0.28s cubic-bezier(0.4, 0, 0.2, 1),              opacity 0.22s cubic-bezier(0.4, 0, 0.2, 1);  opacity: 1;}.panel-collapsible-content.collapsed {  height: 0;  opacity: 0;  pointer-events: none;}/* Allow overflow when expanded for dropdowns */.panel-collapsible-content:not(.collapsed) {
  overflow: visible;
}
.data-table-wrap.is-collapsed {
  display:none;
}
.data-section-chevron.is-collapsed {
  transform:rotate(-90deg);
}
/* --- FORM FIELDS --- */
.field { display: flex; flex-direction: column; gap: 5px; }.field label {  font-family: var(--sans);  font-size: 12px;  font-weight: 600;  color: var(--text2);  letter-spacing: 0em;}.field input, .field select {  font-family: var(--sans);  font-size: 14px;  font-weight: 500;  padding: 10px 14px;  background: var(--bg1);  border: 1px solid var(--border2);  border-radius: var(--radius);  color: var(--text);  width: 136px;  transition: border-color 0.15s;  -webkit-appearance: none;}.field input:focus, .field select:focus {  outline: 1px solid var(--accent);  outline-offset: 0;  border-color: var(--accent);}.field input::placeholder { color: var(--text3); font-weight: 400; }.check-item {  display: flex;  align-items: center;  gap: 10px;  padding: 10px 16px;  background: var(--bg1);  border: none;  border-radius: var(--radius);  cursor: pointer;  transition: background 0.15s;  user-select: none;  position: relative;  overflow: hidden;}.check-item:hover { background: var(--bg2); }.check-item.checked { background: var(--bg2); }.check-item input[type=checkbox] { display: none; }/* --- STATS BAR --- */.stats-grid {  display: flex;  align-items: stretch;  gap: 8px;  margin-bottom: 28px;  background: transparent;  border: none;  border-radius: var(--radius-lg);  overflow: visible;}.stat-card {  flex: 1;  padding: 11px 16px;  position: relative;  transition: background 0.15s;  border: none;  border-radius: var(--radius);  overflow: hidden;}/* --- TABLE --- */table { width: 100%; border-collapse: collapse; }thead th {  font-family: var(--mono);  font-size: 9px;  font-weight: 700;  text-transform: uppercase;  letter-spacing: 0.12em;  color: var(--text3);  padding: 10px 20px;  background: var(--bg1);  border-bottom: 1px solid color-mix(in srgb, var(--border) 40%, transparent);  text-align: left;  white-space: nowrap;}tbody td {  padding: 10px 16px;  border-bottom: 1px solid color-mix(in srgb, var(--border) 30%, transparent);  color: var(--text3);  font-family: var(--sans);  font-size: 11px;  font-weight: 400;  vertical-align: middle;}tbody tr:last-child td { border-bottom: none; }.pill {  font-size: 11px;  font-family: var(--sans);  font-weight: 600;  padding: 3px 8px;  border-radius: var(--radius);  border: none;  color: var(--text2);  background: var(--bg1);  letter-spacing: 0em;  white-space: nowrap;  opacity: 0.45;  position: relative;}.pill.on { color: var(--text); background: var(--bg2); font-weight: 700; opacity: 1; }/* --- CHART CARDS --- *//* Keep ATCC detail lists out of the top strip; headers open popovers instead. */.lp-collapsible-body {  overflow: hidden;  height: 0;  opacity: 0;  pointer-events: none;  transition: height 0.24s cubic-bezier(0.4,0,0.2,1), opacity 0.18s ease;}.lp-collapsible-hdr.lp-open + .lp-collapsible-body,.lp-collapsible-hdr.lp-open ~ .lp-collapsible-body {  /* height set to scrollHeight by JS in _lpToggle */  opacity: 1;  pointer-events: auto;  overflow: visible;}.lp-collapsible-hdr.lp-open .lp-chevron { transform: rotate(180deg); }/* --- TOLERANCE --- *//* --- MODALS --- */.modal-overlay {  display: none;  position: fixed; inset: 0;  background: rgba(255,255,255,0.05);  z-index: 1000;  align-items: center;  justify-content: center;  backdrop-filter: none;  -webkit-backdrop-filter: none;}.modal-overlay.open { display: flex; }[data-theme="dark"] .modal-overlay {  background: rgba(28,27,32,0.5);}.modal {  background: var(--bg);  border: 1px solid var(--border2);  border-radius: 8px;  padding: 36px;  min-width: 520px;  max-width: 95vw;  position: relative;}/* --- COMBO TABLE --- */#comboTable { width: 100%; border-collapse: collapse; font-size: 10px; }#comboTable thead th {  font-family: var(--sans);  font-size: 12px;  font-weight: 600;  color: var(--text2);  padding: 12px 16px;  background: var(--bg1);  border-bottom: 1px solid var(--border);  text-align: left;  white-space: nowrap;}/* --- SCROLLBAR --- */::-webkit-scrollbar { width: 6px; height: 6px; }::-webkit-scrollbar-track { background: var(--bg1); }::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 4px; }::-webkit-scrollbar-thumb:hover { background: var(--border3); }/* --- SORTABLE --- */.sortable-ghost { opacity: 0.08; background: var(--bg3); border-left: none; }.divider { height: 1px; background: var(--border); margin: 32px 0; }/* Input/select dark rules */select option { background: var(--bg); color: var(--text); }/* --- PERIOD TABS --- */.period-tab {  font-family: var(--sans);  font-size: 13px;  font-weight: 600;  letter-spacing: 0em;  padding: 8px 18px;  border-radius: var(--radius);  border: none;  background: transparent;  color: var(--text3);  cursor: pointer;  transition: color 0.18s, background-color 0.18s;}.period-tab:hover { color: var(--text2); background: var(--bg2); }.period-tab.active {  background: var(--bg);  border: none;  color: var(--text);  font-weight: 700;  position: relative;  overflow: hidden;}/* --- TICKER AUTOCOMPLETE --- */.ticker-dropdown {  position: absolute;  top: calc(100% + 6px);  left: 0;  right: 0;  background: var(--bg);  border: 1px solid var(--border2);  border-radius: var(--radius-lg);  z-index: 9999;  overflow: hidden;  display: none;  min-width: 280px;}.ticker-dropdown.open { display: block; }.ticker-drop-item {  display: flex;  align-items: center;  gap: 12px;  padding: 12px 16px;  cursor: pointer;  border-bottom: 1px solid var(--border);  border-radius: 7px;  background: transparent;  transition: background 0.1s;}.ticker-drop-item:last-child { border-bottom: none; }.ticker-drop-item:hover,.ticker-drop-item.focused { background: var(--bg2); }.ticker-drop-item img,
.ticker-drop-item .tdrop-logo {
  width: 24px; height: 24px;
  border-radius: 50%;
  flex-shrink: 0;
  object-fit: cover;
}
.tdrop-logo-img {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  object-fit: cover;
}
.tdrop-logo {
  display: flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size: 11px; font-weight: 700;
  background: rgba(var(--trendline-rgb),0.1);
  color: var(--accent);
}
.lp-logo-meta {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  line-height: 1;
}
.ticker-drop-symbol {
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 700;
  color: var(--text);}.ticker-drop-name {  font-family: var(--sans);  font-size: 12px;  color: var(--text3);  white-space: nowrap;  overflow: hidden;  text-overflow: ellipsis;  font-weight: 400;}.ticker-drop-rank {
  margin-left: auto;
  font-family: var(--mono);
  font-size: 9px;
  color: var(--text3);
  flex-shrink: 0;
}
.ticker-drop-loading {  padding: 14px 16px;  font-family: var(--sans);  font-size: 13px;  font-weight: 500;  color: var(--text3);  text-align: center;}/* -- In-place card expansion -- */[data-ta-expanded] {  grid-column: 1 / -1;}[data-ta-expanded] .atcc-inner-grid {  grid-template-columns: 220px 1fr;  min-height: 520px;}/* -- ATCC card expand/collapse animation -- */[data-ta-sym] {
  position: relative;
  border-radius: var(--atcc-card-radius);
  border: 2px solid var(--atcc-border);
  background: var(--bg1);
  overflow: clip;
  transition: min-height 0.28s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.16s ease;
  /* Smooth the grid-column snap during expand/collapse cycling */
  will-change: contents;
}[data-ta-sym]:hover,[id^="atcc-"][data-ta-sym]:hover {  border-color: var(--atcc-border);  transform: none;}[data-theme="dark"] [data-ta-sym],
[data-theme="dark"] [id^="atcc-"][data-ta-sym],
[data-theme="dark"] [data-ta-sym]:hover,
[data-theme="dark"] [id^="atcc-"][data-ta-sym]:hover {
  border-color: var(--atcc-border);
}/* Expanded canvas fades in */[data-ta-expanded] canvas[id^="ta-expand-canvas-"] {  animation: atcc-canvas-in 0.28s cubic-bezier(0.4, 0, 0.2, 1) both;}@keyframes atcc-canvas-in {  from { opacity: 0; }  to   { opacity: 1; }}/* Expanded controls (TF bar, trade handle) fade + slide down */[data-ta-expanded] #card-tf-bar,[id^="card-tf-bar-"] {  animation: atcc-ctrl-in 0.22s 0.06s cubic-bezier(0.4, 0, 0.2, 1) both;}@keyframes atcc-ctrl-in {  from { opacity: 0; transform: translateX(-50%) translateY(-6px); }  to   { opacity: 1; transform: translateX(-50%) translateY(0); }}[id^="trade-handle-"] {  animation: atcc-handle-in 0.22s 0.08s cubic-bezier(0.4, 0, 0.2, 1) both;}@keyframes atcc-handle-in {  from { opacity: 0; transform: translate(-8px, -50%); }  to   { opacity: 1; transform: translate(0, -50%); }}/* Oscillator panel - always visible, no transitions */@media (max-width: 900px) {  .section-divider-v { width: 100%; height: 1px; align-self: auto; }  .pipeline-sep { display: none; }  .atcc-levels-panel { font-size: 10px; }  [data-ta-expanded] .atcc-inner-grid {    grid-template-columns: 1fr;    min-height: unset;  }  [data-ta-expanded] .atcc-levels-panel {    border-right: none;    border-bottom: 0px;    max-height: none;    overflow: visible;  }  [data-ta-expanded] .atcc-chart-panel {    min-height: 420px;  }}.atcc-chart-panel {  height: 100%;  min-height: 260px;  position: relative;}[data-ta-expanded] .atcc-chart-panel {  height: auto;  min-height: 520px;}[data-ta-expanded] .atcc-levels-panel {  overflow-y: visible;}.ta-expand-btn {  width:22px;height:22px;  display:flex;align-items:center;justify-content:center;  background:rgba(5,6,8,0.45);  border:1px solid rgba(100,120,170,0.15);  color:rgba(255,255,255,0.7);  font-size:11px;cursor:pointer;transition:background 0.15s,color 0.15s,border-color 0.15s,opacity 0.15s;backdrop-filter:blur(4px);}.ta-expand-btn:hover {  background:var(--accent-dim);  border-color:var(--accent-soft);  color:var(--accent);}/* Trendline draw button - only visible when card is expanded */.tl-draw-btn {  display:none;  width:22px;height:22px;  align-items:center;justify-content:center;  background:rgba(5,6,8,0.45);  border:1px solid rgba(100,120,170,0.15);  color:rgba(255,255,255,0.7);  font-size:13px;cursor:pointer;transition:background 0.15s,color 0.15s,border-color 0.15s,opacity 0.15s;backdrop-filter:blur(4px);  font-family:var(--mono);}[data-ta-expanded] .tl-draw-btn {  display:flex;}.tl-draw-btn:hover, .tl-draw-btn.active {  background:var(--accent-dim);  border-color:var(--accent-soft);  color:var(--accent);}/* -- Trade drawer (Binance Futures integration) -- *//* -- Trade bottom panel -- *//* sidebar-positions CSS removed - positions moved to header *//* Suppress focus highlight on chart buttons during Shift+drag ruler */html.shift-drag-active .ta-expand-btn:focus,html.shift-drag-active .ta-expand-btn:focus-visible,html.shift-drag-active .tl-draw-btn:focus,html.shift-drag-active .tl-draw-btn:focus-visible {  outline: none;}/* Trendline section in the ATCC top strip */.tl-section {  display:block;}/* trendline list - visibility controlled by lp-collapsible-body rules *//* BREAK TF selector + last-check label - expanded only */.tl-section-tf {  display:none;}[data-ta-expanded] .tl-section-tf {  display:block;}/* empty state - always visible */
/* Scanner view and loading shell */
#view-scanner {
  max-width:1640px;
  margin:0 auto;
  padding:32px 40px 80px;
}
#bn-testnet-banner {
  display:none;
  background:#b86000;
  color:#fff;
  text-align:center;
  font:700 11px var(--mono);
  letter-spacing:0.08em;
  padding:6px;
  position:sticky;
  top:var(--header-h);
  z-index:200;
  margin:-32px -40px 20px;
}
#scanner-loading {
  position:fixed;
  top:var(--header-h);
  right:0;
  bottom:0;
  z-index:200;
  background:var(--page-bg);
}
.scanner-loading-progress {
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  overflow:hidden;
}
.scanner-loading-progress .al-progress-fill {
  height:100%;
}
.scanner-loading-inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  height:100%;
  width:100%;
  max-width:960px;
  margin:0 auto;
  padding:32px;
  gap:24px;
}
.scanner-loading-title {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
}
.scanner-loading-logo { display: block; width: auto; height: auto; font-family: var(--brand-pixel); font-size: 58px; font-weight: 400; line-height: 1; letter-spacing: 0; color: var(--accent); text-transform: none; }
.scanner-loading-spinner {
  width:18px;
  height:18px;
  border:1.5px solid var(--border2);
  border-top-color:var(--accent);
  border-radius:50%;
  flex-shrink:0;
  animation:spin 0.75s linear infinite;
}
#sc-status-msg {
  font-family:var(--mono);
  font-size:8px;
  font-weight:700;
  color:var(--accent);
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.scanner-loading-table-wrap {
  width:100%;
  max-width:520px;
}
.scanner-loading-table-head {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  margin-bottom:6px;
  padding:0 6px;
}
.scanner-loading-table-head span {
  font-family:var(--mono);
  font-size:7px;
  font-weight:600;
  color:var(--text3);
  letter-spacing:0.1em;
  text-transform:uppercase;
  opacity:0.5;
}
.scanner-loading-table-head span:nth-child(2) {
  text-align:center;
}
.scanner-loading-table-head span:nth-child(3) {
  text-align:right;
}
#sc-coin-strip {
  display:flex;
  flex-direction:column;
  gap:3px;
}
.scanner-loading-source-row {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
  gap:14px;
}
.scanner-loading-source-row > span:first-child {
  font-family:var(--mono);
  font-size:9px;
  color:var(--text3);
  letter-spacing:0.04em;
}
.scanner-loading-coingecko {
  width:62px;
  height:22px;
  object-fit:contain;
  opacity:0.85;
}
.scanner-loading-binance {
  width:auto;
  height:16px;
  flex-shrink:0;
  opacity:0.85;
}
.scanner-loading-fallback {
  font-family:var(--mono);
  font-size:9px;
  font-weight:600;
  color:var(--text2);
}
.scanner-loading-source-sep {
  width:1px;
  height:14px;
  flex-shrink:0;
  background:var(--border2);
}
/* Scanner footer */
.scanner-footer {
  display:flex;
  flex-direction:column;
  gap:20px;
  margin-top:60px;
  padding:28px 0 40px;
  border-top:1px solid var(--border);
}
.scanner-footer-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.scanner-footer-brand {
  display:flex;
  flex-direction:column;
  gap:4px;
}
.scanner-footer-logo { display: inline-block; width: auto; height: auto; font-family: var(--brand-pixel); font-size: 34px; font-weight: 400; line-height: 1; letter-spacing: 0; color: var(--accent); text-transform: none; }
.scanner-footer-copy {
  font-family:var(--sans);
  font-size:11px;
  line-height:1.5;
  color:var(--text3);
}
.scanner-footer-meta {
  display:flex;
  align-items:center;
  gap:16px;
  flex-shrink:0;
  flex-wrap:wrap;
}
.scanner-footer-alerts {
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:220px;
}
.scanner-footer-alert-row {
  display:flex;
  align-items:center;
  gap:8px;
}
.scanner-footer-alert-text {
  font-family:var(--mono);
  font-size:8px;
  font-weight:400;
  color:var(--text2);
  letter-spacing:0.04em;
  text-transform:uppercase;
}
.scanner-footer-sep {
  width:1px;
  height:40px;
  flex-shrink:0;
  background:var(--border);
}
.scanner-footer-data {
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:10px;
}
.scanner-footer-data-label {
  font-family:var(--mono);
  font-size:9px;
  font-weight:400;
  color:var(--text3);
  letter-spacing:0.04em;
}
.scanner-footer-coingecko {
  width:80px;
  height:30px;
  object-fit:contain;
  opacity:1;
}
.scanner-footer-binance {
  width:auto;
  height:20px;
  flex-shrink:0;
  opacity:1;
}
.scanner-footer-fallback {
  font-family:var(--mono);
  font-size:10px;
  font-weight:600;
  color:var(--text2);
}
/* Positions bar */
#bn-positions-bar {
  display:none;
  position:sticky;
  bottom:0;
  z-index:50;
  padding:0 16px;
  background:var(--bg1);
  border-top:1px solid var(--border2);
  font-family:var(--mono);
  font-size:11px;
}
.bn-positions-inner {
  display:flex;
  align-items:center;
  gap:0;
  min-height:36px;
  overflow-x:auto;
}
.bn-positions-label {
  flex-shrink:0;
  margin-right:16px;
  padding-right:16px;
  border-right:1px solid var(--border2);
  color:var(--text3);
  font-size:9px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
#bn-pos-bar-rows {
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:nowrap;
}
@keyframes slideInToast { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes pulse { 0%,100%{opacity:0.4} 50%{opacity:1} }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes tdmSpin { to { transform: rotate(360deg); } }