/**
 * BKIG Terminal — Deep Dark Theme (Bloomberg / Modern SaaS)
 * Tailwind로 처리하기 번거로운 부분만 최소한으로 정의.
 */

/* ─── Task 1: Global scrollbar (dark theme, 6px, sleek) ─── */
.bkig-terminal .bkig-scroll::-webkit-scrollbar,
.bkig-terminal.bkig-scroll::-webkit-scrollbar,
.bkig-terminal ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.bkig-terminal .bkig-scroll::-webkit-scrollbar-track,
.bkig-terminal.bkig-scroll::-webkit-scrollbar-track,
.bkig-terminal ::-webkit-scrollbar-track {
  background: #0f172a;
  border-radius: 3px;
}

.bkig-terminal .bkig-scroll::-webkit-scrollbar-thumb,
.bkig-terminal.bkig-scroll::-webkit-scrollbar-thumb,
.bkig-terminal ::-webkit-scrollbar-thumb {
  background: #334155;
  border-radius: 3px;
}

.bkig-terminal .bkig-scroll::-webkit-scrollbar-thumb:hover,
.bkig-terminal.bkig-scroll::-webkit-scrollbar-thumb:hover,
.bkig-terminal ::-webkit-scrollbar-thumb:hover {
  background: #475569;
}

.bkig-terminal .bkig-scroll,
.bkig-terminal.bkig-scroll {
  scrollbar-width: thin;
  scrollbar-color: #334155 #0f172a;
}

.bkig-terminal {
  scrollbar-width: thin;
  scrollbar-color: #334155 #0f172a;
  font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', ui-sans-serif, system-ui, 'Inter', sans-serif;
}

/* ─── Task 2: Typography & information density (mono, labels, data) ─── */
.bkig-terminal .font-mono,
.bkig-terminal [class*="tabular-nums"],
.bkig-terminal .internal-research-table td,
.bkig-terminal .internal-research-table th,
.bkig-terminal .smart-ticker,
.bkig-terminal .portfolio-num-emphasis,
.bkig-terminal .dart-fs-table td.num,
.bkig-terminal .dart-fs-table th.num,
.bkig-terminal .mi-input {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 0.875rem;
}

.bkig-terminal table th,
.bkig-terminal thead th,
.bkig-terminal .internal-research-table thead th,
.bkig-terminal .portfolio-label,
.bkig-terminal .portfolio-panel-head,
.bkig-terminal .dart-fs-table th {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #94a3b8;
  font-weight: 600;
}

.bkig-terminal .internal-research-table tbody td {
  color: #e2e8f0;
}

/* ─── Task 4: Card & container depth + list hover ─── */
.bkig-terminal .meeting-intel-note-row,
.bkig-terminal .ir-folder-item,
.bkig-terminal .internal-research-row {
  transition: background-color 0.15s ease, border-color 0.15s ease;
  border-left: 2px solid transparent;
}

.bkig-terminal .meeting-intel-note-row:hover,
.bkig-terminal .ir-folder-item:hover,
.bkig-terminal .internal-research-row:hover {
  background-color: rgba(30, 41, 59, 0.8);
  border-left-color: #3b82f6;
}

/* IR folder pane: same background as main content so it doesn't feel detached */
.bkig-terminal .ir-folder-pane {
  background-color: #0f172a; /* slate-900, match view-internal-research */
}

.bkig-terminal #ir-detail-panel {
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.25);
}

/* 사이드바 메뉴 호버 시 부드러운 전환 (Tailwind transition-all duration-200 보강) */
.bkig-lnb .bkig-nav-item {
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
}

.bkig-lnb .bkig-nav-item:active {
  transform: scale(0.98);
}

/* Network & Career: expandable filters panel (all breakpoints) */
#view-network .network-filters-panel {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.25s ease-out, opacity 0.2s ease-out;
}
#view-network .network-filters-panel.is-open {
  max-height: 380px;
  opacity: 1;
}
#view-network .network-filters-chevron {
  transition: transform 0.2s ease;
}
#view-network .network-filters-bar:has(.network-filters-panel.is-open) .network-filters-chevron {
  transform: rotate(180deg);
}

/* 모달: Glassmorphism 배경 */
.glass-overlay {
  background: rgba(2, 6, 23, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* Comms 채팅: 내 메시지 오른쪽, 상대 메시지 왼쪽 */
#comms-messages-list .comms-msg {
  display: flex;
  margin-bottom: 0.375rem;
}
#comms-messages-list .comms-msg--mine {
  justify-content: flex-end;
}
#comms-messages-list .comms-msg--theirs {
  justify-content: flex-start;
}
#comms-messages-list .comms-msg-bubble {
  max-width: 85%;
  padding: 0.35rem 0.6rem;
  border-radius: 8px;
  font-size: 0.75rem;
  line-height: 1.45;
}
#comms-messages-list .comms-msg--mine .comms-msg-bubble {
  background: rgba(59, 130, 246, 0.25);
  border: 1px solid rgba(59, 130, 246, 0.4);
  color: #e2e8f0;
}
#comms-messages-list .comms-msg--theirs .comms-msg-bubble {
  background: rgba(51, 65, 85, 0.5);
  border: 1px solid rgba(71, 85, 105, 0.5);
  color: #cbd5e1;
}
#comms-messages-list .comms-msg-meta {
  font-size: 0.7rem;
  margin-right: 0.25rem;
}
#comms-messages-list .comms-msg-author {
  color: #94a3b8;
}
#comms-messages-list .comms-msg--mine .comms-msg-author {
  color: #93c5fd;
}
/* Report: visible on narrow / touch screens; hover-reveal on desktop */
.comms-msg-report-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 0.35rem;
  padding: 0.2rem 0.45rem;
  min-width: 2rem;
  min-height: 2rem;
  font-size: 0.75rem;
  color: #94a3b8;
  background: rgba(30, 41, 59, 0.55);
  border: 1px solid rgba(71, 85, 105, 0.45);
  border-radius: 0.25rem;
  cursor: pointer;
  opacity: 0.88;
  transition: opacity 0.15s, color 0.15s, border-color 0.15s, background-color 0.15s;
  vertical-align: middle;
  line-height: 1;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
.comms-msg-report-btn:hover,
.comms-msg-report-btn:active {
  color: #fecaca;
  border-color: rgba(248, 113, 113, 0.5);
  background: rgba(127, 29, 29, 0.25);
}
@media (min-width: 641px) and (hover: hover) {
  .comms-msg-report-btn {
    display: inline-block;
    padding: 0 0.25rem;
    min-width: 0;
    min-height: 0;
    font-size: 0.65rem;
    color: #475569;
    background: none;
    border: none;
    opacity: 0;
  }
  .comms-msg-bubble:hover .comms-msg-report-btn {
    opacity: 1;
  }
  .comms-msg-report-btn:hover {
    color: #ef4444;
    background: none;
    border: none;
  }
}

/* Profile 뷰: 2열 그리드·간격 축소로 세로 길이 줄임 */
#view-profile {
  padding: 1rem 1.25rem 1rem 1.25rem !important;
  padding-right: 6rem !important; /* pr-24: 로고 영역 확보 */
}
#profile-root {
  width: 100%;
  max-width: none;
}
#profile-root > div.border {
  padding: 1rem 1.25rem !important;
  border-radius: 6px;
}
#profile-root .text-slate-500.uppercase.tracking-wider {
  margin-bottom: 0.75rem !important;
  font-size: 0.7rem;
}
#profile-root .space-y-4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto auto;
  gap: 0.5rem 1rem;
  margin-bottom: 0;
  grid-auto-rows: min-content;
  align-content: start;
}
#profile-root .space-y-4 > div:last-child {
  grid-column: 1 / -1;
  padding-top: 0.25rem;
  align-self: start;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
#profile-root #profile-save-btn {
  height: 2.25rem !important;
  min-height: 2.25rem !important;
  max-height: 2.25rem !important;
  min-width: 8rem;
  padding: 0 1.5rem !important;
  line-height: 1.25 !important;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
#profile-root .space-y-4 label,
#profile-root .space-y-4 .text-slate-500.text-xs {
  margin-bottom: 0.25rem !important;
}
#profile-root .space-y-4 input {
  margin-top: 0.25rem !important;
}
/* 왼쪽 2칸(Profile + FACCTing) | 오른쪽 1칸(Alumni) 한 박스 */
#profile-root .profile-two-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem 2rem;
  margin-top: 0;
  align-items: start;
}
#profile-root .profile-left {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}
#profile-root .profile-left .space-y-4 {
  grid-template-columns: 1fr;
}
#profile-root .profile-two-columns > #profile-alumni-section {
  padding-top: 0.75rem !important;
  margin-top: 0.75rem !important;
  border-top-width: 1px;
  min-width: 0;
}

#profile-root #profile-alumni-section {
  padding-top: 0.75rem !important;
  margin-top: 0.75rem !important;
  border-top-width: 1px;
}
#profile-root #profile-alumni-section .text-slate-500.uppercase.tracking-wider {
  margin-bottom: 0.5rem !important;
}
#profile-root #profile-alumni-section p.text-slate-400 {
  margin-bottom: 0.5rem !important;
}
#profile-root #profile-alumni-section .space-y-3 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.4rem 0.75rem;
}
#profile-root #profile-alumni-section .space-y-3 > div:nth-child(n+10),
#profile-root #profile-alumni-section .space-y-3 > label {
  grid-column: 1 / -1;
}
#profile-root #profile-alumni-section .space-y-3 label,
#profile-root #profile-alumni-section .space-y-3 .text-slate-500.text-xs {
  margin-bottom: 0.25rem !important;
}
#profile-root #profile-alumni-section .space-y-3 input,
#profile-root #profile-alumni-section .space-y-3 select {
  margin-top: 0.2rem !important;
}
#profile-root #profile-alumni-section .space-y-3 textarea {
  min-height: 60px;
  resize: vertical;
}
#profile-root #profile-faccting-section {
  padding-top: 0.75rem !important;
  margin-top: 0.75rem !important;
  border-top-width: 1px;
}
#profile-root #profile-faccting-section .text-slate-500.uppercase.tracking-wider {
  margin-bottom: 0.5rem !important;
}
#profile-root #profile-faccting-section > p {
  margin-bottom: 0.5rem !important;
}
#profile-root .profile-left #profile-faccting-section > div.mb-4 {
  margin-bottom: 0.75rem !important;
}
#profile-root .profile-left #profile-faccting-section > div.mb-4:last-of-type {
  margin-bottom: 0 !important;
}
#profile-root #profile-faccting-section .text-slate-500.text-xs.mt-1 {
  margin-top: 0.2rem !important;
}
#profile-root #profile-alumni-save-btn,
#profile-root #profile-token-save,
#profile-root #profile-token-toggle,
#profile-root #profile-faccting-unlink {
  height: 2.25rem !important;
  min-height: 2.25rem !important;
  max-height: 2.25rem !important;
  min-width: 6rem;
  padding: 0 1.25rem !important;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
@media (max-width: 640px) {
  #profile-root .space-y-4,
  #profile-root #profile-alumni-section .space-y-3 {
    grid-template-columns: 1fr;
  }
  #profile-root .profile-two-columns {
    grid-template-columns: 1fr;
  }
}

