/* BTC 자동매매: 봇 현황 그리드·봇 콘솔(태블릿 우선). 각진 터미널형 레이아웃, 터치 대상 44px 이상, 호버 의존 없음.
   색은 상태(글자·사각 점)와 호가(매도 파랑·매수 빨강), 예정가 마커에만 쓰고 면·테두리는 무채색으로 둔다. */
:root { --btc-bg: #ffffff; --btc-head: #f3f4f6; --btc-sunken: #f8f9fb; --btc-line: #d7dbe2; --btc-line-soft: #e8ebf0; --btc-frame: #a9b0bd; --btc-accent: #514ee4; --btc-accent-strong: #3f3dca; --btc-go: #0f8a5f; --btc-go-strong: #0b734f; --btc-stop: #d92d20; --btc-stop-strong: #b42318; --btc-ink: #111827; --btc-on-ink: #ffffff; --btc-label: #6b7280;
  --btc-ok: #0a7f5a; --btc-hold: #b35c00; --btc-off: #8a93a6;
  --btc-marker-entry: #4c4ad8; --btc-marker-average: #4b5563; --btc-marker-take-profit: #0a7f5a; --btc-marker-stop-loss: #c2410c; --btc-marker-hedge: #0e7490; }
:root[data-theme="dark"] { --btc-bg: #0f1527; --btc-head: #151c31; --btc-sunken: #0b1020; --btc-line: #273149; --btc-line-soft: #1c2439; --btc-frame: #46557a; --btc-accent: #6461f0; --btc-accent-strong: #5552e3; --btc-go: #17a372; --btc-go-strong: #1bb980; --btc-stop: #e5484d; --btc-stop-strong: #f05a5f; --btc-ink: #e6ebfb; --btc-on-ink: #0b1020; --btc-label: #8e9ab4;
  --btc-ok: #45d3a8; --btc-hold: #f5bf73; --btc-off: #6b7690;
  --btc-marker-entry: #a9a6ff; --btc-marker-average: #c9d1e4; --btc-marker-take-profit: #45d3a8; --btc-marker-stop-loss: #ff922b; --btc-marker-hedge: #66d9e8; }
.btc-app { display: grid; gap: 14px; min-width: 0; padding-bottom: calc(28px + env(safe-area-inset-bottom)); -webkit-tap-highlight-color: transparent; }
/* 모서리: 카드·패널·타일 8px, 버튼·입력 6px, 작은 표시 4px. 이어 붙는 세그먼트는 양 끝만 둥글게. */
.btc-app { --btc-r-lg: 8px; --btc-r-md: 6px; --btc-r-sm: 4px; }
.btc-app :is(.btc-card, .btc-panel, .btc-report-stats > div, .btc-safety-facts > div, .btc-banner, .btc-empty, .btc-position, .trading-notice, .btc-chart, .btc-pnl-chart) { border-radius: var(--btc-r-lg); }
.btc-app :is(.btc-card, .btc-panel) { overflow: hidden; }
.btc-app :is(.btn, .btc-back, input, select, .btc-ladder-off) { border-radius: var(--btc-r-md); }
.btc-app :is(.btc-status, .btc-marker, .btc-ratio) { border-radius: var(--btc-r-sm); }
.btc-app :is(.btc-tab, .btc-ladder-row, .btc-depth, .btc-log li) { border-radius: 0; }

.btc-chip:last-child { border-top-right-radius: var(--btc-r-md); border-bottom-right-radius: var(--btc-r-md); }
.btc-app h2 { margin: 0; font-size: 14px; font-weight: 800; letter-spacing: -.01em; }
.btc-app h3 { margin: 16px 0 8px; color: var(--btc-label); font-size: 11px; font-weight: 800; letter-spacing: .06em; }

.btc-app .numeric { font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
.btc-app .eyebrow { margin-bottom: 4px; }
/* 버튼: 서로 떨어진 둥근 버튼. 주 버튼=강조색 채움, 보조=테두리만, 위험=빨강 테두리. 다크 테마 전역 버튼 규칙보다 우선하도록 :root를 붙인다. */
:root .btc-app .btn { min-height: 44px; padding: 0 16px; border: 1px solid var(--btc-frame); background: transparent; color: var(--btc-ink); font-size: 13px; font-weight: 800; touch-action: manipulation; transform: none; transition: background-color .15s, border-color .15s, color .15s; }
:root .btc-app .btn:hover { border-color: var(--btc-ink); background: var(--btc-head); color: var(--btc-ink); }
:root .btc-app .btn:active { background: var(--btc-line-soft); }
:root .btc-app .btn.btn-primary { border-color: var(--btc-accent); background: var(--btc-accent); color: #fff; }
:root .btc-app .btn.btn-primary:hover { border-color: var(--btc-accent-strong); background: var(--btc-accent-strong); color: #fff; }
:root .btc-app .btn.btn-go { border-color: var(--btc-go); background: var(--btc-go); color: #fff; }
:root .btc-app .btn.btn-go:hover { border-color: var(--btc-go-strong); background: var(--btc-go-strong); color: #fff; }
:root .btc-app .btn.btn-stop { border-color: var(--btc-stop); background: var(--btc-stop); color: #fff; }
:root .btc-app .btn.btn-stop:hover { border-color: var(--btc-stop-strong); background: var(--btc-stop-strong); color: #fff; }
/* 아이콘만 있는 정사각 버튼(설정 톱니바퀴) */
:root .btc-app .btn.btc-icon-btn { width: 44px; padding: 0; }
:root .btc-app .btn.btc-icon-btn svg { flex: none; }
.btc-icon-btn[data-loading="true"] svg { animation: btc-spin .8s linear infinite; }
@media (prefers-reduced-motion: reduce) { .btc-icon-btn[data-loading="true"] svg { animation-duration: 1.6s !important; animation-iteration-count: infinite !important; } }
:root .btc-app .btn.btn-danger { border-color: color-mix(in srgb, var(--error) 60%, var(--btc-frame)); background: transparent; color: var(--error); }
:root .btc-app .btn.btn-danger:hover { border-color: var(--error); background: color-mix(in srgb, var(--error) 8%, transparent); color: var(--error); }
.btc-app button:disabled, .btc-app a[aria-disabled="true"] { cursor: not-allowed; opacity: .4; }
.btc-toolbar, .btc-console-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 14px; padding-bottom: 12px; border-bottom: 1px solid var(--btc-line); }
.btc-toolbar h1 { margin: 0; font-size: clamp(22px, 3vw, 28px); }
.btc-toolbar-actions, .btc-form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.btc-banner { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid var(--btc-line); background: var(--btc-sunken); }
.btc-banner strong { color: var(--btc-hold); }
.btc-banner span { color: var(--btc-label); }
.btc-app .trading-notice { border: 1px solid var(--btc-line); background: var(--btc-sunken); }
/* 칩: 붙어 있는 사각 세그먼트. 선택=잉크 반전 */
.btc-filters, .btc-chips { display: flex; overflow-x: auto; scrollbar-width: none; }
.btc-chip { border-radius: 0; flex: none; min-height: 44px; margin-left: -1px; padding: 0 16px; border: 1px solid var(--btc-line); background: var(--btc-bg); color: var(--btc-label); font-size: 13px; font-weight: 800; cursor: pointer; touch-action: manipulation; }
.btc-chip:first-child { border-top-left-radius: var(--btc-r-md); border-bottom-left-radius: var(--btc-r-md); margin-left: 0; }
.btc-chip span { margin-left: 6px; font-family: var(--font-numeric); color: var(--btc-label); }
.btc-chip[aria-pressed="true"] { position: relative; z-index: 1; border-color: var(--btc-ink); background: var(--btc-ink); color: var(--btc-on-ink); }
.btc-chip[aria-pressed="true"] span { color: inherit; opacity: .7; }
.btc-chips .btc-chip { min-height: 34px; padding: 0 11px; font-size: 12px; }
/* 자산 요약: 낮고 촘촘한 한 줄. 금액 칸은 통화별로 줄을 나눈다. */
.btc-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1.25fr)) repeat(2, minmax(0, .75fr)); gap: 8px; }
.btc-sum { display: grid; align-content: start; gap: 2px; min-width: 0; padding: 8px 12px; border: 2px solid var(--btc-frame); border-radius: var(--btc-r-lg); background: var(--btc-bg); }
.btc-sum > span { color: var(--btc-label); font-size: 11px; font-weight: 800; letter-spacing: .02em; }

.btc-sum b small { color: var(--btc-label); font-size: 11px; font-weight: 700; }
.btc-sum em { color: var(--btc-label); font-size: 13px; font-style: normal; font-weight: 700; line-height: 1.6; }
.btc-sum i { color: var(--btc-hold); font-size: 11px; font-style: normal; font-weight: 700; }
/* 상태 표시: 사각 점 + 글자 */
.btc-status { flex: none; display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 8px; border: 1px solid var(--btc-line); background: var(--btc-bg); color: var(--btc-off); font-size: 12px; font-weight: 800; }
.btc-status::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
/* 동작 중(실행 중·청산 후 중지 대기)은 도는 원형 스피너로 표시한다. */
.btc-status:is([data-status="running"], [data-status="stopping"])::before { width: 11px; height: 11px; box-sizing: border-box; border: 2px solid currentColor; border-right-color: transparent; background: none; animation: btc-spin .9s linear infinite; }
.btc-status[data-status="stopping"]::before { animation-duration: 1.6s; }
@keyframes btc-spin { to { transform: rotate(360deg); } }
/* 동작 줄이기 설정에서도 상태 표시는 멈추지 않고 천천히 돈다(앱 전역 애니메이션 정지 규칙보다 우선). */
@media (prefers-reduced-motion: reduce) { .btc-status:is([data-status="running"], [data-status="stopping"])::before { animation-duration: 2.4s !important; animation-iteration-count: infinite !important; } }
/* 중지됨: 일시정지 모양(세로 막대 두 개) */
.btc-status[data-status="stopped"]::before { width: 9px; height: 11px; border-radius: 0; background: linear-gradient(to right, currentColor 0 3px, transparent 3px 6px, currentColor 6px 9px); }
.btc-status[data-status="running"] { color: var(--btc-ok); }
.btc-status[data-status="stopping"] { color: var(--btc-hold); }
/* 봇 카드: 제목 줄 + 정보 표 + 버튼 줄 */
.btc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; }
.btc-grid-body { display: grid; gap: 14px; min-width: 0; }
/* 같은 줄 카드는 높이가 같아지므로, 정보 영역이 남는 높이를 채우고 버튼은 항상 카드 맨 아래에 붙인다. */

.btc-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-bottom: 2px solid var(--btc-frame); background: var(--btc-head); }

.btc-mini-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }

.btc-mini-facts div { display: grid; gap: 2px; min-width: 0; padding: 8px 0; border-bottom: 1px solid var(--btc-line-soft); }
.btc-mini-facts div:nth-child(odd) { padding-right: 10px; }
.btc-mini-facts dt { color: var(--btc-label); font-size: 11px; font-weight: 700; }
.btc-mini-facts dd { margin: 0; overflow-wrap: anywhere; font-size: 14px; font-weight: 700; }

.btc-card-note { margin: 0; padding: 8px 12px; border-top: 1px solid var(--btc-line-soft); color: var(--btc-hold); font-size: 12px; font-weight: 700; }
.btc-empty { display: grid; gap: 10px; justify-items: start; padding: 24px; border: 1px dashed var(--btc-line); background: var(--btc-bg); }
.btc-empty h1, .btc-empty h2, .btc-empty p { margin: 0; }
/* 콘솔 */
.btc-back { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: 1px solid var(--btc-line); color: var(--btc-ink); font-size: 13px; font-weight: 800; text-decoration: none; }
.btc-console-head { justify-content: flex-start; }
.btc-console-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.btc-console-title h1 { margin: 0; font-size: clamp(19px, 2.4vw, 24px); }
.btc-console-head > .btn { order: 2; margin-left: auto; }
.btc-console-meta { order: 3; flex-basis: 100%; margin: 0; color: var(--btc-label); font-size: 13px; }
.btc-panel { min-width: 0; padding: 12px; border: 2px solid var(--btc-frame); background: var(--btc-bg); }
.btc-panel > h2:first-child, .btc-panel > .btc-panel-head:first-child { margin: -12px -12px 12px; padding: 0 12px; min-height: 44px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--btc-line); background: var(--btc-head); }
.btc-panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.btc-panel-head .btc-chips { margin: 5px 0; }
.btc-console-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 320px) minmax(300px, 340px); grid-template-areas: "main side controller"; gap: 14px; align-items: start; }
 .btc-side { grid-area: side; } .btc-controller { grid-area: controller; }
