/*!***************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!./app/dashboard.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************/
/* 메인 대시보드 스타일 - 관리자 콘솔과 통일된 디자인 */

.dashboard {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  padding: 32px 24px 48px;
  max-width: 1200px;
  margin: 0 auto;
}

/* 헤더 영역 */
.dashboard-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}

.dashboard-header h1 {
  font-size: 32px;
  font-weight: 700;
  margin: 0;
  color: #111827;
}

.dashboard-header p {
  margin: 6px 0 0;
  color: #6b7280;
}

.dashboard-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

/* 핵심 지표 카드 */
.stat-cards {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  grid-gap: 16px;
  gap: 16px;
}

.stat-card {
  padding: 20px;
  border-radius: 12px;
  color: white;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.stat-card.total-value {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.stat-card.total-pnl.positive {
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.stat-card.total-pnl.negative {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
}

.stat-card.today-pnl.positive {
  background: linear-gradient(135deg, #14b8a6 0%, #0d9488 100%);
}

.stat-card.today-pnl.negative {
  background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%);
}

.stat-card.monthly-pnl.positive {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
}

.stat-card.monthly-pnl.negative {
  background: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
}

.stat-card.accounts {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

.stat-card.dividend {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

.stat-card.deposit {
  background: linear-gradient(135deg, #06b6d4 0%, #0891b2 100%);
}

.stat-card.dividend-average {
  background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
}

.stat-card.dividend-pension {
  background: linear-gradient(135deg, #a78bfa 0%, #8b5cf6 100%);
}

.stat-card.dividend-general {
  background: linear-gradient(135deg, #4ade80 0%, #22c55e 100%);
}

.stat-card.dividend-growth.positive {
  background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
}

.stat-card.dividend-growth.negative {
  background: linear-gradient(135deg, #64748b 0%, #475569 100%);
}

.stat-card-label {
  font-size: 13px;
  opacity: 0.9;
  margin-bottom: 8px;
}

.stat-card-value {
  font-size: 28px;
  font-weight: 700;
}

.stat-card-sub {
  font-size: 12px;
  margin-top: 4px;
  opacity: 0.8;
}

.stat-card-yoy {
  font-size: 11px;
  margin-top: 8px;
  padding: 6px 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.2);
  display: inline-block;
}

.stat-card-yoy.positive .yoy-change {
  color: #bbf7d0;
  font-weight: 600;
  margin-left: 4px;
}

.stat-card-yoy.negative .yoy-change {
  color: #fecaca;
  font-weight: 600;
  margin-left: 4px;
}

.stat-card-detail {
  display: flex;
  gap: 12px;
  font-size: 11px;
  margin-top: 6px;
  opacity: 0.7;
}

.stat-card-detail span {
  white-space: nowrap;
}

.stat-card-ticker {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

/* 섹션 */
.dashboard-section {
  margin-top: 40px;
}

.dashboard-section h2 {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 20px;
  color: #111827;
}

/* 카드 */
.dashboard-card {
  background: white;
  border-radius: 12px;
  padding: 24px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border: 1px solid #e5e7eb;
  margin-bottom: 24px;
}

.dashboard-card h3 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 16px;
  color: #111827;
}

/* 차트 그리드 */
.chart-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  grid-gap: 24px;
  gap: 24px;
  margin-bottom: 24px;
}

/* 테이블 */
.dashboard-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  overflow-x: auto;
}

.dashboard-table thead tr {
  background: #f8fafc;
  text-align: left;
}

.dashboard-table th {
  padding: 10px 8px;
  font-weight: 600;
  color: #111827;
}

.dashboard-table td {
  padding: 10px 8px;
  border-top: 1px solid #e2e8f0;
}

.dashboard-table tbody tr {
  transition: background-color 0.2s;
}

.dashboard-table tbody tr:hover {
  background-color: #f9fafb;
}

/* 계좌 섹션 */
.account-section {
  margin-bottom: 32px;
}

.account-section:last-child {
  margin-bottom: 0;
}

.account-section-title {
  font-size: 18px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid #e5e7eb;
}

/* 계좌 합산 정보 카드 */
.account-summary-card {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  color: white;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.account-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
}

.account-summary-row:not(:last-child) {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.account-summary-label {
  font-size: 14px;
  font-weight: 500;
  opacity: 0.9;
}

.account-summary-value {
  font-size: 16px;
  font-weight: 700;
}

.account-summary-value.pnl-positive {
  color: #86efac;
}

.account-summary-value.pnl-negative {
  color: #fca5a5;
}

/* 계좌 카드 그리드 */
.account-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  grid-gap: 20px;
  gap: 20px;
}

.account-card {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  background: white;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.account-card:hover {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  border-color: #3b82f6;
}

.account-card-title {
  font-weight: 700;
  color: #2563eb;
  text-decoration: none;
  transition: color 0.2s;
}

.account-card-title:hover {
  color: #1d4ed8;
}

.account-card-currency {
  color: #94a3b8;
  font-size: 13px;
}

.account-card-details {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 14px;
}

.account-card-krw {
  color: #94a3b8;
  font-size: 12px;
}

.account-card-holdings {
  font-size: 13px;
  color: #6b7280;
  margin-top: 8px;
}

.account-card-dividend {
  font-size: 13px;
  color: #059669;
  margin-top: 4px;
}

/* 손익 색상 */
.pnl-positive {
  color: #15803d;
  font-weight: 600;
}

.pnl-negative {
  color: #dc2626;
  font-weight: 600;
}

/* 리밸런싱 표시 */
.rebalance-buy {
  color: #2563eb;
  font-weight: 600;
}

.rebalance-sell {
  color: #dc2626;
  font-weight: 600;
}

.rebalance-none {
  color: #10b981;
  font-weight: 600;
}

/* 차이 표시 */
.diff-positive {
  color: #dc2626;
  font-weight: 600;
}

.diff-negative {
  color: #2563eb;
  font-weight: 600;
}

.diff-neutral {
  color: #6b7280;
  font-weight: 400;
}

/* 메타 정보 */
.meta-info {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.meta-text {
  color: #94a3b8;
  font-size: 12px;
}

/* 액션 아이디어 리스트 */
.action-ideas {
  color: #475569;
  line-height: 1.7;
  padding-left: 20px;
}

.action-ideas li {
  margin-bottom: 8px;
}

/* 에러 메시지 */
.error-message {
  color: #ef4444;
}

/* 빈 상태 */
.empty-state {
  color: #6b7280;
  padding: 20px 0;
  text-align: center;
}

/* 링크 버튼 */
.link-button {
  padding: 10px 16px;
  border-radius: 8px;
  background-color: #2563eb;
  color: white;
  text-decoration: none;
  font-weight: 600;
  display: inline-block;
  transition: background-color 0.2s;
}

.link-button:hover {
  background-color: #1d4ed8;
  color: white;
}

/* ========================================
   모바일 탭 네비게이션
   ======================================== */
.mobile-tab-nav {
  display: none;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 90;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  padding: 12px 0;
  margin: 0 -16px 16px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.mobile-tab-nav::-webkit-scrollbar {
  display: none;
}

.mobile-tab-list {
  display: flex;
  gap: 4px;
  padding: 0 16px;
  min-width: max-content;
}

.mobile-tab-btn {
  padding: 10px 16px;
  border: none;
  background: #f3f4f6;
  color: #4b5563;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s;
}

.mobile-tab-btn.active {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

.mobile-tab-btn:not(.active):hover {
  background: #e5e7eb;
}

/* 탭 콘텐츠 - 데스크톱에서는 항상 표시 */
.tab-content {
  display: block;
}

/* 모바일에서만 탭 숨김 적용 */
@media (max-width: 768px) {
  .tab-content.hidden {
    display: none;
  }
}

/* ========================================
   모바일 카드형 테이블
   ======================================== */
.mobile-card-list {
  display: none;
}

.mobile-card-item {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
}

.mobile-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f3f4f6;
}

.mobile-card-title {
  font-weight: 600;
  color: #111827;
  font-size: 15px;
}

.mobile-card-badge {
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
}

.mobile-card-badge.positive {
  background: #dcfce7;
  color: #15803d;
}

.mobile-card-badge.negative {
  background: #fee2e2;
  color: #dc2626;
}

.mobile-card-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 8px;
  gap: 8px;
}

.mobile-card-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mobile-card-row.full-width {
  grid-column: span 2;
}

.mobile-card-label {
  font-size: 11px;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.mobile-card-value {
  font-size: 14px;
  color: #374151;
  font-weight: 500;
}

.mobile-card-value.highlight {
  font-weight: 700;
  color: #111827;
}

/* ========================================
   하단 고정 네비게이션 바
   ======================================== */
.mobile-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: white;
  border-top: 1px solid #e5e7eb;
  padding: 8px 0;
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  z-index: 1000;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}

.mobile-bottom-nav-list {
  display: flex;
  justify-content: space-around;
  align-items: center;
  max-width: 400px;
  margin: 0 auto;
}

.mobile-bottom-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  color: #6b7280;
  text-decoration: none;
  font-size: 11px;
  font-weight: 500;
  border: none;
  background: none;
  cursor: pointer;
  transition: color 0.2s;
}

.mobile-bottom-nav-item:hover,
.mobile-bottom-nav-item.active {
  color: #2563eb;
}

.mobile-bottom-nav-icon {
  font-size: 20px;
}

/* 하단 네비 있을 때 메인 컨텐츠 패딩 */
@media (max-width: 768px) {
  .dashboard {
    padding-bottom: 80px;
  }
}

/* ========================================
   반응형 스타일
   ======================================== */
@media (max-width: 768px) {
  .mobile-tab-nav {
    display: block;
    /* 스크롤 시 배경 완전 불투명 보장 */
    background: #f8fafc !important;
  }

  .mobile-bottom-nav {
    display: block;
  }

  .mobile-card-list {
    display: block;
  }

  .desktop-table {
    display: none;
  }

  .dashboard {
    padding: 12px 16px 80px;
  }

  .dashboard-header h1 {
    font-size: 24px;
  }

  .stat-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .stat-card {
    padding: 14px;
  }

  .stat-card-label {
    font-size: 11px;
  }

  .stat-card-value {
    font-size: 18px;
  }

  .stat-card-sub {
    font-size: 10px;
  }

  .chart-grid {
    grid-template-columns: 1fr;
  }

  .account-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-section {
    margin-top: 24px;
  }

  .dashboard-section h2 {
    font-size: 18px;
    margin-bottom: 12px;
  }

  .dashboard-card {
    padding: 16px;
    margin-bottom: 16px;
  }

  .dashboard-card h3 {
    font-size: 14px;
    margin-bottom: 12px;
  }
}

@media (max-width: 480px) {
  .stat-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .stat-card {
    padding: 12px;
  }

  .stat-card-label {
    font-size: 10px;
  }

  .stat-card-value {
    font-size: 16px;
  }

  .dashboard-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .dashboard-actions {
    width: 100%;
    align-items: stretch;
  }
}

/* ========================================
   접기/펴기 (Collapsible) 스타일
   ======================================== */
.collapsible-section {
  margin-bottom: 16px;
}

.collapsible-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.collapsible-header:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.collapsible-header.expanded {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-color: transparent;
}

.collapsible-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
}

.collapsible-summary {
  font-size: 13px;
  color: #64748b;
  font-weight: 400;
}

.collapsible-icon {
  font-size: 18px;
  color: #94a3b8;
  transition: transform 0.2s;
}

.collapsible-header.expanded .collapsible-icon {
  transform: rotate(180deg);
}

.collapsible-content {
  border: 1px solid #e5e7eb;
  border-top: none;
  border-radius: 0 0 12px 12px;
  padding: 16px;
  background: white;
  animation: slideDown 0.2s ease-out;
}

.collapsible-content.collapsed {
  display: none;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 테이블 래퍼 */
.table-wrapper {
  overflow-x: auto;
  border-radius: 12px;
}

/* 강조 텍스트 */
.text-muted {
  color: #6b7280;
}

.text-small {
  font-size: 13px;
}

.font-bold {
  font-weight: 700;
}

.font-semibold {
  font-weight: 600;
}

/* Flex 유틸리티 */
.flex {
  display: flex;
}

.flex-col {
  flex-direction: column;
}

.gap-4 {
  gap: 4px;
}

.gap-8 {
  gap: 8px;
}

/* 정렬 */
.text-right {
  text-align: right;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

/* Chart Loading Skeleton */
.chart-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  color: #6b7280;
  font-size: 14px;
  background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
  background-size: 200% 100%;
  animation: loading 1.5s ease-in-out infinite;
  border-radius: 8px;
}

@keyframes loading {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

/* Rebalancing Alert Styles */
.rebalancing-alert-container {
  margin-top: 32px;
  margin-bottom: 24px;
}

.rebalancing-alert {
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  transition: all 0.3s ease;
}

.rebalancing-alert.alert-warning {
  border-left: 4px solid #f59e0b;
}

.rebalancing-alert.alert-danger {
  border-left: 4px solid #ef4444;
}

.alert-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  cursor: pointer;
  transition: background-color 0.2s;
}

.alert-header:hover {
  background-color: #f9fafb;
}

.alert-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

.alert-warning .alert-icon {
  background-color: #fef3c7;
  color: #f59e0b;
}

.alert-danger .alert-icon {
  background-color: #fee2e2;
  color: #ef4444;
}

.alert-content {
  flex: 1 1;
}

.alert-title {
  font-size: 18px;
  font-weight: 700;
  color: #111827;
  margin-bottom: 4px;
}

.alert-summary {
  font-size: 14px;
  color: #6b7280;
}

.alert-toggle {
  flex-shrink: 0;
  color: #6b7280;
}

.alert-details {
  padding: 0 20px 20px;
  border-top: 1px solid #e5e7eb;
  animation: slideDown 0.3s ease;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.alert-list {
  display: grid;
  grid-gap: 12px;
  gap: 12px;
  margin-top: 16px;
}

.alert-item {
  background: #f9fafb;
  border-radius: 8px;
  padding: 16px;
  border-left: 3px solid transparent;
}

.alert-item.warning {
  border-left-color: #f59e0b;
}

.alert-item.danger {
  border-left-color: #ef4444;
  background: #fef2f2;
}

.alert-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.asset-name {
  font-size: 16px;
  font-weight: 600;
  color: #111827;
}

.diff-badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 600;
}

.diff-badge.over {
  background-color: #fee2e2;
  color: #dc2626;
}

.diff-badge.under {
  background-color: #dbeafe;
  color: #2563eb;
}

.alert-item-details {
  display: grid;
  grid-gap: 8px;
  gap: 8px;
}

.detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
}

.detail-row .label {
  color: #6b7280;
  font-weight: 500;
}

.detail-row .value {
  color: #111827;
  font-weight: 600;
}

.detail-row .recommendation {
  color: #2563eb;
  font-size: 13px;
}

.alert-actions {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e5e7eb;
  display: flex;
  justify-content: center;
}

.btn-simulate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);
}

.btn-simulate:hover {
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(59, 130, 246, 0.4);
}

.btn-simulate:active {
  transform: translateY(0);
}

/* 반응형 */
@media (max-width: 768px) {
  .alert-header {
    padding: 16px;
  }

  .alert-icon {
    width: 40px;
    height: 40px;
  }

  .alert-title {
    font-size: 16px;
  }

  .alert-summary {
    font-size: 13px;
  }

  .alert-details {
    padding: 0 16px 16px;
  }

  .btn-simulate {
    width: 100%;
    padding: 14px 20px;
  }
}

/* ========================================
   모바일 일관성 개선 스타일
   ======================================== */

/* 모바일 섹션 헤더 통일 */
@media (max-width: 768px) {
  .dashboard-section h2 {
    font-size: 17px;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e2e8f0;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  /* 카드 통일 스타일 */
  .dashboard-card {
    background: white;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    border: 1px solid #f1f5f9;
  }

  .dashboard-card h3 {
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f1f5f9;
  }

  /* 요약 카드 그리드 */
  .stat-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 10px;
    gap: 10px;
    margin-top: 16px;
  }

  .stat-card {
    border-radius: 14px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .stat-card-label {
    font-size: 11px;
    font-weight: 500;
    opacity: 0.9;
    letter-spacing: 0.3px;
  }

  .stat-card-value {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.2;
  }

  .stat-card-sub {
    font-size: 10px;
    opacity: 0.85;
    margin-top: 2px;
  }

  /* 계좌 카드 개선 */
  .account-card {
    border-radius: 14px;
    padding: 14px;
    border: 1px solid #e5e7eb;
    background: white;
    transition: all 0.2s;
  }

  .account-card:active {
    transform: scale(0.98);
    background: #f8fafc;
  }

  .account-card-title {
    font-size: 15px;
    font-weight: 700;
  }

  /* 테이블 반응형 개선 */
  .table-wrapper {
    margin: 0 -16px;
    padding: 0 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .dashboard-table {
    font-size: 13px;
    min-width: 500px;
  }

  .dashboard-table th,
  .dashboard-table td {
    padding: 10px 8px;
    white-space: nowrap;
  }

  .dashboard-table th:first-child,
  .dashboard-table td:first-child {
    position: -webkit-sticky;
    position: sticky;
    left: 0;
    background: white;
    z-index: 1;
  }

  .dashboard-table thead th:first-child {
    background: #f8fafc;
  }

  /* 차트 컨테이너 개선 */
  .chart-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  /* 계좌 합산 카드 개선 */
  .account-summary-card {
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 16px;
  }

  .account-summary-row {
    padding: 10px 0;
  }

  .account-summary-label {
    font-size: 13px;
  }

  .account-summary-value {
    font-size: 15px;
  }

  /* 섹션 간격 통일 */
  .dashboard-section {
    margin-top: 20px;
  }

  .dashboard-section:first-child {
    margin-top: 0;
  }

  /* 버튼 스타일 통일 */
  .link-button {
    width: 100%;
    text-align: center;
    padding: 14px 20px;
    border-radius: 12px;
    font-size: 15px;
  }

  /* 빈 상태 메시지 */
  .empty-state {
    padding: 32px 16px;
    font-size: 14px;
    color: #94a3b8;
    background: #f8fafc;
    border-radius: 12px;
    text-align: center;
  }

  /* 로딩 상태 */
  .chart-loading {
    min-height: 200px;
    border-radius: 12px;
  }

  /* 접기/펴기 섹션 */
  .collapsible-header {
    padding: 14px;
    border-radius: 14px;
  }

  .collapsible-header.expanded {
    border-radius: 14px 14px 0 0;
  }

  .collapsible-title {
    font-size: 14px;
  }

  .collapsible-content {
    padding: 14px;
    border-radius: 0 0 14px 14px;
  }

  /* 계좌 섹션 타이틀 */
  .account-section-title {
    font-size: 15px;
    padding-bottom: 8px;
    margin-bottom: 12px;
  }
}

/* 아주 작은 화면 (480px 이하) */
@media (max-width: 480px) {
  .dashboard {
    padding: 10px 12px 80px;
  }

  .dashboard-header h1 {
    font-size: 22px;
  }

  .stat-card-value {
    font-size: 18px;
  }

  .stat-card {
    padding: 12px;
  }

  .dashboard-card {
    padding: 14px;
    border-radius: 14px;
  }

  .account-summary-card {
    padding: 14px;
  }

  /* 탭 버튼 크기 조정 */
  .mobile-tab-btn {
    padding: 8px 14px;
    font-size: 13px;
  }

  /* 하단 네비게이션 조정 */
  .mobile-bottom-nav-item {
    padding: 6px 12px;
    font-size: 10px;
  }

  .mobile-bottom-nav-icon {
    font-size: 18px;
  }
}

/* 다크모드 지원 준비 */
@media (prefers-color-scheme: dark) {
  /* 추후 다크모드 스타일 추가 */
}

/* 터치 피드백 개선 */
@media (max-width: 768px) {
  .dashboard-card,
  .account-card,
  .stat-card,
  .mobile-tab-btn,
  .mobile-bottom-nav-item,
  .collapsible-header {
    -webkit-tap-highlight-color: transparent;
  }

  .dashboard-card:active,
  .collapsible-header:active {
    opacity: 0.95;
  }
}

/* 스크롤바 스타일링 */
@media (max-width: 768px) {
  .table-wrapper::-webkit-scrollbar {
    height: 4px;
  }

  .table-wrapper::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 2px;
  }

  .table-wrapper::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 2px;
  }
}