/* Trend view: Terminal / Bloomberg aesthetic */
.bkig-trend {
  background: #0A0E17;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-trend * {
  border-radius: 0;
}
.bkig-trend .trend-mono {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 11px;
}
.bkig-trend .trend-selector {
  border: 1px solid #2A2A2A;
  background: #0A0E17;
}
.bkig-trend .trend-table th,
.bkig-trend .trend-table td {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 11px;
}
.bkig-trend .trend-positive { color: #00FF41; }
.bkig-trend .trend-negative { color: #FF3333; }
.bkig-trend .trend-tooltip-box {
  border-radius: 0;
  border: 1px solid #00FF41;
  background: rgba(0, 0, 0, 0.9);
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 11px;
}

.bkig-trend .trend-selector .grid {
  display: grid;
  gap: 0.75rem 1.5rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 900px) {
  .bkig-trend .trend-selector .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 500px) {
  .bkig-trend .trend-selector .grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* DART Financial Statements — Bloomberg/FactSet-style terminal table */
.dart-financials { background: #0a0e17; }
.dart-financials .dart-fs-subnav { border-bottom: 1px solid rgba(51, 65, 85, 0.6); }
.dart-financials .dart-fs-subnav button.active { border-bottom: 2px solid #0ea5e9; color: #f1f5f9; }
.dart-financials .dart-fs-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.dart-financials .dart-fs-table th { text-align: left; padding: 10px 14px; font-weight: 600; color: #94a3b8; background: rgba(15, 23, 42, 0.8); border-bottom: 1px solid rgba(51, 65, 85, 0.7); }
.dart-financials .dart-fs-table th.num { text-align: right; font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace; }
.dart-financials .dart-fs-table td { padding: 8px 14px; border-bottom: 1px solid rgba(51, 65, 85, 0.4); color: #e2e8f0; }
.dart-financials .dart-fs-table td.account { text-align: left; }
.dart-financials .dart-fs-table td.num { text-align: right; font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace; font-variant-numeric: tabular-nums; }
.dart-financials .dart-fs-table td.num.current { font-weight: 600; color: #f1f5f9; }
.dart-financials .dart-fs-table td.num.prev { color: #64748b; }
.dart-financials .dart-fs-table tbody tr:hover { background: rgba(30, 58, 95, 0.25); }

/* ---------------------------------------------------------------------------
   FACCTing Portal (Valuation / Accounting) — Terminal directory style
   border-radius: 0, thin #333 border, neon hover, monospace
--------------------------------------------------------------------------- */
.bkig-terminal .faccting-portal {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal .faccting-portal * {
  border-radius: 0;
}
.bkig-terminal .faccting-portal-prompt {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 12px;
  color: #94a3b8;
  border: 1px solid #333;
  border-bottom: none;
  background: #0d1220;
  padding: 8px 12px;
}
.bkig-terminal .faccting-portal-status {
  color: #22c55e;
  font-weight: 600;
}
.bkig-terminal .faccting-portal-card {
  border: 1px solid #333;
  background: rgba(15, 23, 42, 0.6);
  padding: 12px 14px;
  transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.bkig-terminal .faccting-portal-card:hover {
  border-color: #22d3ee;
  background: rgba(15, 23, 42, 0.85);
  box-shadow: 0 0 12px rgba(34, 211, 238, 0.15);
}
.bkig-terminal .faccting-portal-card-title {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 13px;
  color: #e2e8f0;
  margin-bottom: 4px;
}
.bkig-terminal .faccting-portal-card-desc {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 11px;
  color: #64748b;
  margin-bottom: 10px;
}
.bkig-terminal .faccting-portal-launch {
  display: inline-block;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 11px;
  color: #22d3ee;
  background: transparent;
  border: 1px solid #333;
  padding: 6px 12px;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
  text-decoration: none;
}
.bkig-terminal .faccting-portal-launch:hover {
  border-color: #22d3ee;
  color: #67e8f9;
  background: rgba(34, 211, 238, 0.08);
  box-shadow: 0 0 8px rgba(34, 211, 238, 0.2);
}
.bkig-terminal .faccting-portal-section-title {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 20px;
  margin-bottom: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid #333;
}
.bkig-terminal .faccting-portal-section-title:first-of-type {
  margin-top: 0;
}

/* ---------------------------------------------------------------------------
   Portfolio: Auth, Warning, Trading Panel Lock, Journal feed
--------------------------------------------------------------------------- */
/* Portfolio: Institutional terminal look — deep background, top spacing handled in HTML (pt-8 on main) */
.bkig-terminal .portfolio-terminal-section,
.bkig-terminal .portfolio-terminal-section .portfolio-sidebar,
.bkig-terminal .portfolio-terminal-section .portfolio-main {
  background-color: #0B1120;
}
.bkig-terminal .portfolio-terminal-section .portfolio-main {
  padding-top: 3rem; /* breathing room below nav / top */
}
.bkig-terminal .portfolio-ticker-tape {
  background-color: #0f172a;
}
.bkig-terminal .portfolio-table-header {
  background-color: #1e293b;
}

.bkig-terminal .portfolio-auth-box {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal .portfolio-warning-banner {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal .portfolio-trading-panel {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal .portfolio-trading-lock {
  opacity: 0.5;
  pointer-events: none;
  position: relative;
}
.bkig-terminal .portfolio-trading-lock-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 14, 23, 0.6);
  color: #FF3333;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  pointer-events: none;
}
/* ---------------------------------------------------------------------------
   Portfolio: Spacing, alignment, typography, borders, inputs, journal
--------------------------------------------------------------------------- */
.bkig-terminal .portfolio-panel {
  padding: 1.5rem;
  border: 1px solid rgba(71, 85, 105, 0.2);
  border-radius: 0;
  background: rgba(15, 23, 42, 0.4);
}
.bkig-terminal .portfolio-summary-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.bkig-terminal .portfolio-label {
  font-size: 0.7rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.bkig-terminal .portfolio-num-emphasis {
  font-size: 1.1rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  color: #e2e8f0;
}
.bkig-terminal .portfolio-holdings-panel {
  margin-bottom: 1.5rem;
}
.bkig-terminal .portfolio-panel-head {
  font-size: 0.7rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid rgba(71, 85, 105, 0.2);
}
.bkig-terminal .portfolio-table th,
.bkig-terminal .portfolio-table td {
  padding: 0.625rem 1rem;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal .portfolio-thead-row {
  border-bottom: 1px solid rgba(71, 85, 105, 0.25);
}
.bkig-terminal .portfolio-th {
  font-weight: 500;
  color: #64748b;
}
.bkig-terminal .portfolio-th-left { text-align: left; }
.bkig-terminal .portfolio-th-num { text-align: right; }
.bkig-terminal .portfolio-table-row {
  border-bottom: 1px solid rgba(71, 85, 105, 0.15);
}
.bkig-terminal .portfolio-table-row:last-child {
  border-bottom: none;
}
.bkig-terminal .portfolio-td-left { text-align: left; }
.bkig-terminal .portfolio-td-num { text-align: right; }
.bkig-terminal .portfolio-td {
  vertical-align: top;
}

/* ---------------------------------------------------------------------------
   Portfolio: IB Terminal Enhancements
--------------------------------------------------------------------------- */

/* Holdings: Sort indicator */
.bkig-terminal .pf-sort-th { transition: color 0.15s ease; }
.bkig-terminal .pf-sort-icon { display: inline-block; transition: color 0.15s ease; font-style: normal; }

/* Performance: Period buttons */
.bkig-terminal .pf-period-btn { transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease; }
.bkig-terminal .pf-period-active {
  border-color: rgba(52, 211, 153, 0.5) !important;
  color: #34d399 !important;
}

/* Performance: Monthly heatmap cells */
.bkig-terminal .pf-hm-cell {
  display: block;
  min-width: 34px;
  font-size: 9px;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-variant-numeric: tabular-nums;
  text-align: center;
  border-radius: 1px;
  letter-spacing: -0.02em;
}

/* Activity feed */
.bkig-terminal #portfolio-activity-feed { font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace; }

/* Order management: Deal ticket IB-style */
.bkig-terminal #portfolio-order-panel .portfolio-trading-panel {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal #portfolio-order-panel input,
.bkig-terminal #portfolio-order-panel textarea {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}

/* Quote strip */
.bkig-terminal #portfolio-bid,
.bkig-terminal #portfolio-ask,
.bkig-terminal #portfolio-last,
.bkig-terminal #portfolio-quote-pnl {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}

/* Pre-trade confirm */
.bkig-terminal #portfolio-pretrade-check { font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace; border-radius: 0; }

/* Order preview panel */
.bkig-terminal #pt-instrument,
.bkig-terminal #pt-side,
.bkig-terminal #pt-qty,
.bkig-terminal #pt-price,
.bkig-terminal #pt-notional,
.bkig-terminal #pt-cash,
.bkig-terminal #pt-postcash,
.bkig-terminal #pt-weight {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-variant-numeric: tabular-nums;
}

/* Current position panel */
.bkig-terminal #portfolio-current-position { font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace; }

/* Holdings rows: absolute P&L sub-line */
.bkig-terminal #portfolio-holdings-tbody tr td:nth-child(7) { line-height: 1.2; }

/* ---------------------------------------------------------------------------
   Fund: Buy-side Fund Management — IB Terminal Design
--------------------------------------------------------------------------- */

/* ── List ── */
.bkig-terminal .fund-cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.bkig-terminal .fund-card {
  background: linear-gradient(135deg, rgb(15 23 42) 0%, rgb(10 16 30) 100%);
  border: 1px solid rgb(51 65 85 / 0.5);
  border-left: 3px solid rgb(51 65 85 / 0.5);
  border-radius: 8px; padding: 1.125rem 1.25rem;
  cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s;
  position: relative; overflow: hidden;
}
.bkig-terminal .fund-card::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgb(34 211 238 / 0.03) 0%, transparent 60%);
  pointer-events: none;
}
.bkig-terminal .fund-card:hover { border-color: rgb(34 211 238 / 0.4); box-shadow: 0 0 0 1px rgb(34 211 238 / 0.1); }
.bkig-terminal .fund-card.pos-return { border-left-color: #34d399; }
.bkig-terminal .fund-card.neg-return { border-left-color: #f87171; }
.bkig-terminal .fund-card-ticker { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; color: rgb(100 116 139); text-transform: uppercase; }
.bkig-terminal .fund-card-name { font-size: 0.9375rem; font-weight: 600; color: rgb(226 232 240); margin: 2px 0 10px; }
.bkig-terminal .fund-card-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bkig-terminal .fund-card-metric { background: rgb(30 41 59 / 0.5); border-radius: 5px; padding: 7px 10px; }
.bkig-terminal .fund-card-metric-label { font-size: 0.6875rem; color: rgb(100 116 139); }
.bkig-terminal .fund-card-metric-value { font-size: 0.875rem; font-weight: 600; color: rgb(226 232 240); font-family: 'JetBrains Mono', monospace; margin-top: 2px; }
.bkig-terminal .fund-card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; padding-top: 10px; border-top: 1px solid rgb(51 65 85 / 0.3); }
.bkig-terminal .fund-card-open-btn { font-size: 0.75rem; color: rgb(34 211 238); cursor: pointer; background: none; border: none; }
.bkig-terminal .fund-summary-strip { display: flex; gap: 24px; padding: 10px 16px; background: rgb(15 23 42 / 0.8); border: 1px solid rgb(51 65 85 / 0.3); border-radius: 6px; margin-bottom: 16px; font-family: 'JetBrains Mono', monospace; }
.bkig-terminal .fund-summary-item { display: flex; flex-direction: column; }
.bkig-terminal .fund-summary-label { font-size: 0.6875rem; color: rgb(100 116 139); }
.bkig-terminal .fund-summary-value { font-size: 0.875rem; font-weight: 600; color: rgb(226 232 240); margin-top: 1px; }
.bkig-terminal .fund-section-label { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgb(100 116 139); }

/* ── Detail Topbar ── */
.bkig-terminal .fund-detail-topbar { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.bkig-terminal .fund-back-btn { display: flex; align-items: center; gap: 5px; font-size: 0.8125rem; color: rgb(100 116 139); cursor: pointer; background: none; border: none; padding: 4px 0; transition: color 0.15s; }
.bkig-terminal .fund-back-btn:hover { color: rgb(226 232 240); }
.bkig-terminal .fund-detail-name { font-size: 1rem; font-weight: 700; color: rgb(226 232 240); }
.bkig-terminal .fund-detail-lead { font-size: 0.75rem; color: rgb(100 116 139); margin-left: 4px; }

/* ── Metric Strip ── */
.bkig-terminal .fund-metric-strip { display: flex; flex-wrap: wrap; gap: 1px; background: rgb(51 65 85 / 0.3); border: 1px solid rgb(51 65 85 / 0.3); border-radius: 7px; overflow: hidden; }
.bkig-terminal .fund-metric-cell { flex: 1; min-width: 120px; padding: 10px 16px; background: rgb(15 23 42); }
.bkig-terminal .fund-metric-label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgb(71 85 105); }
.bkig-terminal .fund-metric-value { font-size: 1rem; font-weight: 700; color: rgb(226 232 240); font-family: 'JetBrains Mono', monospace; margin-top: 3px; }
.bkig-terminal .fund-metric-sub { font-size: 0.6875rem; color: rgb(100 116 139); margin-top: 1px; }

/* ── Tabs ── */
.bkig-terminal .fund-tabs { display: flex; gap: 0; border-bottom: 1px solid rgb(51 65 85 / 0.5); }
.bkig-terminal .fund-tab { padding: 9px 18px; font-size: 0.8125rem; font-weight: 500; color: rgb(100 116 139); cursor: pointer; border-bottom: 2px solid transparent; background: none; border-top: none; border-left: none; border-right: none; transition: color 0.15s; }
.bkig-terminal .fund-tab:hover { color: rgb(203 213 225); }
.bkig-terminal .fund-tab.active { color: rgb(34 211 238); border-bottom-color: rgb(34 211 238); }
.bkig-terminal .fund-tab-badge { display: inline-flex; align-items: center; justify-content: center; font-size: 0.625rem; font-weight: 700; background: rgb(234 179 8); color: rgb(15 23 42); border-radius: 10px; padding: 0 5px; margin-left: 5px; min-width: 16px; height: 16px; }

/* ── Tables ── */
.bkig-terminal .fund-table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }
.bkig-terminal .fund-table th { padding: 8px 12px; text-align: left; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: rgb(71 85 105); border-bottom: 1px solid rgb(51 65 85 / 0.5); white-space: nowrap; }
.bkig-terminal .fund-table td { padding: 10px 12px; border-bottom: 1px solid rgb(51 65 85 / 0.2); color: rgb(203 213 225); }
.bkig-terminal .fund-table tbody tr:hover td { background: rgb(30 41 59 / 0.3); }

/* ── Badges ── */
.bkig-terminal .fund-badge { border-radius: 0.25rem; padding: 0.125rem 0.5rem; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.04em; display: inline-block; border: 1px solid; }
.bkig-terminal .fund-badge-pending { color: #fbbf24; background: rgba(245, 158, 11, 0.1); border-color: rgba(245, 158, 11, 0.2); }
.bkig-terminal .fund-badge-executed { color: #34d399; background: rgba(16, 185, 129, 0.1); border-color: rgba(16, 185, 129, 0.2); }
.bkig-terminal .fund-badge-rejected { color: #fb7185; background: rgba(244, 63, 94, 0.1); border-color: rgba(244, 63, 94, 0.2); }

/* ── Overview Layout ── */
/* Overview key metrics strip */
.bkig-terminal .fund-overview-metrics {
  display: flex; align-items: center; flex-wrap: wrap; gap: 0;
  padding: 12px 16px; margin-bottom: 16px;
  background: rgb(15 23 42 / 0.6); border: 1px solid rgb(51 65 85 / 0.35); border-radius: 8px;
  font-family: 'JetBrains Mono', monospace;
}
.bkig-terminal .fund-overview-metric { display: flex; flex-direction: column; padding: 0 16px; }
.bkig-terminal .fund-overview-metric:first-child { padding-left: 0; }
.bkig-terminal .fund-overview-metric-label { font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgb(100 116 139); margin-bottom: 2px; }
.bkig-terminal .fund-overview-metric-value { font-size: 1rem; font-weight: 700; color: rgb(226 232 240); }
.bkig-terminal .fund-overview-metric-div { width: 1px; height: 28px; background: rgb(51 65 85 / 0.4); flex-shrink: 0; }

.bkig-terminal .fund-overview-charts { display: grid; grid-template-columns: 1fr 280px; gap: 12px; margin-bottom: 16px; }
@media (max-width: 900px) { .bkig-terminal .fund-overview-charts { grid-template-columns: 1fr; } }
.bkig-terminal .fund-chart-card { background: rgb(10 16 30); border: 1px solid rgb(51 65 85 / 0.4); border-radius: 8px; padding: 14px 16px; }
.bkig-terminal .fund-overview-pnl-chart-wrap { margin-bottom: 16px; }
.bkig-terminal .fund-chart-title { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgb(71 85 105); margin-bottom: 10px; }
.bkig-terminal .fund-overview-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 860px) { .bkig-terminal .fund-overview-bottom { grid-template-columns: 1fr; } }

/* ── Holdings weight bar ── */
.bkig-terminal .fund-holding-card { background: rgb(10 16 30); border: 1px solid rgb(51 65 85 / 0.3); border-radius: 7px; padding: 12px 14px; margin-bottom: 8px; }
.bkig-terminal .fund-holding-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 8px; }
.bkig-terminal .fund-weight-bar-wrap { margin-bottom: 4px; }
.bkig-terminal .fund-weight-track { height: 4px; background: rgb(30 41 59); border-radius: 2px; overflow: hidden; }
.bkig-terminal .fund-weight-fill { height: 100%; border-radius: 2px; transition: width 0.4s; }
.bkig-terminal .fund-weight-label { font-size: 0.6875rem; color: rgb(100 116 139); margin-top: 3px; }
.bkig-terminal .fund-weight-limit { color: rgb(248 113 113 / 0.8); }

/* ── Orders accordion ── */
.bkig-terminal .fund-orders-group { margin-bottom: 16px; }
.bkig-terminal .fund-orders-group-header { display: flex; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer; }
.bkig-terminal .fund-orders-group-title { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.bkig-terminal .fund-orders-group-count { font-size: 0.6875rem; color: rgb(100 116 139); }
.bkig-terminal .fund-order-card { background: rgb(10 16 30); border: 1px solid rgb(51 65 85 / 0.3); border-radius: 7px; padding: 12px 14px; margin-bottom: 8px; }
.bkig-terminal .fund-order-card.pending { border-left: 3px solid #fbbf24; }
.bkig-terminal .fund-order-card.executed { border-left: 3px solid #34d399; }
.bkig-terminal .fund-order-card.rejected { border-left: 3px solid #f87171; opacity: 0.7; }
.bkig-terminal .fund-order-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.bkig-terminal .fund-order-meta { font-size: 0.75rem; color: rgb(100 116 139); margin-bottom: 8px; }
.bkig-terminal .fund-price-range-bar { margin: 8px 0; }
.bkig-terminal .fund-price-range-track { position: relative; height: 6px; background: rgb(30 41 59); border-radius: 3px; }
.bkig-terminal .fund-price-range-fill { position: absolute; height: 100%; background: rgb(34 211 238 / 0.3); border-radius: 3px; }
.bkig-terminal .fund-price-range-dot { position: absolute; top: 50%; width: 10px; height: 10px; border-radius: 50%; transform: translate(-50%, -50%); }
.bkig-terminal .fund-price-range-labels { display: flex; justify-content: space-between; font-size: 0.625rem; color: rgb(100 116 139); margin-top: 3px; font-family: monospace; }
.bkig-terminal .fund-thesis-text { font-size: 0.75rem; color: rgb(148 163 184); line-height: 1.5; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; }
.bkig-terminal .fund-thesis-text.expanded { -webkit-line-clamp: unset; line-clamp: unset; }
.bkig-terminal .fund-order-actions { display: flex; gap: 8px; margin-top: 10px; justify-content: flex-end; }

/* ── Trade Log Timeline ── */
.bkig-terminal .fund-tl-day { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; color: rgb(71 85 105); text-transform: uppercase; padding: 8px 0 6px; border-bottom: 1px solid rgb(51 65 85 / 0.3); margin-bottom: 6px; }
.bkig-terminal .fund-tl-row { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 6px; margin-bottom: 4px; }
.bkig-terminal .fund-tl-row:hover { background: rgb(30 41 59 / 0.3); }
.bkig-terminal .fund-tl-icon { width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 0.625rem; font-weight: 800; flex-shrink: 0; }
.bkig-terminal .fund-tl-icon.buy { background: rgb(52 211 153 / 0.15); color: #34d399; }
.bkig-terminal .fund-tl-icon.sell { background: rgb(248 113 113 / 0.15); color: #f87171; }

/* ── Members ── */
.bkig-terminal .fund-member-perf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 900px) { .bkig-terminal .fund-member-perf-grid { grid-template-columns: 1fr; } }
.bkig-terminal .fund-member-perf-block { min-width: 0; }
.bkig-terminal .fund-member-ranking-wrap { overflow-x: auto; }
.bkig-terminal .fund-member-ranking-table { font-size: 0.75rem; }
.bkig-terminal .fund-member-ranking-table th { padding: 6px 10px; }
.bkig-terminal .fund-member-ranking-table td { padding: 8px 10px; }
.bkig-terminal .fund-member-rank-num { width: 32px; text-align: center; color: rgb(100 116 139); font-weight: 600; }
.bkig-terminal .fund-member-rank-name { font-weight: 500; color: rgb(226 232 240); }
.bkig-terminal .fund-member-rank-bar-cell { width: 100px; }
.bkig-terminal .fund-member-rank-bar-cell .fund-weight-track { max-width: 80px; }
.bkig-terminal .fund-member-trading-analysis-block .fund-table { font-size: 0.8125rem; }

.bkig-terminal .fund-member-card { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: rgb(10 16 30); border: 1px solid rgb(51 65 85 / 0.3); border-radius: 7px; margin-bottom: 6px; }
.bkig-terminal .fund-member-avatar { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 700; flex-shrink: 0; background: rgb(34 211 238 / 0.15); color: rgb(34 211 238); }
.bkig-terminal .fund-member-avatar.lead-avatar { background: rgb(251 191 36 / 0.15); color: #fbbf24; }
.bkig-terminal .fund-member-role { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.bkig-terminal .fund-member-role.lead { color: #fbbf24; }
.bkig-terminal .fund-member-role.analyst { color: rgb(100 116 139); }

/* ── Activity Feed ── */
.bkig-terminal .fund-activity-item { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgb(51 65 85 / 0.2); }
.bkig-terminal .fund-activity-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 5px; flex-shrink: 0; }
.bkig-terminal .fund-activity-dot.buy { background: #34d399; }
.bkig-terminal .fund-activity-dot.sell { background: #f87171; }
.bkig-terminal .fund-pending-alert { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: rgb(251 191 36 / 0.08); border: 1px solid rgb(251 191 36 / 0.2); border-radius: 7px; margin-bottom: 12px; font-size: 0.8125rem; color: #fbbf24; cursor: pointer; }

/* ── Modal ── */
.bkig-terminal .fund-modal-overlay { position: fixed; inset: 0; background: rgb(0 0 0 / 0.65); z-index: 1000; display: flex; align-items: center; justify-content: center; }
.bkig-terminal .fund-modal-overlay.hidden { display: none !important; }
.bkig-terminal .fund-modal { background: rgb(10 16 30); border: 1px solid rgb(51 65 85 / 0.7); border-radius: 10px; padding: 1.5rem; width: 500px; max-width: 95vw; box-shadow: 0 20px 60px rgb(0 0 0 / 0.5); }
.bkig-terminal .fund-modal-title { font-size: 0.9375rem; font-weight: 700; color: rgb(226 232 240); margin-bottom: 1.125rem; display: flex; align-items: center; gap: 8px; }
.bkig-terminal .fund-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid rgb(51 65 85 / 0.3); }

/* ── Buttons ── */
.bkig-terminal .fund-action-btn, .bkig-terminal .fund-btn-primary { background: rgb(8 145 178); color: white; border-radius: 6px; padding: 6px 14px; font-size: 0.8125rem; font-weight: 500; cursor: pointer; border: none; transition: background 0.15s; }
.bkig-terminal .fund-action-btn:hover, .bkig-terminal .fund-btn-primary:hover { background: rgb(14 165 233); }
.bkig-terminal .fund-btn-secondary { background: transparent; border: 1px solid rgb(51 65 85); color: rgb(148 163 184); border-radius: 6px; padding: 6px 14px; font-size: 0.8125rem; cursor: pointer; transition: all 0.15s; }
.bkig-terminal .fund-btn-secondary:hover { border-color: rgb(100 116 139); color: rgb(203 213 225); }
.bkig-terminal .fund-btn-danger { background: rgb(185 28 28 / 0.8); color: white; border-radius: 6px; padding: 6px 14px; font-size: 0.8125rem; cursor: pointer; border: 1px solid rgb(220 38 38 / 0.4); transition: background 0.15s; }
.bkig-terminal .fund-btn-danger:hover { background: rgb(220 38 38); }
.bkig-terminal .fund-btn-sm { padding: 3px 10px; font-size: 0.75rem; }

/* ── Forms ── */
.bkig-terminal .fund-form-row { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; }
.bkig-terminal .fund-form-row label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: rgb(71 85 105); }
.bkig-terminal .fund-form-row input,
.bkig-terminal .fund-form-row select,
.bkig-terminal .fund-form-row textarea { background: rgb(15 23 42); border: 1px solid rgb(51 65 85 / 0.6); border-radius: 6px; color: rgb(226 232 240); padding: 8px 10px; font-size: 0.8125rem; width: 100%; box-sizing: border-box; }
.bkig-terminal .fund-form-row input:focus,
.bkig-terminal .fund-form-row select:focus,
.bkig-terminal .fund-form-row textarea:focus { outline: none; border-color: rgb(34 211 238 / 0.5); box-shadow: 0 0 0 2px rgb(34 211 238 / 0.06); }

/* ── Misc ── */
.bkig-terminal .fund-empty-state { color: rgb(71 85 105); text-align: center; padding: 3rem 1rem; font-size: 0.875rem; }
.bkig-terminal .fund-pnl-pos { color: #34d399; }
.bkig-terminal .fund-pnl-neg { color: #f87171; }
.bkig-terminal .fund-mono { font-family: 'JetBrains Mono', 'Fira Code', monospace; }

/* ── Ranking: Section tabs ── */
.bkig-terminal .rk-section-tabs { display: flex; gap: 0; border-bottom: 1px solid rgb(51 65 85 / 0.4); margin-bottom: 20px; }
.bkig-terminal .rk-section-tab { padding: 8px 20px; font-size: 0.875rem; font-weight: 500; color: rgb(100 116 139); cursor: pointer; border-bottom: 2px solid transparent; background: none; border-top: none; border-left: none; border-right: none; transition: color 0.15s; }
.bkig-terminal .rk-section-tab:hover { color: rgb(203 213 225); }
.bkig-terminal .rk-section-tab.rk-section-tab-active { color: rgb(34 211 238); border-bottom-color: rgb(34 211 238); }

/* ---------------------------------------------------------------------------
   Ranking: Bloomberg/FactSet-style Analyst Leaderboard
--------------------------------------------------------------------------- */

/* Stats strip */
.bkig-terminal .rk-stats-strip {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0.625rem 1.25rem;
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(71, 85, 105, 0.3);
  border-bottom: none;
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  margin-bottom: 0;
}
.bkig-terminal .rk-stat {
  display: flex;
  flex-direction: column;
  padding: 0 1.25rem 0 0;
}
.bkig-terminal .rk-stat-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #475569;
  white-space: nowrap;
}
.bkig-terminal .rk-stat-val {
  font-size: 0.875rem;
  font-weight: 700;
  color: #e2e8f0;
  font-variant-numeric: tabular-nums;
  margin-top: 1px;
}
.bkig-terminal .rk-stat-div {
  width: 1px;
  height: 28px;
  background: rgba(71, 85, 105, 0.35);
  margin: 0 1.25rem 0 0;
  flex-shrink: 0;
}
.bkig-terminal .rk-refresh-btn {
  padding: 0.375rem 0.875rem;
  font-size: 0.7rem;
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
  background: transparent;
  border: 1px solid rgba(71, 85, 105, 0.4);
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
  white-space: nowrap;
}
.bkig-terminal .rk-refresh-btn:hover:not(:disabled) {
  color: #34d399;
  border-color: rgba(52, 211, 153, 0.4);
  background: rgba(52, 211, 153, 0.06);
}
.bkig-terminal .rk-refresh-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* Card */
.bkig-terminal .rk-card {
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(71, 85, 105, 0.3);
  overflow: hidden;
}
.bkig-terminal .rk-card-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid rgba(71, 85, 105, 0.25);
  background: rgba(30, 41, 59, 0.5);
}
.bkig-terminal .rk-card-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: #f1f5f9;
  letter-spacing: 0.03em;
  margin: 0;
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
}
.bkig-terminal .rk-card-sub {
  font-size: 0.6rem;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  margin: 3px 0 0;
  font-family: 'JetBrains Mono', monospace;
}
.bkig-terminal .rk-search-input {
  padding: 0.375rem 0.75rem;
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(71, 85, 105, 0.4);
  color: #e2e8f0;
  font-size: 0.75rem;
  font-family: 'JetBrains Mono', monospace;
  outline: none;
  width: 200px;
  transition: border-color 0.15s;
}
.bkig-terminal .rk-search-input::placeholder { color: #475569; }
.bkig-terminal .rk-search-input:focus { border-color: rgba(52, 211, 153, 0.5); }

/* Table */
.bkig-terminal .rk-table {
  width: 100%;
  border-collapse: collapse;
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-variant-numeric: tabular-nums;
}
.bkig-terminal .rk-thead-row {
  background: rgba(15, 23, 42, 0.7);
  border-bottom: 1px solid rgba(71, 85, 105, 0.4);
}
.bkig-terminal .rk-th {
  padding: 0.625rem 1rem;
  font-size: 0.6rem;
  font-weight: 700;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-align: left;
  white-space: nowrap;
  user-select: none;
  border-bottom: 2px solid rgba(71, 85, 105, 0.3);
}
.bkig-terminal .rk-th-rank { width: 60px; text-align: center; }
.bkig-terminal .rk-th-name { padding-left: 1rem; }
.bkig-terminal .rk-th-num { text-align: right; }
.bkig-terminal .rk-th-bar { width: 140px; padding-right: 1.25rem; }
.bkig-terminal .rk-sortable:hover { color: #94a3b8; }
.bkig-terminal .rk-th-active { color: #34d399 !important; }
.bkig-terminal .rk-sort-icon { font-size: 0.6rem; margin-left: 3px; opacity: 0.7; }

/* Table rows */
.bkig-terminal .rk-tr {
  border-bottom: 1px solid rgba(71, 85, 105, 0.15);
  transition: background 0.1s, border-left-color 0.1s;
  border-left: 2px solid transparent;
}
.bkig-terminal .rk-tr:last-child { border-bottom: none; }
.bkig-terminal .rk-tr-clickable { cursor: pointer; }
.bkig-terminal .rk-tr-clickable:hover {
  background: rgba(51, 65, 85, 0.4);
  border-left-color: rgba(52, 211, 153, 0.5);
}
.bkig-terminal .rk-tr-top { background: rgba(251, 191, 36, 0.03); }
.bkig-terminal .rk-tr-top:hover { background: rgba(251, 191, 36, 0.07) !important; }
.bkig-terminal .rk-tr-me {
  background: rgba(52, 211, 153, 0.04);
  border-left-color: #34d399 !important;
}

/* Table cells */
.bkig-terminal .rk-td {
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  color: #cbd5e1;
  vertical-align: middle;
}
.bkig-terminal .rk-td-rank { text-align: center; width: 60px; }
.bkig-terminal .rk-td-name { padding-left: 1rem; }
.bkig-terminal .rk-td-num { text-align: right; }
.bkig-terminal .rk-td-bar { text-align: left; padding-right: 1.25rem; }

/* Rank badges */
.bkig-terminal .rk-rank-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: 0.75rem;
  font-weight: 800;
  border-radius: 2px;
}
.bkig-terminal .rk-rank-gold   { background: rgba(251, 191, 36, 0.15);  color: #fbbf24; border: 1px solid rgba(251, 191, 36, 0.3); }
.bkig-terminal .rk-rank-silver { background: rgba(148, 163, 184, 0.12); color: #94a3b8; border: 1px solid rgba(148, 163, 184, 0.25); }
.bkig-terminal .rk-rank-bronze { background: rgba(201, 123, 48, 0.12);  color: #c97b30; border: 1px solid rgba(201, 123, 48, 0.25); }
.bkig-terminal .rk-rank-num {
  display: inline-block;
  width: 24px;
  text-align: center;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #475569;
}

/* Name cell elements */
.bkig-terminal .rk-name-wrap { display: flex; align-items: center; gap: 0.5rem; }
.bkig-terminal .rk-name {
  font-size: 0.875rem;
  font-weight: 600;
  color: #e2e8f0;
  font-family: 'Inter', ui-sans-serif, sans-serif;
}
.bkig-terminal .rk-nickname {
  display: block;
  font-size: 0.7rem;
  color: #475569;
  margin-top: 1px;
  font-family: 'JetBrains Mono', monospace;
}
.bkig-terminal .rk-you-badge {
  padding: 1px 5px;
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #34d399;
  background: rgba(52, 211, 153, 0.12);
  border: 1px solid rgba(52, 211, 153, 0.3);
  border-radius: 2px;
  vertical-align: middle;
  flex-shrink: 0;
}

/* Value & return */
.bkig-terminal .rk-value { font-size: 0.875rem; font-weight: 700; color: #e2e8f0; }
.bkig-terminal .rk-pos { color: #34d399; font-weight: 600; }
.bkig-terminal .rk-neg { color: #f87171; font-weight: 600; }
.bkig-terminal .rk-neutral { color: #475569; }
.bkig-terminal .rk-holdings-count { color: #64748b; font-size: 0.75rem; }

/* Value bar */
.bkig-terminal .rk-bar-wrap { display: flex; align-items: center; gap: 0.5rem; }
.bkig-terminal .rk-bar-track {
  flex: 1;
  height: 4px;
  background: rgba(71, 85, 105, 0.25);
  border-radius: 2px;
  overflow: hidden;
  min-width: 60px;
}
.bkig-terminal .rk-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.5s ease;
}
.bkig-terminal .rk-bar-label {
  font-size: 0.65rem;
  color: #475569;
  min-width: 28px;
  text-align: right;
}

/* Skeleton loader */
.bkig-terminal .rk-skeleton-row td { padding: 0 !important; }
.bkig-terminal .rk-skeleton {
  height: 14px;
  background: linear-gradient(90deg, rgba(30,41,59,0.8) 25%, rgba(51,65,85,0.6) 50%, rgba(30,41,59,0.8) 75%);
  background-size: 200% 100%;
  animation: rk-shimmer 1.4s infinite;
  border-radius: 2px;
  width: 100%;
}
@keyframes rk-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Empty / error */
.bkig-terminal .rk-empty {
  padding: 3rem 1rem;
  text-align: center;
  font-size: 0.8125rem;
  color: #475569;
  font-family: 'JetBrains Mono', monospace;
}

/* Footer */
.bkig-terminal .rk-footer {
  padding: 0.625rem 1.25rem;
  font-size: 0.6rem;
  color: #334155;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-top: 1px solid rgba(71, 85, 105, 0.2);
  background: rgba(15, 23, 42, 0.4);
  font-family: 'JetBrains Mono', monospace;
}

/* ---- Portfolio Detail Modal ---- */
.bkig-terminal .rk-modal {
  background: rgba(10, 14, 23, 0.98);
  border: 1px solid rgba(71, 85, 105, 0.4);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
}
.bkig-terminal .rk-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1rem 1.25rem 0.875rem;
  border-bottom: 1px solid rgba(71, 85, 105, 0.35);
  background: rgba(15, 23, 42, 0.8);
  flex-shrink: 0;
}
.bkig-terminal .rk-modal-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #f1f5f9;
  margin: 0;
  letter-spacing: 0.02em;
}
.bkig-terminal .rk-modal-sub {
  font-size: 0.65rem;
  color: #475569;
  margin: 3px 0 0;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}
.bkig-terminal .rk-modal-close {
  padding: 0.25rem 0.5rem;
  font-size: 1.25rem;
  line-height: 1;
  color: #64748b;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color 0.15s;
  flex-shrink: 0;
}
.bkig-terminal .rk-modal-close:hover { color: #f1f5f9; }
.bkig-terminal .rk-modal-body { padding: 1.25rem; }
.bkig-terminal .rk-modal-loading {
  padding: 3rem;
  text-align: center;
  color: #475569;
  font-size: 0.8125rem;
}
.bkig-terminal .rk-modal-error {
  padding: 2rem;
  text-align: center;
  color: #f87171;
  font-size: 0.8125rem;
}

/* Modal summary cards */
.bkig-terminal .rk-modal-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: rgba(71, 85, 105, 0.2);
  border: 1px solid rgba(71, 85, 105, 0.2);
  margin-bottom: 1.5rem;
}
.bkig-terminal .rk-modal-stat {
  display: flex;
  flex-direction: column;
  padding: 0.75rem 1rem;
  background: rgba(15, 23, 42, 0.7);
}
.bkig-terminal .rk-modal-stat-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #475569;
  margin-bottom: 4px;
}
.bkig-terminal .rk-modal-stat-val {
  font-size: 1rem;
  font-weight: 700;
  color: #e2e8f0;
  font-variant-numeric: tabular-nums;
}

/* Modal holdings table */
.bkig-terminal .rk-modal-holdings-wrap { overflow-x: auto; }
.bkig-terminal .rk-modal-section-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #334155;
  padding-bottom: 0.5rem;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid rgba(71, 85, 105, 0.25);
}
.bkig-terminal .rk-modal-table {
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
  font-size: 0.8125rem;
}
.bkig-terminal .rk-modal-thead-row {
  border-bottom: 1px solid rgba(71, 85, 105, 0.3);
  background: rgba(15, 23, 42, 0.5);
}
.bkig-terminal .rk-modal-th {
  padding: 0.5rem 0.875rem;
  font-size: 0.6rem;
  font-weight: 700;
  color: #475569;
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  white-space: nowrap;
}
.bkig-terminal .rk-modal-th-num { text-align: right; }
.bkig-terminal .rk-modal-tr {
  border-bottom: 1px solid rgba(71, 85, 105, 0.12);
  transition: background 0.1s;
}
.bkig-terminal .rk-modal-tr:last-child { border-bottom: none; }
.bkig-terminal .rk-modal-tr:hover { background: rgba(51, 65, 85, 0.25); }
.bkig-terminal .rk-modal-td {
  padding: 0.625rem 0.875rem;
  color: #cbd5e1;
  vertical-align: middle;
}
.bkig-terminal .rk-modal-td-sym { min-width: 100px; }
.bkig-terminal .rk-modal-td-num { text-align: right; }
.bkig-terminal .rk-modal-td-val { font-weight: 600; color: #e2e8f0; }
.bkig-terminal .rk-modal-sym {
  font-size: 0.875rem;
  font-weight: 700;
  color: #f1f5f9;
  letter-spacing: 0.03em;
  display: block;
}
.bkig-terminal .rk-modal-weight-bar {
  width: 60px;
  height: 2px;
  background: rgba(71, 85, 105, 0.2);
  margin-top: 3px;
  border-radius: 1px;
  overflow: hidden;
}
.bkig-terminal .rk-modal-empty {
  padding: 2rem;
  text-align: center;
  color: #475569;
  font-size: 0.8125rem;
}

.bkig-terminal .portfolio-label-block {
  display: block;
  font-size: 0.7rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.375rem;
}
.bkig-terminal .portfolio-input {
  padding: 0.5rem 0.75rem;
  background: #1e293b;
  border: 1px solid rgba(71, 85, 105, 0.4);
  border-radius: 5px;
  color: #e2e8f0;
  font-size: 0.875rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.bkig-terminal .portfolio-input:focus {
  outline: none;
  border-color: #22d3ee;
  box-shadow: 0 0 0 2px rgba(34, 211, 238, 0.2);
}
.bkig-terminal .portfolio-input::placeholder {
  color: #64748b;
}
.bkig-terminal .portfolio-textarea {
  min-height: 5rem;
  resize: vertical;
}
.bkig-terminal .portfolio-btn {
  padding: 0.5rem 1rem;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  border: 1px solid rgba(71, 85, 105, 0.5);
  border-radius: 5px;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.bkig-terminal .portfolio-action-btn.border-green-500,
.bkig-terminal .portfolio-action-btn.portfolio-action-buy.border-green-500 {
  border-color: #22c55e;
  color: #4ade80;
}
.bkig-terminal .portfolio-action-btn.border-red-500 {
  border-color: #ef4444;
  color: #f87171;
}
.bkig-terminal .portfolio-execute-btn {
  border-color: rgba(71, 85, 105, 0.6);
  color: #94a3b8;
}
.bkig-terminal .portfolio-execute-btn:hover {
  border-color: #22d3ee;
  color: #67e8f9;
}

.bkig-terminal .portfolio-journal {
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal .portfolio-journal-feed {
  font-size: 12px;
  max-height: 220px;
  overflow-y: auto;
}
.bkig-terminal .portfolio-journal-entry {
  padding: 0.625rem 0;
  border-bottom: 1px solid rgba(71, 85, 105, 0.2);
}
.bkig-terminal .portfolio-journal-entry:last-child {
  border-bottom: none;
}
.bkig-terminal .portfolio-journal-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.5rem;
  color: #94a3b8;
  font-variant-numeric: tabular-nums;
}
.bkig-terminal .portfolio-journal-ts {
  min-width: 8rem;
  color: #64748b;
}
.bkig-terminal .portfolio-journal-sep {
  color: #475569;
  margin: 0 0.125rem;
}
.bkig-terminal .portfolio-journal-action {
  font-weight: 600;
  min-width: 3.5rem;
}
.bkig-terminal .portfolio-journal-qty {
  min-width: 2rem;
  text-align: right;
}
.bkig-terminal .portfolio-journal-sym {
  min-width: 4rem;
  color: #e2e8f0;
}
.bkig-terminal .portfolio-journal-price {
  min-width: 4rem;
  text-align: right;
  color: #94a3b8;
}
.bkig-terminal .portfolio-journal-rationale {
  padding-left: 1.5rem;
  margin-top: 0.375rem;
  color: #888;
  font-size: 11px;
  white-space: pre-wrap;
  word-break: break-word;
}
.bkig-terminal .portfolio-journal-empty {
  color: #475569;
  padding: 0.5rem 0;
}

/* ---------------------------------------------------------------------------
   Internal Research & Resources — Bloomberg/Capital IQ style
   Category badges, format badges, filter active, row hover
--------------------------------------------------------------------------- */
.bkig-terminal .internal-research-search {
  border-radius: 2px;
  font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace;
}
.bkig-terminal .internal-research-filter.is-active {
  background: rgba(34, 211, 238, 0.2);
  border-color: rgba(34, 211, 238, 0.5);
  color: #67e8f9;
}
.bkig-terminal .internal-research-table {
  font-size: 12px;
}
.bkig-terminal .internal-research-row {
  border-bottom: 1px solid rgba(51, 65, 85, 0.4);
}
/* ─── Task 3: Modern semantic badges (soft-glow) ─── */
.bkig-terminal .internal-research-badge,
.bkig-terminal .internal-research-format,
.bkig-terminal .bkig-badge {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 0.25rem;
  border: 1px solid;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-variant-numeric: tabular-nums;
}

/* Positive / Buy / Approved */
.bkig-terminal .internal-research-badge-valuation,
.bkig-terminal .internal-research-format-xlsx,
.bkig-terminal .internal-research-badge-education {
  background: rgba(16, 185, 129, 0.1);
  color: #34d399;
  border-color: rgba(16, 185, 129, 0.2);
}
.bkig-terminal .ir-rating-buy,
.bkig-terminal .ir-rating-dot.buy { color: #34d399; }
.bkig-terminal .ir-rating-dot.buy { background: #34d399; }

/* Warning / Hold / Pending */
.bkig-terminal .internal-research-badge-data {
  background: rgba(245, 158, 11, 0.1);
  color: #fbbf24;
  border-color: rgba(245, 158, 11, 0.2);
}
.bkig-terminal .internal-research-badge-meeting_note {
  background: rgba(56, 189, 248, 0.1);
  color: #38bdf8;
  border-color: rgba(56, 189, 248, 0.2);
}
.bkig-terminal .ir-rating-hold,
.bkig-terminal .ir-rating-dot.hold { color: #fbbf24; }
.bkig-terminal .ir-rating-dot.hold { background: #fbbf24; }

/* Negative / Sell / Rejected */
.bkig-terminal .internal-research-format-pdf {
  background: rgba(244, 63, 94, 0.1);
  color: #fb7185;
  border-color: rgba(244, 63, 94, 0.2);
}
.bkig-terminal .ir-rating-sell,
.bkig-terminal .ir-rating-dot.sell { color: #fb7185; }
.bkig-terminal .ir-rating-dot.sell { background: #fb7185; }

/* Neutral / Tags */
.bkig-terminal .internal-research-badge-templates,
.bkig-terminal .internal-research-format-zip,
.bkig-terminal .internal-research-format-csv,
.bkig-terminal .internal-research-badge-research {
  background: rgba(51, 65, 85, 0.3);
  color: #cbd5e1;
  border-color: rgba(71, 85, 105, 0.5);
}

/* Status badges: Approved (positive), Pending (warning), Needs Revision (negative) — overridden by inline styles in JS; ensure soft-glow if classes used */
.bkig-terminal .bkig-badge-positive {
  background: rgba(16, 185, 129, 0.1);
  color: #34d399;
  border-color: rgba(16, 185, 129, 0.2);
}
.bkig-terminal .bkig-badge-warning {
  background: rgba(245, 158, 11, 0.1);
  color: #fbbf24;
  border-color: rgba(245, 158, 11, 0.2);
}
.bkig-terminal .bkig-badge-negative {
  background: rgba(244, 63, 94, 0.1);
  color: #fb7185;
  border-color: rgba(244, 63, 94, 0.2);
}
.bkig-terminal .bkig-badge-neutral {
  background: rgba(51, 65, 85, 0.3);
  color: #cbd5e1;
  border-color: rgba(71, 85, 105, 0.5);
}

/* Internal Research: toolbar — prevent top-right icons from overlapping */
.bkig-terminal #internal-research-widget .ir-upload-btn {
  flex-shrink: 0;
  margin-left: auto;
}
.bkig-terminal .ir-breadcrumb-container {
  max-width: 50%;
}
.bkig-terminal .ir-breadcrumb-container .ir-breadcrumb-part {
  white-space: nowrap;
}
.bkig-terminal .ir-breadcrumb-container .ir-breadcrumb-part.muted {
  color: #64748b;
}
.bkig-terminal .ir-breadcrumb-container .ir-breadcrumb-part.current {
  color: #e2e8f0;
  font-weight: 600;
}

/* Rating dot element (no fill in base) */
.bkig-terminal .ir-rating-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; margin-right: 4px; vertical-align: middle; }
.bkig-terminal .ir-rating-buy { font-weight: 600; }
.bkig-terminal .ir-rating-hold { font-weight: 600; }
.bkig-terminal .ir-rating-sell { font-weight: 600; }

/* Smart ticker: clickable, cursor */
.bkig-terminal .smart-ticker { cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.bkig-terminal .smart-ticker:hover { color: #67e8f9; }

/* ---------------------------------------------------------------------------
   Internal Research — Mobile / responsive (modern)
   --------------------------------------------------------------------------- */
@media (max-width: 768px) {
  #view-internal-research.ir-view {
    flex-direction: column;
    padding-top: 0.5rem !important;
    overflow: hidden;
  }

  /* Folder pane: slide-over drawer from left */
  .ir-folder-pane {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(280px, 85vw);
    z-index: 31;
    transform: translateX(-100%);
    transition: transform 0.25s ease-out, box-shadow 0.25s ease-out;
    border-right: 1px solid rgba(71, 85, 105, 0.5);
    box-shadow: none;
  }
  #view-internal-research.ir-folder-pane-open .ir-folder-pane {
    transform: translateX(0);
    box-shadow: 8px 0 24px rgba(0, 0, 0, 0.4);
  }
  .ir-folder-close-mobile {
    display: flex !important;
    align-items: center;
    justify-content: center;
  }
  #view-internal-research.ir-folder-pane-open .ir-folder-overlay-mobile {
    opacity: 1;
    pointer-events: auto;
  }
  .ir-folder-overlay-mobile {
    -webkit-tap-highlight-color: transparent;
  }

  /* Main content: full width */
  #view-internal-research .ir-folder-pane + div {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  /* Toolbar: stacked layout */
  .internal-research-widget {
    padding: 0.5rem 0.75rem;
  }
  .ir-toolbar {
    gap: 0.5rem 0.75rem;
  }
  .ir-toolbar-row1 {
    flex-basis: 100%;
    max-width: 100%;
  }
  .ir-toolbar-search {
    flex: 1 1 100%;
    min-width: 0;
  }
  .ir-toolbar-search .internal-research-search {
    width: 100%;
    max-width: none;
  }
  .ir-toolbar-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 0.375rem;
    padding-bottom: 2px;
  }
  .ir-toolbar-filters::-webkit-scrollbar {
    display: none;
  }
  .internal-research-filter {
    flex-shrink: 0;
    white-space: nowrap;
  }
  .ir-upload-btn {
    margin-left: 0;
    width: 100%;
    flex: 1 1 100%;
  }
  .ir-breadcrumb-container {
    max-width: none;
  }

  /* Table: horizontal scroll, touch-friendly */
  .ir-table-wrap {
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    min-height: 0;
  }
  .bkig-terminal .internal-research-table {
    min-width: 880px;
  }
  .bkig-terminal .internal-research-table th,
  .bkig-terminal .internal-research-table td {
    padding: 0.5rem 0.625rem;
    font-size: 11px;
  }
  .bkig-terminal .internal-research-table th:nth-child(5),
  .bkig-terminal .internal-research-table td:nth-child(5) {
    min-width: 140px;
  }
  .bkig-terminal .internal-research-row {
    -webkit-tap-highlight-color: transparent;
  }
}

@media (max-width: 480px) {
  .internal-research-widget {
    padding: 0.5rem 0.5rem;
  }
  .ir-toolbar-filters .internal-research-filter {
    padding: 0.35rem 0.5rem;
    font-size: 10px;
  }
  .bkig-terminal .internal-research-table {
    font-size: 11px;
    min-width: 760px;
  }
  .bkig-terminal .internal-research-table th,
  .bkig-terminal .internal-research-table td {
    padding: 0.4rem 0.5rem;
  }
}

/* Desktop: hide mobile-only folder button and close button */
@media (min-width: 769px) {
  .ir-mobile-folder-btn,
  .ir-folder-close-mobile {
    display: none !important;
  }
  .ir-folder-overlay-mobile {
    display: none !important;
  }
}

/* ---------------------------------------------------------------------------
   Stock Screener (Portfolio view) — Sparkline cell
   --------------------------------------------------------------------------- */
.bkig-terminal .screener-sparkline {
  width: 90px;
  height: 28px;
}
.bkig-terminal .screener-sparkline svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* ---------------------------------------------------------------------------
   Meeting Intelligence — Call Report style inputs (rounded-none, thin border)
--------------------------------------------------------------------------- */
.bkig-terminal .mi-input {
  border-radius: 0;
  border-width: 1px;
}

/* Meeting Intelligence: 모바일에서 리스트/에디터 전환 (New Note 클릭 시 에디터만 표시) */
@media (max-width: 767px) {
  #meeting-intel-panels {
    flex-direction: column;
    overflow: hidden;
  }
  #meeting-intel-panels .meeting-intel-list-panel {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 1 1 auto;
    min-height: 0;
  }
  #meeting-intel-panels .meeting-intel-editor-panel {
    display: none;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
  #meeting-intel-panels.mi-mobile-show-editor .meeting-intel-list-panel {
    display: none !important;
  }
  #meeting-intel-panels.mi-mobile-show-editor .meeting-intel-editor-panel {
    display: flex !important;
  }
}

/* PDF export: IB report style (used in hidden #meeting-intel-pdf-source) */
.meeting-intel-pdf-source {
  position: absolute;
  left: -9999px;
  width: 210mm;
  min-height: 297mm;
  padding: 20mm;
  font-family: 'Georgia', 'Times New Roman', serif;
  font-size: 11px;
  color: #1e293b;
  background: #fff;
}
.meeting-intel-pdf-source .pdf-header {
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #0f172a;
  border-bottom: 2px solid #0f172a;
  padding-bottom: 8px;
  margin-bottom: 16px;
}
.meeting-intel-pdf-source .pdf-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-35deg);
  font-size: 48px;
  font-weight: 700;
  color: rgba(15, 23, 42, 0.08);
  white-space: nowrap;
  pointer-events: none;
}
.meeting-intel-pdf-source .pdf-section {
  margin-bottom: 12px;
}
.meeting-intel-pdf-source .pdf-section-title {
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 4px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.meeting-intel-pdf-source .pdf-meta-row {
  display: flex;
  gap: 24px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.meeting-intel-pdf-source .pdf-meta-item {
  font-size: 10px;
}
.meeting-intel-pdf-source .pdf-meta-item strong {
  color: #475569;
}

/* ---------------------------------------------------------------------------
   Upload Drawer (Slide-over / Right Drawer) — Internal Research
--------------------------------------------------------------------------- */
.upload-drawer {
  visibility: hidden;
  transition: visibility 0s linear 0.3s;
}
.upload-drawer.upload-drawer-open {
  visibility: visible;
  pointer-events: auto;
  transition: visibility 0s linear 0s;
}
.upload-drawer.upload-drawer-open .upload-drawer-backdrop {
  opacity: 1;
}
.upload-drawer.upload-drawer-open .upload-drawer-panel {
  transform: translateX(0);
}
.bkig-terminal .upload-drawer-category.is-active {
  background: rgba(34, 211, 238, 0.15);
  border-color: rgba(34, 211, 238, 0.5);
  color: #67e8f9;
}
.bkig-terminal .upload-ticker-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  font-size: 11px;
  font-weight: 500;
  background: rgba(71, 85, 105, 0.6);
  border: 1px solid rgba(71, 85, 105, 0.8);
  color: #e2e8f0;
  border-radius: 2px;
}
.bkig-terminal .upload-ticker-pill-remove {
  color: #94a3b8;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  background: none;
  border: none;
  font-size: 14px;
  line-height: 0.8;
}
.bkig-terminal .upload-ticker-pill-remove:hover {
  color: #f87171;
}

/* ==========================================================================
   MOBILE — 현대식 금융 터미널 모바일 대응 (768px 이하)
   - 사이드바 → 오버레이 드로어
   - 상단 앱바 + 햄버거, 하단 탭 네비 (선택)
   - 콘텐츠 패딩·테이블·그리드 조정
   ========================================================================== */

/* Stock Screener: 공통 로딩 오버레이 (모바일/데스크탑 모두) */
.bkig-terminal .screener-loading-overlay {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background-color: rgba(15, 23, 42, 0.8);
  z-index: 10;
}
.bkig-terminal .screener-spinner {
  width: 24px;
  height: 24px;
  border-radius: 9999px;
  border: 3px solid rgba(148, 163, 184, 0.5);
  border-top-color: #22c55e;
  animation: screener-spin 0.7s linear infinite;
}
.bkig-terminal .screener-loading-overlay.screener-loading-active {
  display: flex;
}
@keyframes screener-spin {
  to {
    transform: rotate(360deg);
  }
}

/* 모바일: 메인을 헤더~하단네비 사이에 고정, 그 안에서만 스크롤 → 위 빈 공간 제거 */
@media (max-width: 768px) {
  .bkig-terminal {
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
    padding-bottom: env(safe-area-inset-bottom, 0);
  }

  /* LNB: 모바일은 하단 시트 — 화면 아래에서 70% 높이 (Tailwind sticky/top-0 과 충돌 방지에 !important) */
  .bkig-lnb {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    z-index: 200;
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
    min-height: 0;
    /* 뷰포트 하단부터 정확히 70% 차지 (내용은 nav 안에서 스크롤) */
    height: 70vh !important;
    height: 70dvh !important;
    max-height: 70vh !important;
    max-height: 70dvh !important;
    flex-direction: column;
    /* 100%는 시트 자기 높이 기준이라 일부 기기에서 아래에 줄이 보일 수 있음 → 뷰포트 기준으로 완전히 숨김 */
    transform: translateY(calc(100vh + 24px));
    transform: translateY(calc(100dvh + 24px));
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s ease;
    border-radius: 16px 16px 0 0;
    border-right: none;
    border-top: 1px solid rgba(71, 85, 105, 0.55);
    box-shadow: none;
    padding-bottom: env(safe-area-inset-bottom, 0);
    overscroll-behavior: contain;
  }

  /* 하단 시트 상단 핸들 (모바일 관성 제스처 힌트) */
  .bkig-lnb::before {
    content: '';
    flex-shrink: 0;
    width: 40px;
    height: 4px;
    margin: 10px auto 4px;
    border-radius: 9999px;
    background: rgba(148, 163, 184, 0.4);
  }

  .bkig-lnb > nav {
    min-height: 0;
  }

  /* 닫힌 시트는 터치·포커스 비활성 (유령 탭 방지) */
  .bkig-terminal:not(.mobile-menu-open) .bkig-lnb {
    pointer-events: none;
  }

  .bkig-terminal.mobile-menu-open .bkig-lnb {
    transform: translateY(0);
    pointer-events: auto;
    box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.45);
  }

  /* 시트를 손가락으로 끌 때 CSS 트랜지션 끄기 (JS가 .bkig-lnb-dragging 부여) */
  .bkig-lnb.bkig-lnb-dragging {
    transition: none !important;
  }

  /* 모바일 메뉴 백드롭 */
  .bkig-mobile-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 199;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity 0.25s ease;
  }

  .bkig-terminal.mobile-menu-open .bkig-mobile-backdrop {
    display: block;
    opacity: 1;
  }

  /* 메인: 헤더 바로 아래 ~ 하단 네비 바로 위까지 고정, 이 영역만 스크롤 → 콘텐츠가 맨 위부터 보임 */
  .bkig-terminal main {
    position: fixed;
    top: 56px;
    left: 0;
    right: 0;
    bottom: calc(64px + env(safe-area-inset-bottom, 0));
    z-index: 1;
    min-width: 0;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    display: block;
    padding-top: 0;
    padding-bottom: 0;
  }

  /* 뷰 섹션: 메인 스크롤 영역 안에서 위부터 쌓임 */
  .bkig-terminal main section[id^="view-"] {
    width: 100%;
    min-height: 0;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
  }

  /* 모바일 상단 헤더 (햄버거 + 타이틀 + 로고) — 배경 불투명하게 */
  .bkig-mobile-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 150;
    height: 56px;
    padding-left: env(safe-area-inset-left, 0);
    padding-right: env(safe-area-inset-right, 0);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: #0d1220;
    border-bottom: 1px solid rgba(71, 85, 105, 0.5);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .bkig-mobile-header .bkig-mobile-menu-btn {
    width: 44px;
    height: 44px;
    margin-right: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: #94a3b8;
    border-radius: 10px;
    transition: background 0.2s, color 0.2s;
    -webkit-tap-highlight-color: transparent;
  }

  .bkig-mobile-header .bkig-mobile-menu-btn:hover,
  .bkig-mobile-header .bkig-mobile-menu-btn:active {
    background: rgba(71, 85, 105, 0.4);
    color: #e2e8f0;
  }

  .bkig-mobile-header .bkig-mobile-title {
    font-size: 1rem;
    font-weight: 600;
    color: #f1f5f9;
    letter-spacing: 0.02em;
    flex: 1;
    text-align: center;
    min-width: 0;
    padding: 0 8px;
  }

  .bkig-mobile-header .bkig-mobile-logo {
    height: 26px;
    width: auto;
    max-width: 100px;
    object-fit: contain;
    opacity: 0.95;
    margin-left: 4px;
    flex-shrink: 0;
  }

  /* 대시보드 / 각 뷰: 모바일 패딩 — 상단은 0으로 해서 빈 공간 없이 콘텐츠부터 */
  #view-dashboard,
  #view-portfolio,
  #view-fund,
  #view-ranking,
  #view-watchlist,
  #view-internal-research,
  #view-meeting-intelligence,
  #view-network,
  #view-financial-tools,
  #view-deep-analysis,
  #view-profile,
  #view-admin {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-top: 0 !important;
    padding-bottom: 1rem !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch;
  }

  #view-dashboard {
    padding-right: 1rem !important;
  }

  /* 대시보드 그리드: 첫 화면에 바로 보이도록 */
  #view-dashboard .grid {
    min-height: min-content;
  }

  /* Monthly Performance Tear-sheet: 모바일에서 잘림 방지, 정렬 개선 */
  #performance-tearsheet-card {
    -webkit-overflow-scrolling: touch;
  }
  #performance-tearsheet-card .perf-export-btn,
  #performance-tearsheet-card select,
  #performance-tearsheet-card input {
    min-height: 36px;
  }
  @media (max-width: 639px) {
    #performance-tearsheet-card #perf-kpi-row {
      gap: 0.5rem;
    }
  }

  /* ---------- Portfolio: 모바일 레이아웃 (사이드바 → 상단 가로 탭, 메인 풀폭) ---------- */
  #view-portfolio.portfolio-terminal-section {
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
  }
  #view-portfolio #portfolio-root,
  #view-portfolio #portfolio-content {
    flex-direction: column;
    min-height: 0;
  }
  #view-portfolio #portfolio-content:not(.hidden) {
    display: flex !important;
  }
  #view-portfolio .portfolio-sidebar {
    display: flex !important;
    flex-shrink: 0;
    width: 100%;
    max-width: none;
    min-height: 44px;
    border-right: none;
    border-bottom: 1px solid rgba(71, 85, 105, 0.5);
    flex-direction: row;
    align-items: center;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 0.25rem 0.25rem;
    gap: 0.25rem;
    background-color: #0B1120;
    position: sticky;
    top: 0;
    z-index: 5;
  }
  #view-portfolio .portfolio-sidebar nav {
    display: flex !important;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.25rem;
    padding: 0 0.25rem;
    min-width: min-content;
  }
  #view-portfolio .portfolio-sidebar .portfolio-tab {
    display: flex !important;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 0;
    padding: 0.35rem 0.5rem;
    font-size: 0.7rem;
    margin-bottom: 0;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #view-portfolio .portfolio-main {
    padding: 1.2rem 1rem 1.5rem !important;
    padding-right: 1rem !important;
    min-width: 0;
  }
  #view-portfolio .portfolio-main > .portfolio-panel-view:first-of-type {
    margin-top: 3.5rem;
  }
  #view-portfolio .portfolio-ticker-tape .grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
  #view-portfolio .portfolio-tape-cell {
    padding: 0.5rem 0.375rem;
    border-right: none;
    border-bottom: 1px solid rgba(71, 85, 105, 0.3);
  }
  #view-portfolio .portfolio-tape-cell:nth-child(odd) { border-right: 1px solid rgba(71, 85, 105, 0.3); }
  #view-portfolio .portfolio-tape-cell p.text-lg,
  #view-portfolio .portfolio-tape-cell .text-lg { font-size: 0.875rem; }
  #view-portfolio .portfolio-panel-view .grid.grid-cols-1.lg\:grid-cols-3 {
    grid-template-columns: 1fr;
  }
  #view-portfolio #view-portfolio-holdings .overflow-x-auto,
  #view-portfolio .portfolio-table {
    -webkit-overflow-scrolling: touch;
  }
  #view-portfolio .portfolio-table th,
  #view-portfolio .portfolio-table td {
    padding: 0.5rem 0.5rem;
    font-size: 0.7rem;
  }
  #view-portfolio .screener-loading-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(15, 23, 42, 0.8);
    z-index: 10;
  }
  #view-portfolio .screener-spinner {
    width: 24px;
    height: 24px;
    border-radius: 9999px;
    border: 3px solid rgba(148, 163, 184, 0.5);
    border-top-color: #22c55e;
    animation: screener-spin 0.7s linear infinite;
  }
  @keyframes screener-spin {
    to {
      transform: rotate(360deg);
    }
  }
  #view-portfolio #view-portfolio-orders .grid {
    grid-template-columns: 1fr;
  }
  #view-portfolio .pf-period-btns {
    flex-wrap: wrap;
    gap: 0.25rem;
  }
  #view-portfolio .pf-period-btn {
    padding: 0.35rem 0.5rem;
    font-size: 9px;
  }

  /* ---------- Fund: 모바일 카드 1열, 스트립/탭 랩·스크롤 ---------- */
  .bkig-terminal .fund-cards-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .bkig-terminal .fund-card {
    padding: 0.875rem 1rem;
  }
  .bkig-terminal .fund-summary-strip {
    flex-wrap: wrap;
    gap: 12px;
    padding: 8px 12px;
  }
  .bkig-terminal .fund-metric-strip {
    flex-wrap: wrap;
  }
  .bkig-terminal .fund-metric-cell {
    min-width: 90px;
    flex: 1 1 90px;
  }
  .bkig-terminal .fund-detail-topbar {
    flex-wrap: wrap;
    gap: 8px;
  }
  .bkig-terminal .fund-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap;
  }
  .bkig-terminal .fund-tab {
    flex-shrink: 0;
    padding: 8px 12px;
    font-size: 0.75rem;
  }
  .bkig-terminal .fund-overview-metrics {
    flex-wrap: wrap;
    gap: 8px;
  }
  .bkig-terminal .fund-overview-metric {
    padding: 0 8px;
  }
  .bkig-terminal .fund-overview-metric-div {
    display: none;
  }
  .bkig-terminal .fund-overview-charts {
    grid-template-columns: 1fr;
  }
  .bkig-terminal .fund-overview-bottom {
    grid-template-columns: 1fr;
  }
  .bkig-terminal .fund-member-perf-grid {
    grid-template-columns: 1fr;
  }
  .bkig-terminal .fund-table {
    font-size: 0.75rem;
  }
  .bkig-terminal .fund-table th,
  .bkig-terminal .fund-table td {
    padding: 6px 8px;
  }

  /* ---------- Ranking: 모바일 스탯 랩, 카드 헤더·탭·테이블 ---------- */
  .bkig-terminal .rk-section-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin-left: -0.5rem;
    margin-right: -0.5rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  .bkig-terminal .rk-section-tab {
    flex-shrink: 0;
    padding: 8px 14px;
    font-size: 0.8125rem;
  }
  .bkig-terminal .rk-stats-strip {
    flex-wrap: wrap;
    gap: 8px;
    padding: 0.5rem 0.75rem;
  }
  .bkig-terminal .rk-stat {
    padding-right: 0.75rem;
  }
  .bkig-terminal .rk-stat-div {
    margin-right: 0.75rem;
  }
  .bkig-terminal .rk-card-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }
  .bkig-terminal .rk-search-input {
    width: 100%;
    max-width: none;
  }
  .bkig-terminal .rk-table {
    font-size: 0.75rem;
  }
  .bkig-terminal .rk-th,
  .bkig-terminal .rk-td {
    padding: 0.5rem 0.5rem;
  }
  .bkig-terminal .rk-th-bar {
    width: 80px;
  }
  .bkig-terminal .rk-modal-summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .bkig-terminal .rk-modal-stat {
    padding: 0.5rem 0.625rem;
  }
  .bkig-terminal .rk-modal-stat-val {
    font-size: 0.875rem;
  }

  /* Network & Career: 모바일 필터 상단, 터치 친화, safe area */
  #view-network.network-view {
    padding-left: max(0.75rem, env(safe-area-inset-left)) !important;
    padding-right: max(0.75rem, env(safe-area-inset-right)) !important;
    padding-top: max(0.5rem, env(safe-area-inset-top)) !important;
    padding-bottom: max(2rem, env(safe-area-inset-bottom)) !important;
  }
  #view-network .network-filters-bar {
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }
  #view-network .network-filter-chip {
    -webkit-tap-highlight-color: transparent;
  }
  #view-network .network-alumni-card {
    min-height: 0;
    -webkit-tap-highlight-color: transparent;
  }
  #view-network .network-job-card {
    min-height: 36px;
  }
  /* Jobs: Terminal aesthetic — subtle highlight row, sharp borders */
  #view-network .network-job-row-highlight {
    border-left-width: 2px;
    border-left-color: rgb(202, 138, 4);
  }
  #view-network .network-job-logo {
    border-radius: 0;
  }
  #view-network .network-job-apply:focus-visible,
  #view-network .network-partner-link:focus-visible {
    outline: 1px solid rgba(148, 163, 184, 0.5);
    outline-offset: 1px;
  }
  #view-network .network-sidebar-block {
    border-color: rgb(30, 41, 59);
  }
  #view-network .network-job-view[data-active="true"] {
    background-color: rgb(30, 41, 59);
    color: rgb(226, 232, 240);
  }
  .network-manage-tab[data-active="true"] {
    border-bottom-color: rgb(6, 182, 212);
    color: rgb(34, 211, 238);
  }
  #view-network .network-calendar-grid > div {
    min-height: 36px;
  }
  /* Filter chip selected state (when checkbox inside is checked) */
  #view-network .network-filter-chip:has(input:checked) {
    border-color: rgba(6, 182, 212, 0.6);
    background-color: rgba(6, 182, 212, 0.2);
    color: rgb(103, 232, 249);
  }
  #view-network .network-tabs,
  #view-network .network-filters-bar {
    margin-left: -0.75rem;
    margin-right: -0.75rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  /* 메인 영역 우상단 로고: 모바일에서는 헤더에만 표시 */
  .bkig-terminal main > div.absolute.top-0.right-0 {
    display: none;
  }

  /* 카드/패널 모바일: 여백 축소 */
  .bkig-terminal .rounded-xl {
    border-radius: 12px;
  }

  .bkig-terminal #view-dashboard .grid > div,
  .bkig-terminal #view-financial-tools .grid > div {
    padding: 1rem;
  }

  /* 테이블: 가로 스크롤 유지, 터치 친화 */
  .bkig-terminal .overflow-x-auto {
    -webkit-overflow-scrolling: touch;
    margin-left: -0.25rem;
    margin-right: -0.25rem;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }

  .bkig-terminal table {
    font-size: 12px;
  }

  .bkig-terminal table th,
  .bkig-terminal table td {
    padding: 0.5rem 0.5rem;
    white-space: nowrap;
  }

  /* Comms 뷰: 모바일에서 3단 → 탭 또는 스택 */
  #view-comms {
    flex-direction: column !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    min-height: 0;
  }

  #view-comms .comms-sidebar {
    width: 100%;
    max-height: 40vh;
    min-height: 120px;
    border-right: none;
    border-bottom: 1px solid rgba(71, 85, 105, 0.5);
    flex-shrink: 0;
    transition: max-height 0.25s ease, min-height 0.25s ease;
  }

  /* 모바일: 룸 선택 시 사이드바 접기 → 채팅 영역 확대 */
  #view-comms.comms-mobile-sidebar-collapsed .comms-sidebar {
    max-height: 52px;
    min-height: 52px;
    flex-shrink: 0;
  }

  #view-comms.comms-mobile-sidebar-collapsed .comms-sidebar-list {
    display: none;
  }

  #view-comms.comms-mobile-sidebar-collapsed .comms-sidebar .comms-sidebar-chevron {
    transform: rotate(-90deg);
  }

  #view-comms.comms-mobile-sidebar-collapsed .comms-mobile-back-to-rooms {
    display: flex !important;
  }
}