/* 탭: 패널 맨 위 제목 줄 자리에 붙는 사각 탭 */
.btc-tabs { display: flex; margin: -12px -12px 12px; border-bottom: 2px solid var(--btc-frame); background: var(--btc-head); overflow-x: auto; scrollbar-width: none; }
.btc-tab { flex: none; min-height: 44px; padding: 0 16px; border: 0; border-right: 1px solid var(--btc-line); background: transparent; color: var(--btc-label); font-size: 13px; font-weight: 800; cursor: pointer; touch-action: manipulation; }
.btc-app :is(.btc-tab, .btc-chip):focus-visible { outline: 2px solid var(--btc-accent); outline-offset: -3px; }
.btc-app :is(.btc-tab, .btc-chip):focus:not(:focus-visible) { outline: none; }

.btc-panel-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.btc-bar-label { color: var(--btc-label); font-size: 12px; font-weight: 800; }
/* 수익 리포트 */
.btc-report-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.btc-report-stats div { display: grid; gap: 4px; padding: 10px 12px; border: 2px solid var(--btc-frame); background: var(--btc-sunken); }
.btc-report-stats span { color: var(--btc-label); font-size: 11px; font-weight: 800; }
.btc-report-stats strong { font-size: 18px; }
.btc-report-stats small { color: var(--btc-label); font-size: 12px; }
.btc-pnl-chart { height: clamp(200px, 30vh, 320px); margin: 10px 0; border: 1px solid var(--btc-line-soft); }
.btc-report-table { min-width: 760px; font-size: 13px; }
.btc-report-table td, .btc-report-table th, .btc-plan-table td:nth-child(-n + 4) { white-space: nowrap; }
/* 왼쪽 열 폭이 좁으면(태블릿 3단) 수익 지표를 2×2로 */.btc-main { grid-area: main; container-type: inline-size; }
@container (max-width: 600px) {
  .btc-report-stats { grid-template-columns: 1fr 1fr; }
}
/* 실시간 로그 */
.btc-log { display: grid; max-height: min(70vh, 640px); margin: 0 -12px; padding: 0; overflow-y: auto; list-style: none; font-size: 12px; }
.btc-log li { display: grid; gap: 2px; padding: 7px 12px 7px 15px; border-bottom: 1px solid var(--btc-line-soft); box-shadow: inset 3px 0 0 var(--btc-off); }
.btc-log li[data-kind="open"] { box-shadow: inset 3px 0 0 var(--btc-marker-entry); }
.btc-log li[data-kind="close"] { box-shadow: inset 3px 0 0 var(--btc-marker-take-profit); }
.btc-log li[data-kind="failed"] { box-shadow: inset 3px 0 0 var(--error); }
.btc-log time { color: var(--btc-label); font-size: 11px; }
.btc-log span { overflow-wrap: anywhere; }
/* 봇 컨트롤러: 매매 설정 행 */
.btc-settings { display: grid; gap: 0; margin-top: 4px; }
.btc-settings fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.btc-settings-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 16px -12px 0; padding: 8px 12px; border-block: 1px solid var(--btc-line); background: var(--btc-head); }
.btc-settings-head h3 { margin: 0; color: var(--btc-ink); font-size: 13px; letter-spacing: 0; }
.btc-checks { display: flex; gap: 14px; }
.btc-checks label { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; font-size: 13px; font-weight: 800; }
.btc-checks input { width: 20px; height: 20px; accent-color: var(--btc-ink); }
.btc-setting { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: center; gap: 10px; min-height: 48px; border-bottom: 1px solid var(--btc-line-soft); }
.btc-setting[hidden] { display: none; }
.btc-setting > span { color: var(--btc-label); font-size: 12px; font-weight: 800; }
.btc-setting input, .btc-setting select, .btc-offset-grid input { width: 100%; min-width: 0; min-height: 40px; padding: 0 10px; border: 1px solid var(--btc-line); background: var(--btc-sunken); color: var(--btc-ink); font-family: var(--font-numeric); font-size: 16px; text-align: right; }
.btc-setting select { text-align: left; }
.btc-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.btc-offset { padding: 10px 0; border-bottom: 1px solid var(--btc-line-soft); }
.btc-offset h4 { margin: 0 0 8px; font-size: 13px; }
.btc-offset-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 8px; }
.btc-offset-grid label { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px; }
.btc-offset-grid span { min-width: 52px; color: var(--btc-label); font-size: 11px; font-weight: 800; }
.btc-settings fieldset:disabled input, .btc-settings fieldset:disabled select { opacity: .6; }
.btc-settings-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 4px; }
.btc-control-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.btc-span-2, .btc-full { grid-column: 1 / -1; width: 100%; }
.btc-position { display: grid; gap: 8px; margin-bottom: 8px; padding: 10px; border: 1px solid var(--btc-line); background: var(--btc-sunken); }
.btc-position-head { display: flex; justify-content: space-between; gap: 8px; }
.btc-position-head strong { display: inline-flex; align-items: center; gap: 6px; }
.btc-position-head strong::before { content: ""; width: 7px; height: 7px; background: var(--rise); }
.btc-position[data-side="SHORT"] .btc-position-head strong::before { background: var(--fall); }
.btc-chart { height: clamp(260px, 38vh, 420px); min-width: 0; border: 1px solid var(--btc-line-soft); }

