/* 매크로 대시보드 — 코린이 라이트/다크. 스코프 .cp-oc-dashboard */
.cp-oc-dashboard{ --oc-card:#ffffff; --oc-bg:#f4f5f7; --oc-line:#e5e8eb; --oc-ink:#1f2933; --oc-sub:#6b7684; --oc-muted:#8b95a1; --oc-brand:#2f6fed; --oc-green:#0ea36b; --oc-red:#e0304e; --oc-warn:#e0932f; --oc-hover:rgba(47,111,237,.06); font-size:14px; color:var(--oc-ink); margin:0 0 24px; }
html.dark .cp-oc-dashboard{ --oc-card:#161b22; --oc-bg:#0d1117; --oc-line:#21262d; --oc-ink:#d8e1eb; --oc-sub:#8b949e; --oc-muted:#6b7684; --oc-brand:#4d8bff; --oc-green:#25c281; --oc-red:#f6465d; --oc-warn:#e0a94a; --oc-hover:rgba(77,139,255,.10); }

.cp-oc-dashboard .pos{ color:var(--oc-green); }
.cp-oc-dashboard .neg{ color:var(--oc-red); }

/* 헤더 */
.cp-oc-dashboard .cp-oc-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:4px 0 14px; }
.cp-oc-dashboard .md-title{ font-size:20px; font-weight:800; letter-spacing:-.02em; margin:0; }
.cp-oc-dashboard .md-title small{ font-size:13px; font-weight:600; color:var(--oc-sub); margin-left:8px; }
.cp-oc-dashboard .md-meta{ display:flex; align-items:center; gap:10px; }
.cp-oc-dashboard .md-updated{ font-size:12px; color:var(--oc-muted); }
.cp-oc-dashboard .cp-oc-refresh{ border:1px solid var(--oc-line); background:var(--oc-card); color:var(--oc-sub); border-radius:8px; padding:5px 11px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; }
.cp-oc-dashboard .cp-oc-refresh:hover{ color:var(--oc-brand); border-color:var(--oc-brand); }

/* 퀵 스트립 */
.cp-oc-dashboard .md-quick{ display:grid; grid-template-columns:minmax(180px,1fr) 2fr; gap:12px; margin:0 0 14px; }
.cp-oc-dashboard .qs-card{ border:1px solid var(--oc-line); border-radius:12px; background:var(--oc-card); padding:12px 14px; min-width:0; }
.cp-oc-dashboard .qs-label{ font-size:11.5px; font-weight:700; color:var(--oc-sub); display:flex; align-items:center; }
.cp-oc-dashboard .qs-val{ font-size:22px; font-weight:800; margin:4px 0 2px; font-variant-numeric:tabular-nums; }
.cp-oc-dashboard .qs-sub{ font-size:11px; color:var(--oc-muted); }
.cp-oc-dashboard .qs-dot{ margin-left:6px; font-size:9px; font-weight:800; letter-spacing:.04em; color:#fff; background:var(--oc-muted); border-radius:4px; padding:1px 5px; }
.cp-oc-dashboard .qs-dot.on{ background:var(--oc-red); }
.cp-oc-dashboard .qs-live{ display:flex; flex-direction:column; }
.cp-oc-dashboard .qs-feed{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; align-content:flex-start; }
.cp-oc-dashboard .qs-wait{ color:var(--oc-muted); font-size:11.5px; }
.cp-oc-dashboard .qs-item{ font-size:11.5px; font-weight:700; padding:3px 8px; border-radius:6px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cp-oc-dashboard .qs-item.buy{ color:var(--oc-green); background:rgba(14,163,107,.10); }
.cp-oc-dashboard .qs-item.sell{ color:var(--oc-red); background:rgba(224,48,78,.10); }
.cp-oc-dashboard .qs-ago{ opacity:.65; font-weight:500; }

/* 지표 그리드 */
.cp-oc-dashboard .md-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:0 0 16px; }
.cp-oc-dashboard .md-card{ border:1px solid var(--oc-line); border-radius:12px; background:var(--oc-card); padding:12px 14px; }
.cp-oc-dashboard .md-card-label{ font-size:11.5px; font-weight:700; color:var(--oc-sub); }
.cp-oc-dashboard .md-card-val{ font-size:19px; font-weight:800; margin:5px 0 3px; font-variant-numeric:tabular-nums; }
.cp-oc-dashboard .md-card-val.pos{ color:var(--oc-green); }
.cp-oc-dashboard .md-card-val.neg{ color:var(--oc-red); }
.cp-oc-dashboard .md-card-sub{ font-size:11px; color:var(--oc-muted); }
.cp-oc-dashboard .md-card-sub.pos{ color:var(--oc-green); }
.cp-oc-dashboard .md-card-sub.neg{ color:var(--oc-red); }

/* 섹션 제목 */
.cp-oc-dashboard .md-sect{ font-size:13px; font-weight:800; margin:14px 0 8px; }
.cp-oc-dashboard .md-sect small{ font-size:11px; font-weight:500; color:var(--oc-muted); margin-left:4px; }

/* 공포탐욕 차트 */
.cp-oc-dashboard .md-chart-wrap{ border:1px solid var(--oc-line); border-radius:12px; background:var(--oc-card); padding:12px 14px 14px; }
.cp-oc-dashboard .md-chart-wrap .md-sect{ margin:0 0 8px; }
.cp-oc-dashboard .md-chart{ position:relative; height:150px; }
.cp-oc-dashboard .md-chart canvas{ width:100%; height:150px; display:block; }
.cp-oc-dashboard .md-tip{ display:none; position:absolute; top:6px; pointer-events:none; background:var(--oc-ink); color:var(--oc-card); font-size:11px; padding:5px 9px; border-radius:7px; white-space:nowrap; z-index:5; }

/* 펀딩비 표 */
.cp-oc-dashboard .md-table-wrap{ overflow-x:auto; border:1px solid var(--oc-line); border-radius:12px; background:var(--oc-card); }
.cp-oc-dashboard .md-fund{ width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.cp-oc-dashboard .md-fund th{ text-align:left; font-size:11.5px; font-weight:700; color:var(--oc-sub); padding:10px 14px; border-bottom:1px solid var(--oc-line); }
.cp-oc-dashboard .md-fund td{ padding:10px 14px; border-bottom:1px solid var(--oc-line); }
.cp-oc-dashboard .md-fund tr:last-child td{ border-bottom:0; }
.cp-oc-dashboard .md-load{ text-align:center; color:var(--oc-muted); }

@media (max-width:640px){
  .cp-oc-dashboard .md-title{ font-size:18px; }
  .cp-oc-dashboard .md-quick{ grid-template-columns:1fr; }
  .cp-oc-dashboard .md-grid{ grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); }
}