/* 데스크톱: 사이드바 헤더는 일반 블록, chevron 숨김 */
.bkig-terminal .comms-sidebar-chevron {
  display: none;
}
@media (max-width: 768px) {
  .bkig-terminal .comms-sidebar-chevron {
    display: block;
  }

  #view-comms .comms-center {
    flex: 1;
    min-height: 280px;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  /* 모바일 채팅: 메시지 영역 터치 스크롤, 여유 패딩 */
  #view-comms .comms-messages-area {
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.5rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  /* 모바일 채팅 입력: 터치하기 쉽게 높이·폰트·safe-area 적용 */
  #view-comms .comms-input-wrap {
    padding: 0.75rem 1rem;
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom, 0));
    background: #111827;
    border-top: 1px solid rgba(71, 85, 105, 0.5);
    flex-shrink: 0;
  }

  #view-comms .comms-message-input {
    min-height: 48px;
    padding: 12px 16px;
    font-size: 16px;
    border-radius: 12px;
    -webkit-appearance: none;
    appearance: none;
  }

  #view-comms .comms-message-input::placeholder {
    color: rgb(100 116 139);
  }

  #view-comms .comms-members {
    width: 100%;
    max-height: 32vh;
    min-height: 80px;
    border-top: 1px solid rgba(71, 85, 105, 0.5);
  }

  #view-comms .comms-members #comms-blocked-list {
    max-height: 5rem;
  }

  /* 모바일 채팅: 룸 제목 바 컴팩트하게 → 메시지/입력 공간 확보 */
  #view-comms .comms-room-header {
    padding: 0.5rem 0.75rem;
  }

  #view-comms .comms-room-header #comms-room-title {
    font-size: 0.8125rem;
  }

  /* ---------- Financial Tools: 모바일 반응형 (가로 스크롤 탭, 콘텐츠/테이블 가독성) ---------- */
  #view-financial-tools .financial-tools-workspace {
    height: auto !important;
    min-height: 0;
  }

  #view-financial-tools .financial-tools-nav {
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.375rem;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 0.5rem;
    scrollbar-width: thin;
    border-radius: 0.5rem;
  }

  #view-financial-tools .financial-tools-nav .financial-tool-nav {
    width: auto;
    min-width: 0;
    white-space: nowrap;
    flex-shrink: 0;
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    border-radius: 0.375rem;
    min-height: 2.5rem;
  }

  #view-financial-tools .financial-tools-content-wrap {
    min-height: min(50vh, 400px);
  }

  #view-financial-tools #tool-content {
    -webkit-overflow-scrolling: touch;
  }

  #view-financial-tools #tool-content table,
  #view-financial-tools #tool-content .overflow-x-auto {
    -webkit-overflow-scrolling: touch;
  }

  #view-financial-tools #tool-content table {
    font-size: 0.75rem;
    display: block;
    max-width: 100%;
  }

  #view-financial-tools #tool-content table th,
  #view-financial-tools #tool-content table td {
    padding: 0.5rem 0.5rem;
    white-space: nowrap;
  }

  /* ---------- Deep Analysis: 모바일 반응형 (헤더·사이드바·콘텐츠) ---------- */
  #view-deep-analysis {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  #view-deep-analysis .deep-analysis-header {
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 1rem;
  }

  #view-deep-analysis .deep-analysis-sidebar {
    width: 100%;
    max-width: 100%;
    flex-shrink: 0;
    border-right: none;
    border-bottom: 1px solid rgba(51, 65, 85, 0.8);
  }

  #view-deep-analysis .deep-analysis-nav {
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    gap: 0.25rem;
    padding-bottom: 0.25rem;
    scrollbar-width: thin;
  }

  #view-deep-analysis .deep-analysis-nav .deep-analysis-tab {
    width: auto;
    min-width: 0;
    white-space: nowrap;
    flex-shrink: 0;
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    margin-bottom: 0;
    min-height: 2.5rem;
    border-radius: 0.375rem;
  }

  #view-deep-analysis .deep-analysis-panel-wrap {
    padding: 1rem;
    -webkit-overflow-scrolling: touch;
  }

  /* Deep Analysis 패널 내 카드/그리드 모바일 */
  #view-deep-analysis #corporate-dna-container .grid.grid-cols-1.lg\:grid-cols-2 {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  #view-deep-analysis #corporate-dna-container .min-h-\[320px\] {
    min-height: 240px;
  }

  #view-deep-analysis #corporate-dna-container .h-80 {
    height: 14rem;
    min-height: 12rem;
  }

  #view-deep-analysis #corporate-dna-ticker,
  #view-deep-analysis #corporate-dna-exchange,
  #view-deep-analysis .text-\[10px\] {
    font-size: 0.65rem;
  }

  #view-deep-analysis #corporate-dna-price {
    font-size: 1.75rem;
  }

  #view-deep-analysis .deep-analysis-panel .grid {
    gap: 0.75rem;
  }

  #view-deep-analysis .deep-analysis-panel .bg-slate-900.border {
    padding: 0.75rem 1rem;
  }

  /* Deep Analysis 테이블/데이터 모바일 가독성 */
  #view-deep-analysis table {
    font-size: 0.75rem;
    display: block;
    max-width: 100%;
  }

  #view-deep-analysis table th,
  #view-deep-analysis table td {
    padding: 0.5rem 0.5rem;
  }

  #view-deep-analysis .overflow-x-auto {
    -webkit-overflow-scrolling: touch;
    margin-left: -0.25rem;
    margin-right: -0.25rem;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }

  /* 하단 네비게이션 (금융 앱 스타일) */
  .bkig-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 150;
    height: 64px;
    padding-bottom: env(safe-area-inset-bottom, 0);
    padding-left: env(safe-area-inset-left, 0);
    padding-right: env(safe-area-inset-right, 0);
    display: flex;
    align-items: center;
    justify-content: space-around;
    background: rgba(13, 18, 32, 0.98);
    border-top: 1px solid rgba(71, 85, 105, 0.4);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transform: translateY(0);
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* 메뉴 시트 열릴 때 하단 탭은 잠시 내려서 시트·백드롭과 겹침·오동작 줄임 */
  .bkig-terminal.mobile-menu-open .bkig-bottom-nav {
    transform: translateY(110%);
    pointer-events: none;
  }

  .bkig-bottom-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 8px 4px;
    min-width: 0;
    color: #64748b;
    background: none;
    border: none;
    font-size: 10px;
    font-weight: 500;
    transition: color 0.2s, background 0.2s;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
    cursor: pointer;
  }

  .bkig-bottom-nav-item:hover,
  .bkig-bottom-nav-item:active {
    color: #94a3b8;
  }

  .bkig-bottom-nav-item.is-active {
    color: #22d3ee;
  }

  .bkig-bottom-nav-item svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
  }
}