.btc-plan-table { min-width: 620px; font-size: 13px; }
.btc-app table th { color: var(--btc-label); font-size: 11px; font-weight: 800; background: var(--btc-sunken); }
.btc-app table td, .btc-app table th { padding: 9px 10px; border-bottom: 1px solid var(--btc-line-soft); }
.btc-plan-table tr[data-status="INACTIVE"], .btc-plan-table tr[data-status="BLOCKED"], .btc-plan-table tr[data-status="ENTERED"] { color: var(--btc-label); }
.btc-marker { --marker: var(--btc-marker-entry); display: inline-flex; align-items: center; gap: 5px; min-height: 22px; padding: 0 6px; border: 1px solid color-mix(in srgb, var(--marker) 60%, transparent); color: var(--marker); background: color-mix(in srgb, var(--marker) 10%, transparent); font-size: 11px; font-weight: 800; white-space: nowrap; }
.btc-marker::before { content: ""; width: 6px; height: 6px; background: var(--marker); }
.btc-marker[data-kind="average"] { --marker: var(--btc-marker-average); }
.btc-marker[data-kind="take-profit"] { --marker: var(--btc-marker-take-profit); }
.btc-marker[data-kind="stop-loss"] { --marker: var(--btc-marker-stop-loss); }
.btc-marker[data-kind="hedge"] { --marker: var(--btc-marker-hedge); }
.btc-marker[data-status="INACTIVE"], .btc-marker[data-status="BLOCKED"], .btc-marker[data-status="ENTERED"] { border-style: dashed; opacity: .65; }
/* 호가 사다리 */
.btc-ladder { display: grid; margin: 0 -12px; font-size: 13px; }
.btc-ladder-head, .btc-ladder-row { display: grid; grid-template-columns: 1.15fr 1fr 1fr; align-items: center; gap: 6px; }
.btc-ladder-head { padding: 6px 12px; border-bottom: 1px solid var(--btc-line); color: var(--btc-label); font-size: 11px; font-weight: 800; }
.btc-ladder-head span + span, .btc-ladder-row > span:nth-of-type(2), .btc-ladder-row > span:nth-of-type(3) { text-align: right; }
.btc-ladder-row { position: relative; min-height: 28px; padding: 0 12px; border-bottom: 1px solid var(--btc-line-soft); }
.btc-depth { position: absolute; inset: 0 0 0 auto; background: color-mix(in srgb, var(--fall) 10%, transparent); pointer-events: none; }
.btc-ladder-row[data-side="bid"] .btc-depth { background: color-mix(in srgb, var(--rise) 10%, transparent); }
.btc-ladder-row > span { position: relative; }
.btc-ladder-row[data-side="ask"] .btc-ladder-price { color: var(--fall); font-weight: 700; }
.btc-ladder-row[data-side="bid"] .btc-ladder-price { color: var(--rise); font-weight: 700; }
.btc-ladder-row[data-marked] { box-shadow: inset 3px 0 0 var(--btc-marker-entry); }
.btc-ladder-row[data-marked="take-profit"] { box-shadow: inset 3px 0 0 var(--btc-marker-take-profit); }
.btc-ladder-row[data-marked="stop-loss"] { box-shadow: inset 3px 0 0 var(--btc-marker-stop-loss); }
.btc-ladder-row[data-marked="hedge"] { box-shadow: inset 3px 0 0 var(--btc-marker-hedge); }
.btc-ladder-row[data-marked="average"] { box-shadow: inset 3px 0 0 var(--btc-marker-average); }
.btc-ladder-marks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px; padding-bottom: 4px; }
.btc-ladder-mid { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; padding: 10px 12px; border-block: 1px solid var(--btc-line); background: var(--btc-head); }
.btc-ladder-mid strong { font-size: 20px; }
.btc-ladder-mid small { color: var(--btc-label); }
.btc-ladder-off { display: grid; padding: 6px 12px; border-bottom: 1px solid var(--btc-line); background: var(--btc-sunken); }
.btc-ladder-off[data-where="below"] { border-top: 1px solid var(--btc-line); border-bottom: 0; }
.btc-ladder-off p { margin: 0 0 4px; color: var(--btc-label); font-size: 11px; font-weight: 800; }
.btc-ladder-off-row { display: grid; grid-template-columns: minmax(0, 1.2fr) 1fr auto; align-items: center; gap: 8px; min-height: 28px; }
.btc-ladder-off-row > span:nth-child(2) { text-align: right; }
.btc-ratio { display: flex; margin: 10px 12px 0; font-size: 11px; font-weight: 800; color: #fff; }
.btc-ratio span { min-width: 64px; padding: 5px 8px; background: var(--rise); }
.btc-ratio span + span { background: var(--fall); text-align: right; }
.btc-legend { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid var(--btc-line-soft); list-style: none; }
/* 실행·주문 상태 */
.btc-safety-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); gap: 8px; }
.btc-safety-facts div { display: grid; align-content: start; gap: 2px; min-width: 0; padding: 8px 12px; border: 2px solid var(--btc-frame); background: var(--btc-sunken); }
.btc-safety-facts strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.btc-safety-facts span { color: var(--btc-label); font-size: 11px; font-weight: 800; }
.btc-safety-facts div[data-level="ok"] strong { color: var(--btc-ok); }
.btc-safety-facts div[data-level="hold"] strong { color: var(--btc-hold); }
/* 거래소 연결·봇 설정 폼 (기존 trading-* 클래스도 각지게) */

