/* ===== Flat Minimal theme (no shadows, no glass, no gradients) ===== */ /* 페이지 기본톤 */ :root{ --bg: #f6f7fb; --card-bg: #ffffff; --text: #0f172a; --muted: #64748b; --grid: #e5e7eb; --radius: 12px; } /* 전체 페이지 */ html, body{ background: var(--bg) !important; color: var(--text); font-family: Inter, Pretendard, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans KR", Arial, sans-serif; margin: 0; padding: 0; } /* 헤더/컨트롤/카드: 그림자·블러 제거, 플랫 보더만 */ .header, .control-card, .chart-card, .datacard{ background: var(--card-bg) !important; border: 1px solid #eaecef !important; border-radius: var(--radius) !important; box-shadow: none !important; backdrop-filter: none !important; } /* Plotly 그래프 컨테이너: 플랫 카드 */ .js-plotly-plot{ background: var(--card-bg) !important; border: 1px solid #eaecef !important; border-radius: var(--radius) !important; box-shadow: none !important; padding: 8px !important; } /* Sankey 높이 락(필요 시 유지) */ #fig-sankey .js-plotly-plot, #fig-sankey .plot-container, #fig-sankey .main-svg{ height: 420px !important; } /* Dash DataTable */ .dash-table-container{ background: var(--card-bg) !important; border: 1px solid #eaecef !important; border-radius: var(--radius) !important; box-shadow: none !important; padding: 8px 10px !important; } .dash-table-container .dash-spreadsheet-container{ border: none !important; } /* Tabs (워터폴/PPC) */ .tab, .tab--selected{ background: var(--card-bg) !important; border: 1px solid #eaecef !important; border-radius: 10px !important; box-shadow: none !important; margin-right: 8px; } /* 선택/드롭다운 등(사용 중이면) */ .continent-select .mantine-Select-input, .country-select .mantine-Select-input{ background: #fff !important; border: 1px solid #eaecef !important; color: var(--text) !important; } .mantine-Select-dropdown{ background: #fff !important; border: 1px solid #eaecef !important; } /* 반응형 여백 */ @media (max-width: 768px){ .control-card, .chart-card{ margin: 10px 0 !important; } } /* ---- Clean Tabs (워터폴/PPC) : 보더/외곽선 제거 + 밑줄형 선택 표시 ---- */ #tab-right{ /* dcc.Tabs(id="tab-right") */ border: none !important; background: transparent !important; box-shadow: none !important; } /* 개별 탭 버튼: 보더/배경 제거, 텍스트만 */ #tab-right .tab{ background: transparent !important; border: none !important; box-shadow: none !important; border-radius: 0 !important; color: #0f172a !important; padding: 10px 14px !important; margin-right: 8px !important; border-bottom: 2px solid transparent !important; /* 기본은 밑줄 없음 */ } /* 선택된 탭: 진한 밑줄만 */ #tab-right .tab--selected{ background: transparent !important; border: none !important; box-shadow: none !important; border-bottom: 2px solid #0f172a !important; font-weight: 600 !important; } /* 포커스 외곽선(회색 링) 제거 – 접근성은 focus-visible로 대체 */ #tab-right .tab:focus{ outline: none !important; box-shadow: none !important; } #tab-right .tab:focus-visible{ outline: 2px solid #2563eb !important; outline-offset: 2px; } /* 탭 컨텐츠 박스 보더 제거 */ #tab-right .tab-content{ border: none !important; background: transparent !important; box-shadow: none !important; } /* Plotly 컨테이너 외곽선/그림자 제거 */ .js-plotly-plot{ border: none !important; box-shadow: none !important; padding: 8px !important; /* 내부 여백만 유지 */ } /* 카드 컨테이너(혹시 클래스로 쓰면) */ .chart-card, .control-card, .datacard{ border: none !important; box-shadow: none !important; }