/* 모바일: 업로드 드로어 전체 너비 */
@media (max-width: 768px) {
  .upload-drawer-panel {
    max-width: 100% !important;
  }
}

/* Earnings & Macro Calendar: FACCTing 미연동 시 흐림 오버레이 */
.calendar-faccting-wrap {
  position: relative;
  width: 100%;
  min-height: 420px;
}
.calendar-faccting-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  cursor: pointer;
  border-radius: 0.5rem;
}
.calendar-faccting-overlay-inner {
  text-align: center;
  padding: 1.5rem;
  max-width: 280px;
}
.calendar-faccting-overlay-text {
  font-size: 1rem;
  font-weight: 600;
  color: #e2e8f0;
  margin: 0 0 0.5rem;
}
.calendar-faccting-overlay-sub {
  font-size: 0.8125rem;
  color: #94a3b8;
  margin: 0;
  line-height: 1.5;
}

/* 모바일: 캘린더 그리드·필 컴팩트하게 (768px 이하) */
@media (max-width: 768px) {
  #view-calendar {
    -webkit-overflow-scrolling: touch;
  }
  #calendar-events-widget {
    border-radius: 0.5rem;
  }
  .calendar-grid {
    min-width: 0;
  }
  .calendar-grid .calendar-cell {
    min-height: 64px;
  }
  .calendar-grid-header > div {
    font-size: 9px;
    padding-top: 4px;
    padding-bottom: 4px;
  }
  .calendar-event-pill,
  .calendar-event-more {
    min-height: 22px;
    -webkit-tap-highlight-color: transparent;
  }
  .calendar-pill {
    font-size: 9px;
    line-height: 1.2;
    padding-left: 4px;
    padding-right: 4px;
  }
  #calendar-event-modal-content {
    max-height: 80vh;
    margin: 0.5rem;
  }
}