.btc-app .trading-form input, .btc-app .trading-form select { min-height: 44px; border: 1px solid var(--btc-line); background: var(--btc-sunken); color: var(--btc-ink); font-size: 16px; }

.btc-form-page .trading-form { margin-top: 0; }

.btc-login-form { max-width: 420px; grid-template-columns: 1fr; }
/* 태블릿 가로(예: 1024~1180px): 조작 패널을 위로 올리고 차트·호가를 나란히 */
@media (max-width: 1180px) {
  .btc-console-grid { grid-template-columns: minmax(0, 1fr) minmax(300px, 330px); grid-template-areas: "main controller" "main side"; }
}
/* 태블릿 세로(예: 768~900px): 한 줄로 쌓고 호가를 차트 위에 */
@media (max-width: 900px) {
  .btc-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .btc-console-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "controller" "side" "main"; }
  .btc-report-stats { grid-template-columns: 1fr 1fr; }
}

@media (pointer: coarse) {
  :root .btc-app .btn, .btc-chip { min-height: 48px; }
  :root .btc-app .btn.btc-icon-btn { width: 48px; }
  .btc-chips .btc-chip { min-height: 44px; }
  .btc-ladder-row { min-height: 34px; }
}

/* ==== BTC 터미널 스킨 (2026-10-26) ==== 자동매매 봇 느낌: 숫자 중심 글꼴, 항목별 고정 색, 강한 대비, 카드 조작 바.
   되돌리기: .tmp/btc-design-backup-20261026-before-terminal/RESTORE.md */
