/* 모듈 2: 대시보드, 차트, 거래표 */
.dashboard{min-height:100vh;padding:28px 0 58px}
.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0 20px}
.header-title{display:flex;align-items:center;gap:14px}
.header-title h1{margin:0;font-size:22px;letter-spacing:-.02em}
.header-title p{margin:3px 0 0;color:var(--muted);font-size:13px}
.logout-action{height:42px;padding:0 18px;border:1px solid #365068;border-radius:10px;color:#d6e2e7;background:#0c2033;font-weight:700}
.logout-action:hover{border-color:#658096}
.market-chart{height:clamp(360px,52vw,620px);margin-bottom:26px;overflow:hidden;border:1px solid rgba(145,166,182,.17);border-radius:18px;background:#0c1c2e}
.tradingview-widget-container,.tradingview-widget-container__widget{width:100%;height:100%}
.dashboard-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:26px 0}
.dashboard-heading h2{margin:0;font-size:clamp(30px,5vw,48px);letter-spacing:-.04em}
.snapshot-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(40,197,179,.25);border-radius:999px;color:var(--accent-2);background:rgba(40,197,179,.07);font-size:12px;font-weight:800}
.snapshot-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}
.app-status{min-height:24px;margin:0 0 18px;color:var(--muted);font-size:14px}
.app-status.error{color:#ffadb4}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}
.summary-card{padding:22px;border:1px solid rgba(145,166,182,.17);border-radius:16px;background:linear-gradient(150deg,rgba(16,37,58,.96),rgba(10,29,47,.96));box-shadow:0 10px 35px rgba(0,0,0,.13)}
.summary-label{display:block;margin-bottom:12px;color:var(--muted);font-size:13px;font-weight:700}
.summary-value{font-variant-numeric:tabular-nums;font-size:clamp(24px,3vw,34px);font-weight:650;letter-spacing:-.03em}
.summary-value.positive,.profit-positive{color:var(--positive)!important}
.summary-value.negative,.profit-negative{color:var(--danger)!important}
.data-section{overflow:hidden;border:1px solid rgba(145,166,182,.17);border-radius:18px;background:rgba(12,28,46,.77);box-shadow:0 15px 45px rgba(0,0,0,.14)}
.section-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid rgba(145,166,182,.14)}
.section-header h3{margin:0;font-size:18px}
.section-header span{color:var(--muted);font-size:12px}
.table-wrap{overflow-x:auto}
.data-table{width:100%;min-width:860px;border-collapse:collapse}
.data-table th,.data-table td{height:54px;padding:0 18px;border-bottom:1px solid rgba(145,166,182,.1);white-space:nowrap}
.data-table th{color:#839bab;background:rgba(5,19,32,.45);font-size:11px;letter-spacing:.08em;text-align:left;text-transform:uppercase}
.data-table td{color:#d6e3e8;font-size:14px}
.data-table th.numeric,.data-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}
.data-table tbody tr:last-child td{border-bottom:0}
.side{display:inline-flex;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:800}
.side.buy{color:#77e2b3;background:rgba(86,214,160,.1)}
.side.sell{color:#ff9ca4;background:rgba(255,124,134,.1)}
.empty-state{height:130px!important;color:var(--muted)!important;text-align:center!important}