/* 데스크톱: 모바일 전용 요소 숨김 */
@media (min-width: 769px) {
  .bkig-mobile-header,
  .bkig-mobile-backdrop,
  .bkig-bottom-nav {
    display: none !important;
  }

  .bkig-terminal main {
    padding-top: 0;
    padding-bottom: 0;
  }
}

/* ════════════════════════════════════════════════════════════════════════════
   Hedging Lab — Bloomberg-style terminal component
   ════════════════════════════════════════════════════════════════════════════ */

/* KPI metric cards */
.bkig-terminal .hl-kpi-card {
  background: #0d1220;
  border: 1px solid #1e293b;
  border-radius: 4px;
  padding: 0.875rem 1rem;
  position: relative;
  overflow: hidden;
}
.bkig-terminal .hl-kpi-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, #0f766e 0%, #2dd4bf 100%);
  opacity: 0.5;
}
.bkig-terminal .hl-kpi-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #475569;
  margin-bottom: 0.375rem;
  font-family: 'JetBrains Mono', monospace;
}
.bkig-terminal .hl-kpi-val {
  font-size: 1.5rem;
  font-weight: 700;
  color: #e2e8f0;
  font-family: 'JetBrains Mono', monospace;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 0.25rem;
}
.bkig-terminal .hl-kpi-sub {
  font-size: 0.6rem;
  color: #334155;
  font-family: 'JetBrains Mono', monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Color helpers */
.bkig-terminal .hl-pos { color: #34d399; }
.bkig-terminal .hl-neg { color: #f87171; }

/* Data cards */
.bkig-terminal .hl-card {
  background: #0d1220;
  border: 1px solid #1e293b;
  border-radius: 4px;
  padding: 1rem 1.125rem;
}
.bkig-terminal .hl-card-label {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #475569;
  font-family: 'JetBrains Mono', monospace;
}

/* Narrative card */
.bkig-terminal .hl-narrative-card {
  border-color: rgba(45, 212, 191, 0.15);
  background: linear-gradient(135deg, #0d1220 85%, rgba(15, 118, 110, 0.08) 100%);
}

/* Sidebar active tab */
.bkig-terminal .hl-tab.bg-slate-800 {
  background: rgba(30, 41, 59, 0.9) !important;
  border-left: 2px solid #2dd4bf;
}

/* Input styling */
.bkig-terminal .hl-input {
  background: #0a0e17;
  border: 1px solid #1e293b;
  border-radius: 3px;
  color: #e2e8f0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.8125rem;
  padding: 0.5rem 0.75rem;
  transition: border-color 0.15s;
}
.bkig-terminal .hl-input:focus {
  outline: none;
  border-color: #2dd4bf;
  box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.2);
}
.bkig-terminal .hl-input-label {
  display: block;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #475569;
  margin-bottom: 0.375rem;
  font-family: 'JetBrains Mono', monospace;
}

/* Download button */
.bkig-terminal .hl-download-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.875rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-family: 'JetBrains Mono', monospace;
  color: #94a3b8;
  border: 1px solid #1e293b;
  border-radius: 3px;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.bkig-terminal .hl-download-btn:hover {
  background: #1e293b;
  color: #e2e8f0;
  border-color: #334155;
}

/* Options chain table: ATM highlight glow */
.bkig-terminal #hl-options-tbody tr.atm-row {
  box-shadow: inset 0 0 0 1px rgba(45, 212, 191, 0.25);
}

/* Smooth panel transitions */
.bkig-terminal .hl-panel {
  animation: hlFadeIn 0.18s ease;
}
@keyframes hlFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Header search input */
#hl-ticker {
  background: #0a0e17 !important;
  font-family: 'JetBrains Mono', monospace !important;
}

/* Sidebar on mobile: horizontal scroll pills */
@media (max-width: 767px) {
  .bkig-terminal .hl-sidebar {
    border-bottom: 1px solid #1e293b;
  }
  .bkig-terminal .hl-nav {
    padding-bottom: 0.5rem;
    scrollbar-width: none;
  }
  .bkig-terminal .hl-nav::-webkit-scrollbar { display: none; }
  .bkig-terminal .hl-tab {
    border-radius: 2px;
    border: 1px solid #1e293b;
    padding: 0.4rem 0.75rem;
    white-space: nowrap;
  }
  .bkig-terminal .hl-tab.bg-slate-800 {
    border-color: rgba(45, 212, 191, 0.4);
    border-left-width: 1px;
  }
}

/* Options: explain card (B-S intro) */
.bkig-terminal .hl-explain-card {
  border-color: rgba(167, 139, 250, 0.15);
  background: linear-gradient(135deg, #0d1220 85%, rgba(109, 40, 217, 0.06) 100%);
}

/* Options: Greek definition boxes */
.bkig-terminal .hl-greek-box {
  background: #0a0e17;
  border: 1px solid #1e293b;
  border-radius: 4px;
  padding: 0.75rem 0.875rem;
}
.bkig-terminal .hl-greek-sym {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 0.4rem;
}
.bkig-terminal .hl-greek-desc {
  font-size: 0.6875rem;
  color: #64748b;
  line-height: 1.55;
}

/* Range input: teal accent */
#hl-target-beta {
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  background: #1e293b;
  border-radius: 2px;
  outline: none;
}
#hl-target-beta::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #2dd4bf;
  cursor: pointer;
  border: 2px solid #0a0e17;
  box-shadow: 0 0 0 2px rgba(45, 212, 191, 0.25);
}
#hl-target-beta::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #2dd4bf;
  cursor: pointer;
  border: 2px solid #0a0e17;
}