:root { --btc-num-font: "Barlow Semi Condensed", "Inter", system-ui, sans-serif; --btc-bar: #f5c518; --btc-bar-ink: #15130a;
  --btc-c-price: #0a8a4a; --btc-c-amount: #8f6500; --btc-c-target: #0e7490; --btc-legend: #7a5a00; --btc-frame: #9aa2b0; }
:root[data-theme="dark"] { --btc-bg: #0b0f15; --btc-head: #121822; --btc-sunken: #080b10; --btc-line: #1f2733; --btc-line-soft: #161d27; --btc-frame: #2c3748; --btc-ink: #eef2f8; --btc-label: #7f8a9c;
  --btc-c-price: #3ee08f; --btc-c-amount: #ffd24a; --btc-c-target: #5fd4ff; --btc-legend: #ffd24a; }
/* 숫자: 좁은 계기판 글꼴 + 고정폭 숫자 */
.btc-app .btc-num, .btc-app .numeric, .btc-sum b, .btc-ladder, .btc-report-stats strong, .btc-safety-facts strong { font-family: var(--btc-num-font); font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.btc-c-price { color: var(--btc-c-price); }
.btc-c-amount { color: var(--btc-c-amount); }
.btc-c-target { color: var(--btc-c-target); }
.btc-c-plain { font-family: var(--font-sans) !important; font-size: 13px !important; color: var(--btc-ink); }
/* 패널 제목은 터미널식 노란 제목 */
.btc-app .btc-panel-head h2, .btc-app .btc-settings-head h3, .btc-app .btc-panel-bar > strong { color: var(--btc-legend); letter-spacing: .02em; }
.btc-tab[aria-selected="true"] { background: var(--btc-bg); color: var(--btc-ink); box-shadow: inset 0 3px 0 var(--btc-bar); }
/* 요약 줄: 금액은 노랑, 잘리지 않게 */.btc-sum b { overflow: visible; font-size: clamp(15px, 1.5vw, 19px); font-weight: 800; line-height: 1.3; text-overflow: clip; white-space: nowrap; }
.btc-sum.btc-sum-money:first-child b, .btc-sum.btc-sum-money:nth-child(2) b { color: var(--btc-c-amount); }
/* 봇 카드 (MM 카드식): 거래소 색 띠 → 종목 → 설정(작게) → 운영 수치(오른쪽 정렬) → 노란 조작 바 */.btc-card { display: flex; flex-direction: column; border: 2px solid var(--btc-frame); background: var(--btc-bg); cursor: pointer; border-color: var(--btc-frame); }
.btc-card[data-status="running"] { border-color: var(--btc-ok); }
.btc-card[data-status="stopping"] { border-color: var(--btc-hold); }
.btc-card > .btc-card-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px 8px 8px 10px; border-bottom: 2px solid color-mix(in srgb, var(--ex-bg, var(--btc-head)) 60%, transparent); background: color-mix(in srgb, var(--ex-bg, var(--btc-head)) var(--ex-alpha, 70%), transparent); color: var(--ex-ink, var(--btc-ink)); }

.btc-card > .btc-card-head .btc-ex-market { color: inherit; opacity: .8; }
/* OKX 검정 띠는 다크 테마 카드 바탕과 붙어 보이지 않도록 아래 경계를 밝게 */
.btc-card[data-exchange="OKX"] > .btc-card-head { border-bottom-color: #4a505a; }
/* 진한 거래소색 위에서도 상태·아이콘 색(초록 재생·빨간 정지)이 보이도록 어두운 캡슐에 담는다 */
.btc-card > .btc-card-head .btc-head-actions { padding: 2px; border-radius: var(--btc-r-md); background: var(--btc-bg); }
.btc-card > .btc-card-head h2 { color: inherit; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.btc-card > .btc-card-head .btc-status { min-height: 24px; padding: 0 7px; background: var(--btc-bg); }
.btc-head-actions { display: flex; align-items: center; gap: 2px; }
.btc-head-icon { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: var(--btc-r-md); background: transparent; color: var(--btc-ink); cursor: pointer; touch-action: manipulation; }
.btc-head-icon[data-run="start"] { color: var(--btc-go); }
.btc-head-icon[data-run="stop"] { color: var(--btc-stop); }
.btc-head-icon:disabled { cursor: not-allowed; opacity: .35; }
.btc-head-icon:focus-visible, .btc-bar-btn:focus-visible { outline: 2px solid var(--btc-accent); outline-offset: 1px; }
@media (pointer: coarse) { .btc-head-icon { width: 44px; height: 44px; } }
.btc-head-icon:hover { background: color-mix(in srgb, var(--btc-ink) 10%, transparent); }
.btc-head-icon[aria-disabled="true"] { opacity: .35; }
.btc-card-market { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 10px 12px 2px; }
.btc-card-market strong { font-size: 22px; font-weight: 700; }
.btc-ex { color: var(--btc-c-amount); font-family: var(--btc-num-font); font-size: 17px; font-weight: 700; }
.btc-spec { display: grid; grid-template-columns: .7fr .8fr .8fr 1.4fr; gap: 4px; margin: 0; padding: 4px 12px 8px; border-bottom: 1px solid var(--btc-line); }
.btc-spec div { display: grid; gap: 0; min-width: 0; }
.btc-spec dt { color: var(--btc-label); font-size: 10px; font-weight: 800; }
.btc-spec dd { margin: 0; overflow: hidden; font-size: 15px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.btc-lines { flex: 1 0 auto; display: grid; align-content: start; margin: 0; padding: 6px 12px 10px; }
.btc-lines div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; min-height: 26px; }
.btc-lines dt { color: var(--btc-label); font-size: 12px; font-weight: 700; white-space: nowrap; }
.btc-lines dd { margin: 0; font-size: 18px; font-weight: 700; text-align: right; white-space: nowrap; }
.btc-lines dd small { color: var(--btc-label); font-size: 12px; font-weight: 600; }
.btc-lines dd[data-tone="up"] small, .btc-lines dd[data-tone="down"] small { color: inherit; opacity: .8; }
.btc-lines dd[data-flash] { border-radius: 4px; animation: btc-flash 1s ease-out; }

@keyframes btc-flash { from { background: color-mix(in srgb, var(--flash) 35%, transparent); } to { background: transparent; } }
.btc-card-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 52px; margin-top: auto; padding: 4px 6px 4px 10px; border-top: 1px solid var(--btc-line); color: var(--btc-ink); }
@media (max-width: 560px) {
  .btc-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .btc-spec { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 6px; }
}
/* 거래소 색(카드·선택 버튼 공통) */
.btc-app { --ex-alpha: 95%; } /* 거래소 제목 띠 불투명도(기본): 낮출수록 더 투명 */
/* 거래소 테마색: 각 로고 이미지에서 뽑은 실제 색. --ex-bg 제목 띠 바탕, --ex-ink 그 위 글자, --ex 줄무늬 강조 */
.btc-app [data-exchange="BITGET"] { --ex: #3bc4ce; --ex-bg: #3bc4ce; --ex-ink: #111111; --ex-alpha: 70%; } /* 로고색 #00f0ff에서 채도만 낮춤 */
.btc-app [data-exchange="OKX"] { --ex: #9aa3b0; --ex-bg: #000000; --ex-ink: #ffffff; }
.btc-app [data-exchange="UPBIT"] { --ex: #3b6cff; --ex-bg: #083888; --ex-ink: #ffffff; }
.btc-app [data-exchange="BITHUMB"] { --ex: #f87020; --ex-bg: #f87020; --ex-ink: #1a1206; }
/* 연결 상태 표시: 점 + 글자 */
.btc-conn { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; padding: 0 8px; border: 1px solid var(--btc-line); border-radius: var(--btc-r-sm); background: var(--btc-bg); color: var(--btc-off); font-size: 12px; font-weight: 800; white-space: nowrap; }
.btc-conn::before { content: ""; width: 8px; height: 8px; border-radius: 50%; border: 2px solid currentColor; box-sizing: border-box; }
.btc-conn[data-level="ok"] { color: var(--btc-ok); }
.btc-conn[data-level="ok"]::before { background: currentColor; }
.btc-conn[data-level="hold"] { color: var(--btc-hold); }
.btc-conn[data-level="bad"] { color: var(--error); }
/* 거래소 연결 카드 */
.btc-ex-card { cursor: default; }
.btc-ex-card[data-status="connected"] { border-color: color-mix(in srgb, var(--btc-ok) 70%, var(--btc-frame)); }
.btc-ex-market { color: var(--btc-label); font-size: 12px; font-weight: 700; white-space: nowrap; }
.btc-bar-btn { min-height: 44px; padding: 0 14px; border: 0; border-radius: var(--btc-r-md); background: transparent; color: var(--btc-ink); font-size: 14px; font-weight: 800; cursor: pointer; touch-action: manipulation; }
.btc-bar-btn:hover { background: color-mix(in srgb, var(--btc-ink) 8%, transparent); }
.btc-bar-btn[data-danger] { color: var(--error); }
.btc-bar-btn:disabled { cursor: not-allowed; opacity: .45; }
.btc-card-bar:has(.btc-bar-btn) { justify-content: flex-end; }
.btc-key-form { display: grid; gap: 10px; margin-top: auto; padding: 12px; border-top: 1px solid var(--btc-line); background: var(--btc-sunken); }
.btc-key-form-title { margin: 0; color: var(--btc-legend); font-size: 13px; font-weight: 800; }
.btc-key-form .btc-form-actions { justify-content: flex-end; }
/* 봇 생성·설정: 구역 폼 + 오른쪽 고정 미리보기 */
.btc-form-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 300px); gap: 14px; align-items: start; }
.btc-form-main { display: grid; gap: 14px; min-width: 0; }
.btc-form-summary { position: sticky; top: calc(var(--header-h) + 12px); display: grid; gap: 10px; }
.btc-form-summary .btc-lines { padding: 0; }
.btc-form-summary .btc-lines dd { font-size: 16px; }
.btc-form-summary .btc-form-actions { display: grid; grid-template-columns: 1fr 1.4fr; }
.btc-fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 12px 14px; }
.btc-form-main .field { display: grid; gap: 6px; min-width: 0; margin: 0; }
.btc-form-main .field > span { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; color: var(--btc-label); font-size: 12px; font-weight: 800; }
.btc-form-main .field > span small { color: var(--btc-label); font-size: 11px; font-weight: 600; opacity: .8; }
.btc-form-main .field input, .btc-form-main .field select { width: 100%; min-width: 0; min-height: 44px; padding: 0 12px; border: 1px solid var(--btc-line); background: var(--btc-sunken); color: var(--btc-ink); font-size: 16px; }
.btc-form-main .field input[type="number"] { font-family: var(--btc-num-font); font-size: 18px; font-weight: 600; text-align: right; }
.btc-form-main [data-entry-frequency][hidden] { display: none; }
/* 세그먼트 버튼(라디오) */
.btc-seg { display: flex; min-height: 44px; }
.btc-seg label { flex: 1 1 0; position: relative; display: flex; }
.btc-seg input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.btc-seg span { flex: 1; display: grid; place-items: center; margin-left: -1px; padding: 0 10px; border: 1px solid var(--btc-line); background: var(--btc-sunken); color: var(--btc-label); font-size: 14px; font-weight: 800; white-space: nowrap; }
.btc-seg label:first-child span { margin-left: 0; border-radius: var(--btc-r-md) 0 0 var(--btc-r-md); }
.btc-seg label:last-child span { border-radius: 0 var(--btc-r-md) var(--btc-r-md) 0; }
.btc-seg label:only-child span { border-radius: var(--btc-r-md); }
.btc-seg input:checked + span { position: relative; z-index: 1; border-color: var(--btc-ink); background: var(--btc-ink); color: var(--btc-bg); }
.btc-seg input:focus-visible + span { outline: 2px solid var(--btc-accent); outline-offset: 2px; }
/* 거래소 선택 버튼 */
.btc-ex-picks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.btc-ex-pick { display: grid; justify-items: start; gap: 2px; min-height: 64px; padding: 10px 12px 10px 14px; border: 2px solid var(--btc-line); border-radius: var(--btc-r-lg); background: var(--btc-sunken); box-shadow: inset 4px 0 0 var(--ex); color: var(--btc-ink); text-align: left; cursor: pointer; touch-action: manipulation; }
.btc-ex-pick strong { font-size: 16px; }
.btc-ex-pick span { color: var(--btc-label); font-size: 12px; font-weight: 700; }
.btc-ex-pick .btc-conn { margin-top: 4px; }
.btc-ex-pick[aria-pressed="true"] { border-color: var(--ex); background: color-mix(in srgb, var(--ex) 16%, var(--btc-sunken)); }
.btc-inline-warn { margin: 10px 0 0; padding: 8px 12px; border: 1px solid color-mix(in srgb, var(--btc-hold) 50%, transparent); border-radius: var(--btc-r-md); color: var(--btc-hold); font-size: 13px; font-weight: 700; }
.btc-inline-warn a { color: inherit; }
/* 분할 진입 표 */
.btc-offset-table { display: grid; gap: 4px; overflow-x: auto; }
.btc-offset-line { display: grid; grid-template-columns: 34px repeat(4, minmax(0, 1fr)); align-items: center; gap: 6px; }
.btc-offset-head span { color: var(--btc-label); font-size: 11px; font-weight: 800; text-align: right; }
.btc-offset-head span:first-child, .btc-offset-line > .btc-num { text-align: center; }
.btc-offset-line > .btc-num { color: var(--btc-legend); font-size: 18px; font-weight: 700; }
.btc-offset-line input { width: 100%; min-width: 0; min-height: 42px; padding: 0 8px; border: 1px solid var(--btc-line); border-radius: var(--btc-r-md); background: var(--btc-sunken); color: var(--btc-ink); font-family: var(--btc-num-font); font-size: 17px; font-weight: 600; text-align: right; }
[data-weight-sum][data-warn="true"] { color: var(--error); }
@media (max-width: 900px) {
  .btc-form-layout { grid-template-columns: minmax(0, 1fr); }
  .btc-form-summary { position: static; }
  .btc-ex-picks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 거래소 로고·코인 아이콘 */
.btc-logo { display: inline-block; flex: none; margin-right: 6px; border-radius: 5px; vertical-align: -0.2em; object-fit: contain; }
.btc-logo-coin { border-radius: 50%; }
.btc-card-market strong, .btc-ex, .btc-chip, .btc-ex-pick strong, .btc-ex-card h2 { display: inline-flex; align-items: center; }
.btc-chip .btc-logo { margin-right: 6px; }
.btc-console-meta .btc-logo { margin-right: 4px; }
/* ==== BTC 터미널 스킨 끝 ==== */

/* ==== BTC 노트북·데스크톱(마우스) 최적화 (2026-10-26) ==== 기준: LG 그램북 15.6" FHD, Windows 11 배율 125%(≈1536×730) / 100%(≈1920×950).
   되돌리기: 이 구역을 지우면 태블릿 기준으로 돌아간다. */
/* BTC 화면만 넓게: 100% 배율(1920px)에서 양옆 빈 공간을 줄인다. */
#main-content .main-inner:has(> .btc-app) { width: min(1760px, calc(100% - var(--gutter) * 2)); padding-top: 16px; }
/* 얇은 스크롤바(Windows 기본 스크롤바는 두껍다) */
.btc-app, .btc-app * { scrollbar-width: thin; scrollbar-color: var(--btc-frame) transparent; }
.btc-app ::-webkit-scrollbar { width: 8px; height: 8px; }
.btc-app ::-webkit-scrollbar-thumb { border-radius: 8px; background: var(--btc-frame); }
.btc-app ::-webkit-scrollbar-track { background: transparent; }
/* 제목 줄에 필터를 함께: 제목 · 필터 · 버튼 */
.btc-toolbar { flex-wrap: wrap; }
.btc-toolbar > div:first-child { margin-right: auto; }
.btc-toolbar .btc-filters { order: 2; }
.btc-toolbar .btc-toolbar-actions { order: 3; }
@media (min-width: 1100px) {
  .btc-toolbar { flex-wrap: nowrap; }
  .btc-toolbar .btc-filters { order: 0; margin-left: 24px; margin-right: auto; }
  .btc-toolbar > div:first-child { margin-right: 0; }
}
@media (max-width: 1099px) { .btc-toolbar .btc-filters { flex-basis: 100%; } }
/* 마우스 환경: 버튼·입력 높이를 줄여 밀도를 높인다(터치 기기는 기존 크기 유지) */
@media (pointer: fine) {
  :root .btc-app .btn { min-height: 36px; padding: 0 14px; }
  :root .btc-app .btn.btc-icon-btn { width: 36px; }
  .btc-chip { min-height: 34px; padding: 0 13px; }
  .btc-chips .btc-chip { min-height: 30px; }
  .btc-head-icon { width: 34px; height: 34px; }
  .btc-tab { min-height: 38px; }
  .btc-toolbar h1 { font-size: 24px; }
  .btc-toolbar .eyebrow { margin-bottom: 2px; }
  .btc-setting { min-height: 42px; }
  .btc-setting input, .btc-setting select, .btc-offset-grid input, .btc-offset-line input, .btc-form-main .field input, .btc-form-main .field select { min-height: 36px; }
  .btc-seg { min-height: 36px; }
  .btc-bar-btn { min-height: 36px; }
  .btc-back { min-height: 36px; }
  /* 카드: 여백·글자를 조금 줄여 첫 화면에 더 많이 */
  .btc-card > .btc-card-head { padding: 6px 6px 6px 10px; }
  .btc-card-market { padding: 8px 12px 0; }
  .btc-card-market strong { font-size: 20px; }
  .btc-spec { padding: 2px 12px 6px; }
  .btc-spec dd { font-size: 14px; }
  .btc-lines { padding: 4px 12px 8px; }
  .btc-lines div { min-height: 23px; }
  .btc-lines dd { font-size: 16px; }
  .btc-summary .btc-sum { padding: 6px 12px; }
  .btc-ladder-row { min-height: 26px; }
}
/* 마우스를 올리면 카드·표 줄을 살짝 강조 */
@media (hover: hover) {
  .btc-card { transition: box-shadow .15s, transform .15s; }
  .btc-grid .btc-card[data-bot-card]:hover { box-shadow: 0 0 0 1px var(--btc-ink), 0 8px 24px rgb(0 0 0 / 22%); }
  .btc-app table tbody tr:hover td { background: color-mix(in srgb, var(--btc-ink) 5%, transparent); }
  .btc-head-icon:not(:disabled):hover { background: color-mix(in srgb, var(--btc-ink) 12%, transparent); }
}
/* 콘솔: 넓고 충분히 높은 화면에서는 세 칸을 화면 높이에 고정하고 칸 안에서만 스크롤한다(데스크톱 거래 프로그램 방식). */
@media (min-width: 1181px) and (min-height: 600px) {
  .btc-console-grid { align-items: start; }
  .btc-console-grid > .btc-panel { position: sticky; top: calc(var(--header-h) + 10px); max-height: calc(100dvh - var(--header-h) - 20px); overflow-y: auto; overscroll-behavior: contain; }
  .btc-console-grid > .btc-panel > .btc-tabs, .btc-console-grid > .btc-panel > .btc-panel-head:first-child { position: sticky; top: -12px; z-index: 3; }
  .btc-chart { height: clamp(220px, 34vh, 380px); }
  .btc-pnl-chart { height: clamp(170px, 26vh, 300px); }
  .btc-log { max-height: none; }
}
/* 실행 중인 봇 카드: 테두리 위로 빛줄기가 도는 로딩 효과. 기본 테두리는 연한 초록, 진한 초록 빛줄기가 회전한다. */
@property --btc-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.btc-grid .btc-card[data-bot-card][data-status="running"] {
  border-width: 3px;
  border-color: transparent;
  background:
    linear-gradient(var(--btc-bg), var(--btc-bg)) padding-box,
    conic-gradient(from var(--btc-angle),
      color-mix(in srgb, var(--btc-run) 30%, transparent) 0deg 230deg,
      var(--btc-run) 300deg,
      color-mix(in srgb, var(--btc-run) 55%, #fff) 330deg,
      color-mix(in srgb, var(--btc-run) 30%, transparent) 360deg) border-box;
  animation: btc-border-spin 2.4s linear infinite;
}
@keyframes btc-border-spin { to { --btc-angle: 360deg; } }
/* 동작 줄이기 설정에서도 멈추지 않고 천천히 돈다(앱 전역 애니메이션 정지 규칙보다 우선) */
@media (prefers-reduced-motion: reduce) { .btc-grid .btc-card[data-bot-card][data-status="running"] { animation-duration: 6s !important; animation-iteration-count: infinite !important; } }
/* 실행 관련 색: 다크 모드에서만 실제 터미널 글자 녹색(#00FF41)으로 통일. 라이트 모드는 기존 초록(--btc-ok)을 그대로 쓴다.
   다크 모드의 상태 표시·제목 줄 아이콘 묶음은 검은 터미널 캡슐(검정 위 녹색)로 둔다. */
:root { --btc-run: var(--btc-ok); }
:root[data-theme="dark"] { --btc-run: #00ff41; --btc-run-strong: #5cff85; --btc-run-ink: #00170a; --btc-term: #050806; --btc-term-line: #1d2a21; --btc-term-ink: #e6ede8; }
:root[data-theme="dark"] .btc-app .btc-status { border-color: var(--btc-term-line); background: var(--btc-term); color: #8a948c; }
:root[data-theme="dark"] .btc-app .btc-status[data-status="running"] { color: var(--btc-run); }
:root[data-theme="dark"] .btc-app .btc-status[data-status="stopping"] { color: #ffc24a; }
:root[data-theme="dark"] .btc-card > .btc-card-head .btc-head-actions { background: var(--btc-term); }
:root[data-theme="dark"] .btc-card > .btc-card-head .btc-head-icon { color: var(--btc-term-ink); }
:root[data-theme="dark"] .btc-card > .btc-card-head .btc-head-icon[data-run="start"] { color: var(--btc-run); }

:root[data-theme="dark"] .btc-app .btn.btn-go, :root[data-theme="dark"] .btc-app .btn.btn-go:hover { border-color: var(--btc-run); background: var(--btc-run); color: var(--btc-run-ink); }
:root[data-theme="dark"] .btc-app .btn.btn-go:hover { border-color: var(--btc-run-strong); background: var(--btc-run-strong); }
/* 정지·위험 관련 빨강: 다크 모드에서만 터미널 녹색과 같은 강도의 터미널 빨강(#FF3131). 수익을 뜻하는 손익 빨강(--rise)은 데이터 색이라 제외. */
:root[data-theme="dark"] { --btc-halt: #ff3131; --btc-halt-strong: #ff6161; --btc-halt-ink: #1a0303; }
:root[data-theme="dark"] .btc-card > .btc-card-head .btc-head-icon[data-run="stop"] { color: var(--btc-halt); }
:root[data-theme="dark"] .btc-app .btn.btn-stop, :root[data-theme="dark"] .btc-app .btn.btn-stop:hover { border-color: var(--btc-halt); background: var(--btc-halt); color: var(--btc-halt-ink); }
:root[data-theme="dark"] .btc-app .btn.btn-stop:hover { border-color: var(--btc-halt-strong); background: var(--btc-halt-strong); }
:root[data-theme="dark"] .btc-app .btn.btn-danger { border-color: color-mix(in srgb, var(--btc-halt) 65%, transparent); color: var(--btc-halt); }
:root[data-theme="dark"] .btc-app .btn.btn-danger:hover { border-color: var(--btc-halt); background: color-mix(in srgb, var(--btc-halt) 12%, transparent); color: var(--btc-halt); }
:root[data-theme="dark"] .btc-bar-btn[data-danger] { color: var(--btc-halt); }
:root[data-theme="dark"] .btc-app .trading-inline-error, :root[data-theme="dark"] .btc-app .trading-notice[data-error="true"] { color: var(--btc-halt); }
:root[data-theme="dark"] .btc-conn[data-level="bad"] { color: var(--btc-halt); }
/* 평가손익 색: 한국식(수익 빨강·손실 파랑) 유지, 다크 모드에서만 터미널 강도로. 호가 매도/매수 줄과 캔들 차트는 손익이 아니라 제외. */
:root { --btc-pnl-up: var(--rise); --btc-pnl-down: var(--fall); }
:root[data-theme="dark"] { --btc-pnl-up: #ff3131; --btc-pnl-down: #3d9bff; }
.btc-app [data-tone="up"] { color: var(--btc-pnl-up); }
.btc-app [data-tone="down"] { color: var(--btc-pnl-down); }
.btc-lines dd[data-flash="up"] { --flash: var(--btc-pnl-up); }
.btc-lines dd[data-flash="down"] { --flash: var(--btc-pnl-down); }
/* 가격·파랑 계열: 다크 모드에서만 터미널 톤. BTC 화면 안의 상승/하락 색(--rise/--fall)도 터미널 빨강/파랑으로 바꿔
   호가 매도·매수 줄, 깊이 막대, 비율 막대, 포지션 방향 표시, 캔들까지 같은 짝으로 맞춘다. */
:root[data-theme="dark"] .btc-app { --rise: #ff3131; --fall: #3d9bff; --btc-c-price: #00ff41; --btc-c-target: #00e5ff; --btc-marker-hedge: #00e5ff; }
/* ==== BTC 노트북·데스크톱 최적화 끝 ==== */
