/* Small product-specific fit layer over the Tabler component system. */
:root {
  --tblr-primary: #596be8;
  --tblr-primary-rgb: 89, 107, 232;
  --tblr-body-bg: #f5f7fb;
  --tblr-body-color: #1b2438;
  --tblr-border-color: #e5e9f0;
  --tblr-border-radius: .8rem;
  --ink: #1b2438;
  --muted: #68758b;
  --line: #e5e9f0;
  color: var(--ink);
  font-family: "Pretendard Variable", Pretendard, "Noto Sans KR", "Malgun Gothic", sans-serif;
  font-size: 15px;
  line-height: 1.58;
  letter-spacing: 0;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}
html, body, #app { background: var(--tblr-body-bg); color: var(--tblr-body-color); }
body, button, input, select, textarea { font-family: inherit; letter-spacing: 0; }
h1, h2, h3, p { letter-spacing: 0; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible { outline: 3px solid #7180f2; outline-offset: 3px; }

.app-header.navbar { background: rgba(255,255,255,.96); border-bottom-color: var(--tblr-border-color); box-shadow: 0 3px 14px rgba(25,39,74,.035); }
.app-header.navbar { min-width: 0; margin: 0; border-radius: 0; flex-wrap: nowrap; justify-content: flex-start; }
.app-header .navbar-brand { margin: 0; padding: 0; }
.header-tools { min-width: 0; flex: 0 0 auto; }
.brand > span { border-radius: 10px; background: linear-gradient(145deg,#7584f5,#4b5fdf); box-shadow: 0 4px 12px rgba(71,88,211,.22); }
.brand strong { color: #192239; font-size: 19px; font-weight: 750; letter-spacing: -.035em; }
.brand-caption { color: #78849a; border-color: #e8ebf1; font-size: 12px; }
.workspace { background: var(--tblr-body-bg); }
.content-pane { background: var(--tblr-body-bg); }
.map-pane { background: #edf0f5; border-left-color: #e1e6ee; }
.map-label, .map-legend { border-color: #e2e7ef; border-radius: 10px; box-shadow: 0 6px 22px rgba(25,39,74,.12); }
.map-label { padding: 10px 13px; font-size: 13px; font-weight: 650; }
.map-controls button { border-radius: 9px; color: #495873; }
.map-controls button:hover { color: var(--tblr-primary); background: #f2f4ff; }
.panel-divider { background: #eef1f6; border-color: #e3e8f0; }
.panel-divider > span { border-color: #dfe4ed; border-radius: 8px; box-shadow: 0 3px 9px rgba(25,39,74,.09); }

.start-content { max-width: 850px; padding-top: 30px; }
.start-content > .eyebrow, .project-context .eyebrow { color: #5c6fe5; font-size: 11px; font-weight: 750; letter-spacing: .09em; }
.start-content > h1 { color: #182239; font-size: clamp(29px,2.5vw,37px); font-weight: 740; letter-spacing: -.04em; line-height: 1.35; }
.intro { max-width: 36em; color: #69758b; font-size: 15px; }
.intake-block.card { margin-top: 16px; padding: 16px; border-color: var(--tblr-border-color); border-radius: 13px; background: #fff; box-shadow: 0 2px 5px rgba(25,39,74,.025); }
.section-title { border: 0; padding: 0; }
.section-title > span { border-radius: 7px; color: #5265dc; background: #eff1ff; font-weight: 750; }
.section-title h2 { color: #27324a; font-size: 15px; font-weight: 700; }
.choice, .group-card { border-color: #e2e7ef; border-radius: 9px; color: #435069; }
.choice.selected { border-color: #7887f0; color: #4659d2; background: #f1f2ff; box-shadow: inset 0 0 0 1px #7887f0; }
.group-icon { border-radius: 8px; color: #596ce4; background: #f0f1ff; }
.start-action { background: rgba(255,255,255,.95); border-color: #e5e9f0; box-shadow: 0 -6px 20px rgba(25,39,74,.04); backdrop-filter: blur(12px); }
.primary.btn.btn-primary { --tblr-btn-bg: #596be8; --tblr-btn-border-color: #596be8; --tblr-btn-hover-bg: #495ddf; --tblr-btn-hover-border-color: #495ddf; border-radius: 9px; font-weight: 650; }
.secondary.btn.btn-outline-secondary { border-color: #dfe4ed; border-radius: 9px; color: #54627a; background: #fff; }

.project-context { padding: 21px 26px 14px; background: linear-gradient(110deg,#fff 30%,#f7f8ff); border-bottom: 1px solid #ebedf3; }
.project-context h1 { color: #182239; font-size: 23px; font-weight: 740; letter-spacing: -.035em; }
.project-context h1 span { color: #728097; font-weight: 500; }
.context-toolbar { color: #727e93; font-size: 12px; }
.work-nav { border-bottom-color: #e7eaf1; }
.work-nav button.active { color: #4c60df; border-bottom-color: #5d70ee; }
.report-tabs button[aria-selected="true"] { color: #465bda; background: #eff1ff; }
.report-body, .operations-host { padding-top: 21px; }

.intel-hero.card { padding: 21px 22px 18px; border: 1px solid #e1e6fb; border-left: 4px solid #6073ec; border-radius: 14px; background: linear-gradient(112deg,#fff,#f7f8ff); box-shadow: 0 3px 10px rgba(31,45,93,.045); }
.intel-hero.card[data-tone="high"] { border-color: #f1dfe3; border-left-color: #d16375; background: linear-gradient(112deg,#fff,#fff7f8); }
.intel-hero.card[data-tone="moderate"] { border-color: #f1e8d8; border-left-color: #cf8b42; background: linear-gradient(112deg,#fff,#fffaf3); }
.intel-hero.card[data-tone="low"] { border-color: #d9ede6; border-left-color: #168e79; background: linear-gradient(112deg,#fff,#f4fbf8); }
.intel-headline { color: #202a43; font-size: clamp(21px,2vw,27px); font-weight: 740; letter-spacing: -.03em; line-height: 1.42; }
.intel-summary { color: #64728a; font-size: 14px; line-height: 1.7; }
.intel-verdict { border-radius: 999px; color: #4d5fd7; background: #edf0ff; font-size: 11px; font-weight: 700; }
.intel-evidence-strip { border-color: #e5e8f0; }
.intel-fact small { color: #78849a; }
.intel-fact strong { color: #202b45; font-size: 20px; font-variant-numeric: tabular-nums; }
.benchmark-panel.card, .intel-card.card, .chart-card.card { border-color: #e4e8ef; border-radius: 13px; background: #fff; box-shadow: 0 2px 7px rgba(25,39,74,.03); }
.intel-card.card { padding: 15px; }
.benchmark-panel.card { overflow: hidden; }
.benchmark-panel > .intel-section-title { padding: 15px 16px 11px; }
.intel-section-title h2, .section-heading h2 { color: #263149; font-size: 15px; font-weight: 720; }
.competition-signal.card { padding: 12px; border-color: #e7eaf1; border-top-color: #9aa6bd; border-radius: 9px; background: #fafbfe; box-shadow: none; }
.competition-signal[data-tone="high"] { border-top-color: #d16375; }
.competition-signal[data-tone="low"] { border-top-color: #168e79; }
.intel-actions { margin-top: 22px; }
.intel-action-list { border-top: 1px solid #e4e8ef; }
.intel-action-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px 16px; align-items: center; padding: 14px 2px; border-bottom: 1px solid #e8ebf1; }
.intel-action-heading { grid-column: 1; display: flex; align-items: baseline; gap: 9px; min-width: 0; }
.intel-action-heading h3 { overflow: hidden; color: #273149; font-size: 14px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.intel-action-kind { flex: 0 0 auto; color: #65738c; font-size: 10px; font-weight: 700; }
.intel-action-evidence, .intel-action-next { grid-column: 1; display: flex; align-items: baseline; gap: 9px; min-width: 0; }
.intel-action-evidence small, .intel-action-next small { flex: 0 0 30px; color: #8792a4; font-size: 10px; font-weight: 650; }
.intel-action-evidence strong { overflow: hidden; color: #46546d; font-size: 12px; font-weight: 560; text-overflow: ellipsis; white-space: nowrap; }
.intel-action-next p { color: #65728a; font-size: 12px; line-height: 1.5; }
.intel-action-row > .btn { grid-column: 2; grid-row: 1 / 4; min-width: 102px; white-space: nowrap; }
.intel-mix-options { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 5px; }
.intel-mix-option { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; padding: 5px 9px; border: 1px solid #e5e9f0; border-radius: 8px; color: #58667d; background: #fff; font-size: 12px; }
.intel-mix-option:hover, .intel-mix-option:focus-visible { border-color: #c8cff6; color: #4659d0; background: #f7f8ff; }
.intel-mix-option i { width: 7px; height: 7px; border-radius: 50%; background: var(--mix-color); }
.intel-mix-option strong { color: #26334c; font-size: 12px; font-variant-numeric: tabular-nums; }
.intel-mix-option small { margin-left: 2px; color: #758197; font-size: 10px; }
.echart-canvas { display: block; width: 100%; min-height: 250px; }
.echart-mix { height: 235px; min-height: 200px; }
.echart-distance { height: 220px; min-height: 190px; }
.chart-card.card { padding: 18px; }
.population-totals { border-bottom: 1px solid #eceff4; }
.intel-source-line, .meta { color: #7b879a; font-size: 11px; }
.intel-price-next { background: #f8f9ff !important; border-top: 2px solid #6477ec !important; }
.intel-price-next > strong { color: #263450; font-variant-numeric: tabular-nums; }
.intel-price-next > p { color: #68768d; font-size: 13px; }
.source-detail summary { color: #596982; }

.fade-in { animation: none; }
@media (max-width: 700px) {
  .intake-block.card { padding: 13px; }
  .intel-card.card { padding: 13px; }
  .intel-hero.card { padding: 17px 15px; }
  .chart-card.card { padding: 14px; }
  .echart-mix { height: 220px; }
  .intel-action-row { grid-template-columns: minmax(0,1fr); gap: 7px; }
  .intel-action-row > .btn { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
