:root {
      --bg: #f6f7fb;
      --panel: #ffffff;
      --panel-2: #f9fafc;
      --text: #18202f;
      --muted: #667085;
      --line: #e5e7ef;
      --good: #1f9d55;
      --mid: #e09f22;
      --bad: #d64545;
      --blue: #2f80ed;
      --purple: #7b61ff;
      --shadow: 0 12px 34px rgba(16, 24, 40, 0.08);
      --radius: 22px;
    }

    * { box-sizing: border-box; }
    body {
      margin: 0;
      background: radial-gradient(circle at top left, #edf4ff 0, transparent 34%), var(--bg);
      color: var(--text);
      font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", sans-serif;
      line-height: 1.45;
    }

    .wrap { width: min(1180px, calc(100% - 28px)); margin: 0 auto; padding: 24px 0 54px; }
    header { display: flex; gap: 14px; justify-content: space-between; align-items: flex-start; margin-bottom: 18px; }
    h1 { font-size: clamp(25px, 5.6vw, 38px); margin: 0 0 8px; letter-spacing: -0.04em; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .version-pill { display:inline-flex; align-items:center; border-radius:999px; padding:5px 10px; background:rgba(47,128,237,.10); color:var(--blue); font-size:12px; font-weight:900; letter-spacing:0; }
    .title-calorie { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:6px 10px; background:#fff; color:var(--text); border:1px solid var(--line); font-size:12px; font-weight:900; letter-spacing:0; box-shadow:0 8px 18px rgba(16,24,40,.05); cursor:pointer; }
    .title-calorie b { color:var(--blue); font-weight:900; }
    .sub { margin: 0; color: var(--muted); font-size: 14px; }
    .top-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
    button, .button-like { border: 0; border-radius: 999px; padding: 10px 14px; background: var(--text); color: #fff; font-weight: 800; cursor: pointer; box-shadow: 0 8px 18px rgba(24, 32, 47, 0.12); font-family: inherit; }
    button.secondary { background: #fff; color: var(--text); border: 1px solid var(--line); box-shadow: none; }
    button.tab { background:#fff; color:var(--muted); border:1px solid var(--line); box-shadow:none; padding:7px 11px; font-size:12px; }
    button.tab.active { color:#fff; background:var(--text); border-color:var(--text); }

    .status { margin: 12px 0 18px; padding: 12px 14px; border: 1px solid var(--line); background: rgba(255,255,255,0.72); border-radius: 16px; color: var(--muted); font-size: 13px; }
    .grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
    .card { background: var(--panel); border: 1px solid rgba(229, 231, 239, 0.92); border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px; min-width: 0; }
    .clickable { cursor: pointer; transition: transform 160ms ease, border-color 160ms ease; position: relative; }
    .clickable:hover { transform: translateY(-1px); border-color: rgba(47,128,237,.42); }
    .clickable:focus { outline: 3px solid rgba(47,128,237,.20); }

    .score-card { min-height: 276px; display: flex; flex-direction: column; gap: 12px; }
    .label { display: flex; justify-content: space-between; gap: 8px; align-items: center; color: var(--muted); font-size: 13px; font-weight: 900; }
    .score-row { display: flex; align-items: baseline; gap: 7px; margin-top: 2px; }
    .score { font-size: 46px; line-height: 1; letter-spacing: -0.05em; font-weight: 900; }
    .unit { color: var(--muted); font-size: 12.5px; font-weight: 800; }
    .bar { width: 100%; height: 10px; border-radius: 999px; background: #edf0f5; overflow: hidden; }
    .bar > span { display: block; height: 100%; width: 0%; border-radius: inherit; transition: width 350ms ease; }
    .bar.energy > span { background: linear-gradient(90deg, #d64545, #e09f22, #1f9d55); }
    .bar.recovery > span { background: linear-gradient(90deg, #d64545, #e09f22, #2f80ed); }
    .bar.stress > span { background: linear-gradient(90deg, #1f9d55, #e09f22, #d64545); }
    .bar.load > span { background: linear-gradient(90deg, #d64545, #e09f22, #1f9d55); }
    .desc { color: var(--text); font-size: 14px; margin: 0; }
    .driver { margin: 0; color: var(--muted); font-size: 12.5px; }
    .driver b { color: var(--text); }
    .tag { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 900; background: #f2f4f7; color: var(--muted); white-space: nowrap; }
    .tag.good { background: rgba(31, 157, 85, 0.10); color: var(--good); }
    .tag.mid { background: rgba(224, 159, 34, 0.12); color: #a66f00; }
    .tag.bad { background: rgba(214, 69, 69, 0.10); color: var(--bad); }
    .tag.blue { background: rgba(47, 128, 237, 0.10); color: var(--blue); }
    .mini-chart-wrap { margin-top: auto; padding-top: 7px; border-top: 1px solid var(--line); }
    .chart-title { display:flex; justify-content:space-between; gap:8px; align-items:center; color: var(--muted); font-size: 11.5px; font-weight: 900; margin-bottom: 7px; }
    canvas { display: block; width: 100%; }
    .mini-chart { height: 76px; }
    .modal-chart { height: 220px; }

    .section { margin-top: 14px; display: grid; grid-template-columns: 1.08fr .92fr; gap: 14px; }
    h2 { font-size: 18px; letter-spacing: -0.03em; margin: 0 0 12px; }
    .summary-text { font-size: 17px; margin: 0 0 14px; letter-spacing: -0.02em; }
    .explain-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
    .explain-list li { padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel-2); }
    .explain-list b { display: block; margin-bottom: 4px; letter-spacing: -0.02em; }
    .explain-list span { color: var(--muted); font-size: 13px; }
    .ai-report { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:10px; margin-top:14px; }
    .ai-box { padding:12px; border-radius:16px; border:1px solid var(--line); background: #fbfcff; }
    .ai-box b { display:block; margin-bottom:5px; font-size:13px; }
    .ai-box p { margin:0; color:var(--muted); font-size:12.5px; }
    @media (max-width: 960px) { .ai-report { grid-template-columns: repeat(2, minmax(0,1fr)); } }
    @media (max-width: 420px) { .ai-report { grid-template-columns: 1fr; } }
    .confidence-box { margin-top:12px; padding:12px; border-radius:16px; border:1px solid var(--line); background:#fff; font-size:13px; color:var(--muted); display:flex; gap:8px; align-items:flex-start; flex-wrap:wrap; }

    .metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .metric { padding: 13px; border-radius: 16px; background: var(--panel-2); border: 1px solid var(--line); min-height: 86px; }
    .metric .name { color: var(--muted); font-size: 12px; font-weight: 900; }
    .metric .value { margin-top: 4px; font-size: 20px; font-weight: 900; letter-spacing: -0.03em; }
    .metric .micro { margin-top: 2px; color: var(--muted); font-size: 11.5px; font-weight: 700; }
    .metric .pill-row { margin-top: 6px; display:flex; gap:4px; flex-wrap:wrap; }
    .mini-pill { font-size:10.5px; font-weight:900; border-radius:999px; padding:3px 6px; background:#eef2ff; color:#445; }

    .table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; }
    table { width: 100%; border-collapse: collapse; min-width: 1080px; background: #fff; }
    th, td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: right; font-size: 13px; white-space: nowrap; }
    th:first-child, td:first-child { text-align: left; }
    th { color: var(--muted); background: #fafbff; font-weight: 900; }
    tr:last-child td { border-bottom: 0; }
    .wide { grid-column: 1 / -1; }
    .note-box { margin-top: 14px; padding: 14px; background: #fff8e8; border: 1px solid #f0dca9; color: #6e5200; border-radius: 16px; font-size: 13px; }
    .footer { margin-top: 20px; color: var(--muted); font-size: 12px; text-align: center; }

    .modal { position: fixed; inset: 0; z-index: 50; display: none; }
    .modal.open { display: block; }
    .modal-backdrop { position: absolute; inset: 0; background: rgba(17, 24, 39, .44); backdrop-filter: blur(4px); }
    .modal-panel { position: relative; width: min(940px, calc(100% - 24px)); max-height: min(88vh, 940px); overflow: auto; margin: 6vh auto 0; background: #fff; border-radius: 24px; box-shadow: 0 24px 70px rgba(16,24,40,.26); padding: 20px; }
    .modal-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: 14px; }
    .modal-title { margin:0 0 4px; font-size:22px; }
    .modal-sub { margin:0; color:var(--muted); font-size:13px; }
    .modal-close { width:38px; height:38px; display:flex; align-items:center; justify-content:center; padding:0; font-size:24px; background:#f2f4f7; color:var(--text); box-shadow:none; }

/* v0.7.9 상세조회 하단 닫기 버튼 */
.modal-bottom-actions {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: center;
}
.modal-bottom-close {
  min-width: 140px;
  padding: 11px 18px;
  font-size: 14px;
}
    .modal-current { display:grid; grid-template-columns: .34fr .66fr; gap:12px; margin-bottom:12px; }
    .modal-number, .modal-insight, .modal-chart-card, .modal-box { background:#f9fafc; border:1px solid var(--line); border-radius:18px; padding:14px; }
    .modal-number .big { font-size:42px; font-weight:900; letter-spacing:-.05em; }
    .modal-number .small { color:var(--muted); font-size:12px; font-weight:800; }
    .modal-insight b { display:block; margin-bottom:6px; }
    .modal-insight p { margin:0; color:var(--muted); font-size:13px; }
    .modal-tabs { display:flex; gap:6px; margin: 8px 0 10px; }
    .modal-grid { display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin-top:12px; }
    .factor-list, .suggest-list { margin:0; padding-left: 20px; color:var(--muted); font-size:13px; }
    .factor-list li, .suggest-list li { margin: 8px 0; }
    .factor-list strong { color:var(--text); }
.modal-extra-detail { margin-top:12px; border:1px solid var(--line); border-radius:18px; background:#fbfcff; overflow:hidden; }
.modal-extra-detail > summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 14px; font-size:13px; font-weight:900; color:var(--text); }
.modal-extra-detail > summary::-webkit-details-marker { display:none; }
.modal-extra-detail > summary::after { content:'+'; color:var(--muted); font-weight:900; }
.modal-extra-detail[open] > summary::after { content:'−'; }
.modal-extra-detail .modal-direction-box, .modal-extra-detail .modal-baseline-card { margin:0 12px 12px; }
.compact-direction-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }

    @media (max-width: 980px) { .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .section { grid-template-columns: 1fr; } .today-insight-card, .basis-flow-card, .data-card { grid-column:auto; grid-row:auto; } .ai-report { grid-template-columns:1fr; } }
    @media (max-width: 560px) {
      .wrap { width: min(100% - 20px, 1120px); padding-top: 18px; }
      header { display: block; }
      .top-actions { justify-content: flex-start; margin-top: 12px; }
      .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap:10px; }
      .score-card { min-height: unset; padding:13px; border-radius:18px; gap:9px; }
      .score { font-size: 36px; }
      .label { font-size:12px; align-items:flex-start; }
      .tag { font-size:10.5px; padding:4px 7px; }
      .desc, .driver { font-size:11.8px; }
      .mini-chart { height:58px; }
      .metrics { grid-template-columns: 1fr 1fr; gap:8px; }
      .metric { min-height:80px; padding:11px; }
      .metric .value { font-size:18px; }
      .card { padding: 15px; border-radius: 18px; }
      .modal-panel { width: calc(100% - 16px); margin-top: 4vh; padding: 15px; border-radius:20px; }
      .modal-current, .modal-grid { grid-template-columns:1fr; }
      .modal-chart { height: 190px; }
      table { min-width: 900px; }
    }
    @media (max-width: 340px) { .grid, .metrics { grid-template-columns: 1fr; } }

.missing-impact { margin-top: 8px; }

/* v0.7.0 개인 기준선 패널 */
/* v0.7.1에서 접기/펼치기와 모달 기준선 비교를 추가함 */
.baseline-box { margin-top:12px; padding:12px; border-radius:16px; border:1px solid var(--line); background:#fbfcff; }
.baseline-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; margin-bottom:10px; }
.baseline-head b { display:block; font-size:13px; letter-spacing:-.02em; }
.baseline-head span { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.baseline-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:8px; }
.baseline-item { border:1px solid var(--line); background:#fff; border-radius:14px; padding:10px; box-shadow:0 6px 14px rgba(16,24,40,.04); }
.baseline-name { display:flex; justify-content:space-between; align-items:center; gap:6px; color:var(--muted); font-size:12px; font-weight:900; }
.baseline-values { display:flex; gap:7px; align-items:baseline; flex-wrap:wrap; margin-top:6px; }
.baseline-values b { font-size:17px; color:var(--text); letter-spacing:-.03em; }
.baseline-values span { font-size:11.5px; color:var(--muted); font-weight:800; }
.baseline-summary { margin:10px 0 0; color:var(--muted); font-size:12.5px; }
@media (max-width:560px){ .baseline-grid{ grid-template-columns:1fr; } }

/* v0.7.1 UI 안정화: 기준선 접기/펼치기, 최근기록 간단/상세, 모달 기준선 비교 */
.section-headline { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:12px; }
.section-headline h2 { margin:0; }
.inline-actions { display:flex; gap:6px; flex-wrap:wrap; }
.score-card { min-height: 258px; }
@media (min-width: 981px) { .score-card { padding: 16px; gap: 10px; } .score { font-size: 43px; } }
.baseline-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.baseline-toggle { padding:5px 9px !important; }
.baseline-grid.collapsed { grid-template-columns: repeat(3, minmax(0,1fr)); }
.baseline-grid.expanded { grid-template-columns: repeat(2, minmax(0,1fr)); }
.baseline-hidden { display:inline-flex; margin-left:4px; font-weight:900; color:var(--blue); }
.modal-baseline-card { background:#f9fafc; border:1px solid var(--line); border-radius:18px; padding:14px; margin-top:12px; }
.baseline-chart { height: 128px; }
.baseline-detail-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:8px; margin-top:10px; }
.baseline-detail { border:1px solid var(--line); background:#fff; border-radius:12px; padding:9px; }
.baseline-detail b { display:block; font-size:11.5px; color:var(--muted); margin-bottom:2px; }
.baseline-detail span { font-size:13px; font-weight:900; color:var(--text); }
@media (max-width: 760px) {
  .baseline-grid.collapsed, .baseline-grid.expanded { grid-template-columns:1fr; }
  .baseline-detail-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .section-headline { align-items:flex-start; }
  table { min-width: 720px; }
}
@media (max-width: 420px) { .baseline-detail-grid { grid-template-columns:1fr; } }

/* v0.7.2 일일컨디션 팝업 */
.daily-condition-btn { border-color: rgba(47,128,237,.35) !important; color: var(--blue) !important; font-weight: 900; }
.condition-panel { width: min(720px, calc(100% - 24px)); }
.condition-summary { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:10px; margin-bottom:14px; }
.condition-summary-box { border:1px solid var(--line); background:#f9fafc; border-radius:16px; padding:12px; }
.condition-summary-box b { display:block; font-size:12px; color:var(--muted); margin-bottom:5px; }
.condition-summary-box span { display:block; font-size:14px; font-weight:900; color:var(--text); }
.condition-field { margin:14px 0; }
.condition-field label { display:flex; gap:6px; align-items:baseline; font-size:13px; font-weight:900; color:var(--text); margin-bottom:8px; }
.condition-field label span { color:var(--muted); font-size:11px; }
.condition-options { display:flex; flex-wrap:wrap; gap:8px; }
.condition-choice { background:#fff; color:var(--muted); border:1px solid var(--line); box-shadow:none; padding:9px 12px; }
.condition-choice.active { background:var(--text); color:#fff; border-color:var(--text); }
.condition-memo { width:100%; min-height:86px; resize:vertical; border:1px solid var(--line); border-radius:16px; padding:12px; font-family:inherit; font-size:14px; outline:none; background:#fff; color:var(--text); }
.condition-memo:focus { border-color:rgba(47,128,237,.55); box-shadow:0 0 0 3px rgba(47,128,237,.12); }
.condition-result, .condition-week-summary { border:1px solid var(--line); border-radius:16px; padding:12px; font-size:13px; color:var(--muted); background:#fbfcff; margin-top:10px; }
.condition-result b { color:var(--text); }
.condition-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
@media (max-width: 620px){
  .condition-summary { grid-template-columns: 1fr; }
  .condition-actions { justify-content:stretch; }
  .condition-actions button { flex:1; }
}


/* v0.7.3 컨디션 일일기록 조회 */
.condition-history-btn { border-color: rgba(123,97,255,.36) !important; color: var(--purple) !important; font-weight: 900; }
.condition-history-panel { width: min(1080px, calc(100% - 24px)); }
.condition-history-tabs { margin-top: 0; }
.condition-history-summary { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:10px; margin: 10px 0 14px; }
.condition-history-stat { border:1px solid var(--line); border-radius:16px; background:#fbfcff; padding:12px; }
.condition-history-stat b { display:block; color:var(--muted); font-size:12px; margin-bottom:5px; }
.condition-history-stat span { display:block; color:var(--text); font-size:18px; font-weight:900; letter-spacing:-.03em; }
.condition-history-table-wrap table { min-width: 620px; }
.condition-history-table th, .condition-history-table td { text-align:left; }
.condition-history-table th:nth-child(4), .condition-history-table td:nth-child(4) { text-align:left; }
.condition-history-memo { max-width: 240px; overflow:hidden; text-overflow:ellipsis; }
.condition-history-note { margin-top: 12px; border:1px solid var(--line); background:#fbfcff; color:var(--muted); border-radius:16px; padding:12px; font-size:13px; }
.condition-history-empty { color:var(--muted); text-align:center !important; padding:22px !important; }
@media (max-width: 760px){
  .condition-history-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .condition-history-table-wrap table { min-width: 620px; }
}
@media (max-width: 420px){ .condition-history-summary { grid-template-columns:1fr; } }
@media (max-width: 560px){ .compact-direction-grid { grid-template-columns:1fr; } }

/* v0.7.4 자동화 누락 점검 */
.automation-alert {
  margin: 0 0 14px;
  padding: 13px 14px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  box-shadow: 0 8px 22px rgba(16,24,40,.07);
}
.automation-alert.hidden { display: none; }
.automation-alert.warning { border-color: #f0c36a; background: #fff8e8; color: #6e5200; }
.automation-alert b { display: block; margin-bottom: 3px; color: var(--text); }
.automation-alert span { display: block; font-size: 13px; }
.automation-alert small { display: block; margin-top: 4px; color: #8a6a05; font-size: 11.5px; }
.automation-alert-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.automation-panel { max-width: 760px; }
.automation-status-card { border: 1px solid var(--line); border-radius: 18px; background: #f9fafc; padding: 14px; margin-bottom: 12px; }
.automation-status-card.warning { background: #fff8e8; border-color: #f0c36a; }
.automation-status-card.ok { background: #f3fbf6; border-color: rgba(31,157,85,.25); }
.automation-status-card b { display: block; margin: 8px 0 4px; }
.automation-status-card p { margin: 0; color: var(--muted); font-size: 13px; }
.automation-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.automation-detail-box { padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: #fbfcff; }
.automation-detail-box b { display: block; margin-bottom: 4px; font-size: 12px; color: var(--muted); }
.automation-detail-box span { font-weight: 800; font-size: 13px; color: var(--text); word-break: break-word; }
.automation-guide { margin-top: 12px; }
.automation-actions { justify-content: flex-end; }
@media (max-width: 560px) {
  .automation-alert { align-items: stretch; flex-direction: column; }
  .automation-alert-actions { justify-content: flex-start; }
  .automation-detail-grid { grid-template-columns: 1fr; }
}

/* v0.7.7 그래프 점 터치/클릭 수치 툴팁 */
.chart-tooltip {
  position: fixed;
  z-index: 120;
  min-width: 168px;
  max-width: min(280px, calc(100vw - 24px));
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(24, 32, 47, 0.96);
  color: #fff;
  box-shadow: 0 16px 38px rgba(16,24,40,.28);
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 120ms ease, transform 120ms ease;
  font-size: 12px;
}
.chart-tooltip.show { opacity: 1; transform: translateY(0); }
.chart-tooltip-title { color: rgba(255,255,255,.72); font-weight: 900; margin-bottom: 5px; }
.chart-tooltip-row { display:flex; justify-content:space-between; align-items:baseline; gap:14px; }
.chart-tooltip-row b { font-size:13px; color:#fff; }
.chart-tooltip-row span { font-size:16px; font-weight:900; letter-spacing:-.03em; white-space:nowrap; }
.chart-tooltip-extra { margin-top:5px; color:rgba(255,255,255,.62); font-size:11px; }
canvas.mini-chart, canvas.modal-chart, canvas.baseline-chart { touch-action: manipulation; }

/* v0.7.9 지표 방향성 템플릿 강화 */
.direction-badge {
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
  border-radius:999px;
  padding:3px 7px;
  margin-left:5px;
  font-size:10.5px;
  font-weight:900;
  line-height:1.15;
  white-space:nowrap;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
}
.direction-badge.up_good, .direction-mini.up_good { background:rgba(31,157,85,.10); color:var(--good); border-color:rgba(31,157,85,.18); }
.direction-badge.down_good, .direction-mini.down_good { background:rgba(214,69,69,.09); color:var(--bad); border-color:rgba(214,69,69,.16); }
.direction-badge.range, .direction-mini.range { background:rgba(224,159,34,.12); color:#a66f00; border-color:rgba(224,159,34,.18); }
.card-direction { transform:translateY(-1px); }
.metric-direction { margin-left:4px; padding:2px 6px; font-size:9.5px; }
.title-direction { margin-left:4px; }
.baseline-direction { margin-left:4px; }
.driver-template {
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.35;
}
.modal-direction-box {
  background:#fbfcff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  margin-bottom:12px;
}
.modal-direction-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  margin-bottom:10px;
}
.modal-direction-head b { display:block; font-size:13px; }
.modal-direction-head span:not(.direction-badge) { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
.direction-template-grid {
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:8px;
}
.direction-template-item {
  background:#fff;
  border:1px solid var(--line);
  border-radius:13px;
  padding:10px;
}
.direction-template-item b {
  display:block;
  color:var(--muted);
  font-size:11.5px;
  margin-bottom:4px;
}
.direction-template-item span {
  display:block;
  color:var(--text);
  font-size:12.5px;
  font-weight:750;
  line-height:1.38;
}
.direction-template-item.wide-template { grid-column: 1 / -1; }
.template-trend { display:inline-block !important; font-weight:900 !important; margin-bottom:4px; }
.template-trend.good { color:var(--good); }
.template-trend.mid { color:#a66f00; }
.template-trend.bad { color:var(--bad); }
.direction-mini {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:2px 6px;
  margin-right:5px;
  font-size:10.5px;
  font-weight:900;
  border:1px solid var(--line);
  background:#fff;
}
.chart-tooltip-extra .direction-mini { margin-bottom:4px; }
@media (max-width: 760px){
  .direction-template-grid { grid-template-columns:1fr; }
  .direction-badge { font-size:9.8px; padding:2px 6px; }
  .metric-direction { display:block; width:max-content; margin:4px 0 0; }
}

/* v0.7.13 정리형 오늘 리포트 */
.template-insight-box {
  margin: 12px 0 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(180deg, #fbfcff 0%, #ffffff 100%);
  overflow: hidden;
}
.template-report-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  padding:13px 14px;
  border-bottom:1px solid var(--line);
  background:#f9fafc;
}
.template-report-head b { display:block; font-size:14px; letter-spacing:-.02em; }
.template-report-head span:not(.tag) { display:block; color:var(--muted); font-size:11.5px; margin-top:2px; }
.template-report-head.good { background:rgba(31,157,85,.06); }
.template-report-head.bad { background:rgba(214,69,69,.055); }
.template-report-head.mid { background:rgba(224,159,34,.075); }
.template-report-grid {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  padding:12px;
}
.template-report-section {
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  padding:12px;
  min-width:0;
}
.template-report-section.wide { grid-column:1 / -1; }
.template-report-section > b { display:block; margin-bottom:7px; font-size:13px; }
.template-report-section p { margin:0; color:var(--muted); font-size:13px; }
.template-report-section ol,
.template-report-section ul { margin:0; padding-left:18px; color:var(--muted); font-size:13px; }
.template-report-section li { margin:7px 0; }
.cause-rank { display:inline-flex; width:max-content; border-radius:999px; padding:2px 7px; margin-bottom:5px; background:#f2f4f7; color:var(--muted); font-size:10.5px; font-weight:900; }
.template-cause b { display:block; color:var(--text); margin-bottom:2px; }
.template-cause span { color:var(--muted); }
.template-cause.good b { color:var(--good); }
.template-cause.bad b { color:var(--bad); }
.template-cause.mid b { color:#a66f00; }
@media (max-width: 700px){
  .template-report-head { display:block; }
  .template-report-head .tag { margin-top:8px; }
  .template-report-grid { grid-template-columns:1fr; }
  .template-report-section.wide { grid-column:auto; }
}


/* v0.7.13 7/30/90 기간별 템플릿 해석 */
.period-report-section { background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%); }
.period-summary { margin-bottom: 10px !important; }
.period-card-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:8px; margin-top:10px; }
.period-card { border:1px solid var(--line); border-radius:14px; padding:10px; background:#fff; }
.period-card b { display:block; font-size:12.5px; margin-bottom:4px; color:var(--text); }
.period-card .period-status { display:inline-flex; font-size:10.5px; font-weight:900; border-radius:999px; padding:2px 7px; margin-bottom:6px; background:#f2f4f7; color:var(--muted); }
.period-card p { font-size:12.5px !important; line-height:1.45; }
.period-card.good { border-color:rgba(31,157,85,.25); background:rgba(31,157,85,.04); }
.period-card.good .period-status { background:rgba(31,157,85,.10); color:var(--good); }
.period-card.bad { border-color:rgba(214,69,69,.22); background:rgba(214,69,69,.035); }
.period-card.bad .period-status { background:rgba(214,69,69,.10); color:var(--bad); }
.period-card.mid { border-color:rgba(224,159,34,.20); background:rgba(224,159,34,.035); }
.period-card.mid .period-status { background:rgba(224,159,34,.12); color:#a66f00; }
@media (max-width:700px){ .period-card-grid { grid-template-columns:1fr; } }

/* v0.7.13 오늘 해석 카드 레이아웃 정리 */
.today-insight-card { overflow: visible; }
.today-headline { margin-bottom: 12px; }
.section-sub { margin: 3px 0 0; color: var(--muted); font-size: 12.5px; line-height: 1.35; }
.today-conclusion-panel {
  display:grid;
  grid-template-columns: minmax(0,1.35fr) minmax(220px,.65fr);
  gap:12px;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  background:linear-gradient(180deg,#fbfcff 0%,#fff 100%);
  margin-bottom:12px;
}
.today-conclusion-main { min-width:0; }
.today-section-label {
  display:inline-flex;
  align-items:center;
  width:max-content;
  border-radius:999px;
  padding:3px 8px;
  background:#f2f4f7;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  margin-bottom:8px;
}
.today-summary { margin:0; font-size:15px; line-height:1.58; color:var(--text); }
.today-conclusion-badges { display:grid; grid-template-columns:1fr; gap:8px; }
.conclusion-badge {
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:10px 11px;
}
.conclusion-badge b { display:block; color:var(--muted); font-size:11.5px; margin-bottom:4px; }
.conclusion-badge span { display:block; color:var(--text); font-size:13px; font-weight:850; line-height:1.35; }
.conclusion-badge.wide-badge span { font-size:12.5px; font-weight:760; }
.template-insight-box.layout-cleanup {
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
  margin:0 0 12px;
}
.insight-clean-grid { display:grid; gap:12px; }
.insight-clean-card {
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:13px;
  min-width:0;
}
.interpretation-card { background:linear-gradient(180deg,#fff 0%,#fbfcff 100%); }
.interpretation-card.good { border-color:rgba(31,157,85,.22); }
.interpretation-card.bad { border-color:rgba(214,69,69,.20); }
.interpretation-card.mid { border-color:rgba(224,159,34,.22); }
.interpretation-card p,
.insight-feedback-detail p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.today-block-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  margin-bottom:10px;
}
.today-block-head b { display:block; font-size:14px; letter-spacing:-.02em; }
.today-block-head.compact-head .today-section-label { margin-bottom:5px; }
.basis-help { color:var(--muted); font-size:11.5px; font-weight:800; white-space:normal; overflow-wrap:anywhere; }
.cause-action-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.cause-action-grid .template-report-section { padding:12px; }
.cause-action-grid .template-report-section > b { font-size:13px; }
/* v0.7.17: 기준선/기간 흐름은 별도 카드로 분리하고 내부는 항상 세로 스택 */
.today-main-section { align-items:start; }
@media (min-width: 981px){
  .today-main-section { grid-template-columns: 1.08fr .92fr; grid-auto-flow: row; }
  .today-insight-card { grid-column:1; grid-row:1 / span 2; }
  .basis-flow-card { grid-column:2; grid-row:1; }
  .data-card { grid-column:2; grid-row:2; }
}
.today-basis-flow {
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--panel);
  padding:16px;
  margin-bottom:0;
  min-width:0;
}

.basis-explain-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-bottom:10px;
}
.basis-explain-card {
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:10px 11px;
}
.basis-explain-card b { display:block; font-size:12.5px; color:var(--text); margin-bottom:3px; }
.basis-explain-card span { display:block; font-size:12px; color:var(--muted); line-height:1.45; }
.basis-split-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-items:start;
}
.period-insight-box {
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:12px;
  min-width:0;
}
.compact-period .period-card-grid { grid-template-columns:1fr; }
.basis-flow-card .today-block-head,
.period-insight-box .today-block-head,
.baseline-head { min-width:0; }
.basis-flow-card b,
.basis-flow-card span,
.basis-flow-card p,
.period-card p,
.period-summary,
.baseline-summary { overflow-wrap:anywhere; word-break:keep-all; }
.period-card-grid { grid-template-columns:1fr !important; }

.baseline-help-inline { display:inline; color:var(--muted); font-weight:700; }

.compact-baseline { margin-top:2px; }
.compact-baseline .baseline-head { margin-bottom:10px; }
.today-detail-section {
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  margin-top:10px;
  overflow:hidden;
}
.today-detail-section summary {
  cursor:pointer;
  list-style:none;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:900;
  font-size:13.5px;
}
.today-detail-section summary::-webkit-details-marker { display:none; }
.today-detail-section summary::after { content:'▾'; color:var(--muted); font-size:12px; }
.today-detail-section[open] summary::after { transform:rotate(180deg); }
.today-detail-section summary span { color:var(--muted); font-size:11.5px; font-weight:700; }
.today-detail-body { display:grid; gap:8px; padding:0 12px 12px; }
.reference-section .explain-list { margin:0; padding:0 12px 12px; }
.reference-section .note-box { margin:0 12px 12px; }
.insight-feedback-detail {
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}
.insight-feedback-detail summary {
  cursor:pointer;
  list-style:none;
  padding:11px 12px;
  font-size:13px;
  font-weight:900;
  display:flex;
  justify-content:space-between;
  gap:8px;
}
.insight-feedback-detail summary::-webkit-details-marker { display:none; }
.insight-feedback-detail summary span { color:var(--muted); font-size:11px; font-weight:700; }
.insight-feedback-detail p { padding:0 12px 12px; }
@media (max-width: 760px){
  .today-conclusion-panel { grid-template-columns:1fr; }
  .today-conclusion-badges { grid-template-columns:1fr 1fr; }
  .conclusion-badge.wide-badge { grid-column:1 / -1; }
  .cause-action-grid { grid-template-columns:1fr; }
  .basis-explain-grid, .basis-split-grid { grid-template-columns:1fr; }
  .today-block-head { display:block; }
  .today-block-head .tag,
  .basis-help { display:inline-flex; margin-top:6px; white-space:normal; }
  .today-detail-section summary { align-items:flex-start; }
  .today-detail-section summary span { display:block; margin-top:2px; }
}
@media (max-width: 430px){
  .today-conclusion-badges { grid-template-columns:1fr; }
}

/* v0.7.17: 30일 데이터 품질 점검 카드 */
.data-audit-section{margin-top:18px}
.data-quality-audit-card .section-headline{align-items:flex-start;gap:12px}
.data-quality-audit-box{margin-top:12px;display:flex;flex-direction:column;gap:12px}
.quality-summary-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid rgba(148,163,184,.24);border-radius:14px;background:rgba(15,23,42,.025)}
.quality-summary-line span:last-child{font-size:13px;color:var(--muted)}
.quality-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.quality-item{min-width:0;padding:12px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:rgba(255,255,255,.72)}
.quality-item b{display:block;font-size:18px;line-height:1.2;white-space:normal;word-break:keep-all;color:var(--text)}
.quality-item span{display:block;margin-top:5px;font-size:12px;color:var(--muted);word-break:keep-all}
.quality-detail{border:1px solid rgba(148,163,184,.24);border-radius:14px;padding:10px 12px;background:rgba(255,255,255,.55)}
.quality-detail summary{cursor:pointer;font-weight:800;color:var(--text)}
.quality-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.quality-detail-grid>div{padding:10px;border-radius:12px;background:rgba(15,23,42,.035);min-width:0}
.quality-detail-grid>div.wide{grid-column:1/-1}
.quality-detail-grid b{display:block;margin-bottom:5px;font-size:12px;color:var(--muted)}
.quality-detail-grid span{display:block;font-size:13px;word-break:break-word;line-height:1.45}
.quality-note{margin:10px 0 0;font-size:12px;color:var(--muted);line-height:1.45}
@media (max-width: 980px){.quality-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width: 640px){.quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quality-detail-grid{grid-template-columns:1fr}.data-quality-audit-card .section-headline{display:block}.data-quality-audit-card .section-headline button{margin-top:10px;width:100%}}


/* v0.7.18: 개인기준선 접기 제거 + 최근기록 접이식/30일 페이지 */
.baseline-toggle { display:none !important; }
.baseline-actions { flex-shrink:0; }
.baseline-grid.expanded { grid-template-columns: repeat(2, minmax(0,1fr)); }
.recent-records-section { grid-template-columns:1fr; }
.recent-records-card { padding:0; overflow:hidden; }
.recent-records-detail { display:block; }
.recent-records-detail > summary {
  cursor:pointer;
  list-style:none;
  padding:18px;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.recent-records-detail > summary::-webkit-details-marker { display:none; }
.recent-records-detail > summary h2 { margin:0 0 4px; }
.recent-records-detail > summary::after { content:'▾'; color:var(--muted); font-size:13px; margin-top:6px; transition:transform .16s ease; }
.recent-records-detail[open] > summary::after { transform:rotate(180deg); }
.recent-records-detail > summary .tag { margin-left:auto; }
.recent-records-body { padding:0 18px 18px; }
.recent-record-toolbar { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.recent-pager { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.recent-page-text { color:var(--muted); font-size:12px; font-weight:900; min-width:44px; text-align:center; }
.recent-pager button:disabled { opacity:.42; cursor:not-allowed; }
@media (max-width: 640px){
  .recent-records-detail > summary { display:block; }
  .recent-records-detail > summary .tag { margin-top:8px; }
  .recent-record-toolbar { display:grid; grid-template-columns:1fr; }
  .recent-pager { justify-content:space-between; }
  .recent-pager button { flex:1 1 0; }
}

/* v0.7.19: 개인 기준선 항목은 모든 화면에서 1열 고정
   - 가로모드/태블릿에서도 2열로 나뉘지 않게 해 태그와 설명 문구 겹침을 방지한다. */
.baseline-grid,
.baseline-grid.collapsed,
.baseline-grid.expanded,
.compact-baseline .baseline-grid,
.compact-baseline .baseline-grid.collapsed,
.compact-baseline .baseline-grid.expanded,
.basis-flow-card .baseline-grid,
.basis-flow-card .baseline-grid.collapsed,
.basis-flow-card .baseline-grid.expanded {
  grid-template-columns: 1fr !important;
}
.baseline-item { min-width: 0; }
.baseline-name {
  align-items: flex-start;
  flex-wrap: wrap;
  row-gap: 6px;
}
.baseline-name > span,
.baseline-name .tag,
.baseline-name .pill {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: keep-all;
}
.baseline-values,
.baseline-summary {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: keep-all;
}


/* v0.7.20: 낮잠은 별도 분석 카드가 아니라 수면 회복 보조 지표로 설명한다. */
.sleep-nap-note {
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(59,130,246,0.06);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  display: grid;
  gap: 4px;
}
.sleep-nap-note b { color: var(--text); font-size: 13px; }
.sleep-nap-note span { word-break: keep-all; overflow-wrap: anywhere; }
@media (max-width: 640px){
  .sleep-nap-note { font-size: 12px; padding: 11px 12px; }
}


/* v0.8.1: raw 생체신호/활동 kcal 요약은 기존 지표와 동일한 카드 폭을 사용하되 보조 정밀지표로 표시한다. */
.raw-vitals-note{border-style:dashed;}

/* v0.8.1: raw 정밀해석 카드 */
.raw-insight-box{margin-top:14px;border:1px solid rgba(148,163,184,.28);border-radius:18px;padding:14px;background:rgba(15,23,42,.03)}
.raw-insight-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}
.raw-insight-head b{font-size:15px}
.raw-insight-head span{font-size:12px;color:var(--muted);text-align:right;line-height:1.45}
.raw-insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.raw-insight-item{border:1px solid rgba(148,163,184,.24);border-radius:14px;padding:11px;background:var(--card-bg,#fff);min-height:78px;display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.raw-insight-item div{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.raw-insight-item b{font-size:13px}
.raw-insight-item strong{font-size:17px;line-height:1.25}
@media(max-width:760px){.raw-insight-head{display:block}.raw-insight-head span{text-align:left;display:block;margin-top:4px}.raw-insight-grid{grid-template-columns:1fr}.raw-insight-item{min-height:auto}}

/* v0.8.1.1: raw 샘플은 있으나 정밀지표 컬럼이 비어 있을 때 안내 */
.raw-insight-empty{
  margin-top:12px;
  padding:14px 16px;
  border:1px dashed rgba(180,120,40,.35);
  background:#fff8ed;
  border-radius:18px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.raw-insight-empty b{font-size:15px;color:#7a4b00;}
.raw-insight-empty span{font-size:13px;line-height:1.45;color:#80633a;}


/* v0.8.2: raw 연계분석 엔진 */
.raw-linked-box{margin-top:14px;border:1px solid rgba(99,102,241,.22);border-radius:18px;padding:14px;background:linear-gradient(180deg,rgba(99,102,241,.045),rgba(15,23,42,.025))}
.raw-linked-summary{display:grid;grid-template-columns:1fr 150px;gap:12px;margin:8px 0 10px;align-items:stretch}
.raw-linked-summary>div:first-child{border:1px solid rgba(148,163,184,.24);border-radius:16px;padding:13px;background:var(--card-bg,#fff)}
.raw-linked-summary b{display:block;font-size:18px;margin-top:3px}.raw-linked-summary p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.raw-linked-action{border:1px solid rgba(34,197,94,.20);border-radius:16px;padding:13px;background:rgba(34,197,94,.06);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:4px}.raw-linked-action b{font-size:17px}.raw-linked-action span{font-size:12px;color:var(--muted)}
.raw-linked-tags{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}
.raw-linked-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.raw-linked-item{border:1px solid rgba(148,163,184,.24);border-radius:14px;padding:11px;background:var(--card-bg,#fff);display:grid;gap:7px;min-height:104px}.raw-linked-item div{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.raw-linked-item b{font-size:13px}.raw-linked-item strong{font-size:17px}.raw-linked-item>span{font-size:12px;color:var(--muted);line-height:1.35}
@media(max-width:760px){.raw-linked-summary{grid-template-columns:1fr}.raw-linked-grid{grid-template-columns:1fr}.raw-linked-item{min-height:auto}}

/* v0.8.2.1: 주요 관리항목 상단 고정 / v0.8.2.2: 상세카드 상단복원 */
.top-management-section { margin: 14px 0; }
.top-management-card { display: grid; gap: 14px; }
.top-management-headline { margin-bottom: 0; }
.top-condition-panel { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 12px; align-items: stretch; }
.top-condition-main, .top-action-card { border: 1px solid var(--line); border-radius: 18px; background: linear-gradient(180deg, #fff, #fbfcff); padding: 14px; }
.top-condition-main b { display: block; font-size: 22px; letter-spacing: -0.03em; margin-top: 4px; }
.top-condition-main p { margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.top-action-card { display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.top-action-card > span { color: var(--muted); font-size: 12px; font-weight: 900; }
.top-action-card b { font-size: 20px; letter-spacing: -0.03em; }
.top-linked-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.core-management-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.core-metric { border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: 12px; min-width: 0; display: grid; gap: 8px; box-shadow: 0 7px 16px rgba(16,24,40,.045); }
.core-title { display: flex; justify-content: space-between; gap: 6px; align-items: flex-start; color: var(--muted); font-size: 12px; font-weight: 900; }
.core-value { display: flex; align-items: baseline; gap: 5px; min-width: 0; }
.core-value b { font-size: 28px; line-height: 1; letter-spacing: -0.05em; }
.core-value small { color: var(--muted); font-size: 10.5px; font-weight: 800; }
.core-metric p { margin: 0; color: var(--muted); font-size: 11.5px; font-weight: 700; }
.core-bar { width: 100%; height: 7px; border-radius: 999px; background: #edf0f5; overflow: hidden; }
.core-bar > span { display: block; height: 100%; width: 0%; border-radius: inherit; transition: width 350ms ease; }
.core-bar.energy > span { background: linear-gradient(90deg, #d64545, #e09f22, #1f9d55); }
.core-bar.recovery > span { background: linear-gradient(90deg, #d64545, #e09f22, #2f80ed); }
.core-bar.stress > span { background: linear-gradient(90deg, #1f9d55, #e09f22, #d64545); }
.core-bar.load > span, .core-bar.balance > span { background: linear-gradient(90deg, #d64545, #e09f22, #1f9d55); }
.score-detail-grid { margin-top: 14px; }
@media (max-width: 1080px) { .core-management-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 760px) { .top-condition-panel { grid-template-columns: 1fr; } .core-management-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .core-value b { font-size: 26px; } }
@media (max-width: 360px) { .core-management-grid { grid-template-columns: 1fr; } }

/* v0.8.2.2: 핵심관리 상세카드가 상단에서 해석·영향·그래프를 유지하도록 제목 간격 보정 */
.score-detail-headline { margin: 16px 0 10px; align-items: flex-end; }
.score-detail-headline h2 { margin: 0; }
@media (max-width: 560px) { .score-detail-headline { align-items: flex-start; margin-top: 12px; } }

/* v0.8.2.3: 주요 관리항목 6개 상세 복원 */
.management-detail-headline{
  margin:22px 0 12px;
}
.management-detail-grid{
  margin-bottom:24px;
}
.management-card{
  min-height:0;
}
.management-card .text-score{
  align-items:flex-start;
  min-height:64px;
}
.management-card .text-value{
  font-size:clamp(28px,5.8vw,44px);
  line-height:1.15;
  word-break:keep-all;
  letter-spacing:-.04em;
}
.management-card .driver{
  min-height:72px;
}
.management-card .mini-chart-wrap{
  margin-top:14px;
}
@media (max-width: 760px){
  .management-detail-grid{
    grid-template-columns:1fr;
  }
  .management-card .driver{
    min-height:auto;
  }
}

/* v0.8.2.4: 주요관리/핵심관리 역할 구분 및 주요관리 카드 2열 고정 */
.management-detail-headline .section-sub,
.score-detail-headline .section-sub,
.top-management-headline .section-sub{
  line-height:1.55;
}
.management-detail-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px;
}
.management-card{
  display:flex;
  flex-direction:column;
}
.management-card .desc{
  min-height:54px;
}
.management-card .driver{
  min-height:86px;
}
.management-card .mini-chart-wrap{
  margin-top:auto;
}
@media (max-width:760px){
  .management-detail-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px;
  }
  .management-card{
    padding:14px 12px;
  }
  .management-card .label{
    align-items:flex-start;
    gap:6px;
  }
  .management-card .score{
    font-size:clamp(30px,10vw,42px);
  }
  .management-card .text-value{
    font-size:clamp(20px,6.4vw,30px);
  }
  .management-card .score-row{
    min-height:48px;
  }
  .management-card .desc{
    min-height:auto;
    font-size:12px;
    line-height:1.42;
  }
  .management-card .driver{
    min-height:auto;
    font-size:12px;
    line-height:1.42;
  }
  .management-card .chart-title{
    font-size:11px;
  }
}
@media (max-width:340px){
  .management-detail-grid{
    grid-template-columns:1fr !important;
  }
}

/* v0.8.2.5: 공신력/중복정리 - 원천 계산근거는 접기 기본값, 메인화면은 주요관리+핵심관리 중심 */
.raw-calculation-detail{margin-top:14px;border:1px dashed rgba(99,102,241,.28);border-radius:18px;background:rgba(99,102,241,.035);overflow:hidden}
.raw-calculation-detail summary{cursor:pointer;list-style:none;padding:13px 14px;font-weight:900;font-size:13px;color:var(--text);display:flex;justify-content:space-between;gap:8px;align-items:center}
.raw-calculation-detail summary::-webkit-details-marker{display:none}
.raw-calculation-detail summary::after{content:'펼치기';font-size:11px;color:var(--muted);font-weight:800}
.raw-calculation-detail[open] summary::after{content:'접기'}
.raw-calculation-detail .raw-linked-box{border:0;border-top:1px solid rgba(99,102,241,.18);border-radius:0;margin-top:0;background:transparent}
.score-detail-headline .tag.blue,
.management-detail-headline .tag.blue{white-space:nowrap}

/* v0.8.2.6: 화면 단순화 - 상단 결론 + 주요관리 4개 + 원천/Raw/품질 접힘 */
.top-actions{
  gap:6px;
  align-items:center;
}
.top-actions button{
  padding:7px 10px;
  font-size:12px;
  line-height:1.1;
  box-shadow:none;
}
@media (max-width:560px){
  header{gap:10px;align-items:flex-start;}
  .top-actions{justify-content:flex-start;width:100%;}
  .top-actions button{padding:7px 9px;font-size:11.5px;}
}

.top-condition-main.clickable,
.top-action-card.clickable{
  cursor:pointer;
}
.top-condition-main.clickable:hover,
.top-action-card.clickable:hover{
  border-color:rgba(47,128,237,.42);
}

.management-detail-grid,
.score-detail-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:12px !important;
}
.score-card,
.management-card{
  min-height:0;
  padding:15px;
  gap:10px;
}
.score-card .score,
.management-card .score{
  font-size:clamp(32px,5.5vw,42px);
}
.score-card .desc,
.management-card .desc,
.score-card .driver,
.management-card .driver{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:auto !important;
  line-height:1.42;
}
.score-card .driver,
.management-card .driver{
  font-size:12px;
}
.score-card .mini-chart,
.management-card .mini-chart{
  height:62px;
}
@media (max-width:340px){
  .management-detail-grid,
  .score-detail-grid{grid-template-columns:1fr !important;}
}

.dashboard-detail{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  overflow:hidden;
}
.dashboard-detail + .dashboard-detail{
  margin-top:12px;
}
.dashboard-detail summary{
  list-style:none;
  cursor:pointer;
  padding:13px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.dashboard-detail summary::-webkit-details-marker{display:none;}
.dashboard-detail summary > div{display:grid;gap:2px;min-width:0;}
.dashboard-detail summary b{font-size:14px;letter-spacing:-.02em;}
.dashboard-detail summary span:not(.tag){font-size:12px;color:var(--muted);font-weight:700;line-height:1.35;}
.dashboard-detail[open] summary{border-bottom:1px solid var(--line);}
.dashboard-detail .metrics,
.dashboard-detail .sleep-nap-note,
.dashboard-detail .raw-insight-box,
.dashboard-detail .raw-linked-box,
.dashboard-detail .data-quality-audit-box,
.dashboard-detail .today-block-head,
.dashboard-detail .basis-split-grid{
  margin:14px;
}
.compact-collapsed-card{padding:12px;}
.data-card.wide{grid-column:1 / -1;}
.data-source-detail .source-metrics{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
@media (max-width:900px){.data-source-detail .source-metrics{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:640px){.data-source-detail .source-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}}
.raw-calculation-detail .raw-linked-box,
.raw-calculation-detail .raw-insight-box{
  border:1px solid rgba(99,102,241,.18);
  border-radius:16px;
  background:rgba(99,102,241,.025);
}
.quality-audit-detail summary button{
  flex:0 0 auto;
  padding:7px 10px;
  font-size:12px;
}
.data-audit-section,
.recent-records-section{
  grid-template-columns:1fr;
  margin-top:12px;
}
.baseline-flow-detail .basis-split-grid{
  grid-template-columns:1fr;
}
.top-linked-badges .tag{font-size:11.5px;padding:4px 8px;}


/* v0.8.2.6.2: 원천데이터/Raw 계산근거 접힘 카드 위치 고정
   - 오늘 해석/기준선 영역과 상세 근거 영역을 분리
   - 원천 데이터 보기와 Raw 계산근거 보기를 같은 레벨의 독립 카드로 배치
   - 과거 today-main-section의 data-card grid-row 잔재를 무력화 */
@media (min-width:981px){
  .today-main-section{grid-template-columns:1.08fr .92fr;align-items:start;}
  .today-main-section .today-insight-card{grid-column:1;grid-row:1;}
  .today-main-section .basis-flow-card{grid-column:2;grid-row:1;}
  .today-main-section .data-card{grid-column:auto;grid-row:auto;}
}
.supporting-detail-section{
  margin-top:14px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:start;
}
.supporting-detail-section .detail-drawer-card{
  padding:12px;
}
.supporting-detail-section .dashboard-detail{
  background:#fff;
}
.supporting-detail-section .raw-calculation-detail{
  margin-top:0;
}
.supporting-detail-section .raw-calculation-detail summary::after{
  content:none;
}
.supporting-detail-section .source-metrics{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.supporting-detail-section .raw-insight-grid,
.supporting-detail-section .raw-linked-grid{
  grid-template-columns:1fr;
}
.supporting-detail-section .raw-linked-summary{
  grid-template-columns:1fr;
}
.supporting-detail-section .dashboard-detail .metrics,
.supporting-detail-section .dashboard-detail .sleep-nap-note,
.supporting-detail-section .dashboard-detail .raw-insight-box,
.supporting-detail-section .dashboard-detail .raw-linked-box{
  margin:12px;
}
@media (max-width:980px){
  .supporting-detail-section{grid-template-columns:1fr;}
}
@media (max-width:420px){
  .supporting-detail-section .source-metrics{grid-template-columns:1fr;}
}

/* v0.8.3: 카드별 통계모델 요약 */
.stat-mini{
  margin:0;
  padding:7px 9px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fbfcff;
  color:var(--muted);
  font-size:11.6px;
  font-weight:800;
  line-height:1.35;
}
.stat-mini.good{background:rgba(31,157,85,.06);border-color:rgba(31,157,85,.16);color:#157347;}
.stat-mini.mid{background:rgba(224,159,34,.08);border-color:rgba(224,159,34,.20);color:#8a5d00;}
.stat-mini.bad{background:rgba(214,69,69,.06);border-color:rgba(214,69,69,.18);color:#b42318;}
.modal-stat-summary{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin:-3px 0 12px;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid var(--line);
  background:#fbfcff;
  color:var(--muted);
  font-size:12.5px;
  font-weight:800;
}
@media (max-width:760px){
  .stat-mini{font-size:10.8px;padding:6px 7px;}
  .modal-stat-summary{font-size:11.8px;align-items:flex-start;}
}

/* v0.8.3.3: 데이터 운영관리/누락관리 */
.statistical-insight-box{
  display:flex;
  gap:8px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin:12px 0 0;
  padding:11px 12px;
  border:1px solid rgba(47,128,237,.16);
  background:linear-gradient(135deg, rgba(47,128,237,.06), rgba(123,97,255,.05));
  border-radius:16px;
  color:var(--muted);
  font-size:12.8px;
  font-weight:800;
  line-height:1.45;
}
.statistical-insight-box span:not(.tag){flex:1;min-width:220px;}
.modal-recovery-load-summary{
  display:flex;
  gap:8px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin:-4px 0 12px;
  padding:10px 12px;
  border:1px solid rgba(123,97,255,.16);
  background:rgba(123,97,255,.055);
  border-radius:16px;
  color:var(--muted);
  font-size:12.4px;
  font-weight:800;
  line-height:1.42;
}
.modal-recovery-load-summary span:not(.tag){flex:1;min-width:200px;}
.modal-stat-summary em{
  color:var(--muted);
  font-style:normal;
  font-weight:700;
  opacity:.92;
}
@media (max-width:760px){
  .statistical-insight-box,.modal-recovery-load-summary{font-size:11.7px;padding:9px 10px;}
  .statistical-insight-box span:not(.tag),.modal-recovery-load-summary span:not(.tag){min-width:160px;}
}

/* v0.8.3.3: 데이터 운영관리 카드 */
.data-ops-box { display:flex; flex-direction:column; gap:12px; }
.ops-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ops-actions { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 2px; }
.ops-actions button { min-height:34px; padding:7px 11px; font-size:.88rem; }
.ops-table-wrap { width:100%; overflow-x:auto; margin-top:10px; border:1px solid #e6eaf2; border-radius:12px; }
.ops-table { width:100%; border-collapse:collapse; min-width:680px; font-size:.86rem; }
.ops-table th, .ops-table td { padding:9px 10px; border-bottom:1px solid #edf0f6; text-align:left; vertical-align:middle; }
.ops-table th { background:#f8fafc; color:#475467; font-weight:700; }
.ops-table tr:last-child td { border-bottom:0; }
.ops-row-actions { white-space:nowrap; }
.ops-row-actions .tab { padding:5px 9px; min-height:28px; font-size:.78rem; }
.ops-running { border:1px dashed #c7d7fe; background:#f5f8ff; }
.muted { color:#98a2b3; font-size:.82rem; }
@media (max-width: 720px){ .ops-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ops-actions button { flex:1 1 calc(50% - 8px); } }

/* v0.8.4.0: 체감 피드백 기반 개인화 보정 후보 */
.feedback-personalization-box{display:flex;flex-direction:column;gap:12px;}
.personalization-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.personalization-detail .quality-detail-grid .wide{grid-column:1/-1;}
.personalization-sensitivity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:6px;}
.personalization-sensitivity div{padding:9px 10px;border:1px solid #edf0f6;border-radius:12px;background:#fbfcff;}
.personalization-sensitivity b{display:block;color:#344054;font-size:.86rem;margin-bottom:3px;}
.personalization-sensitivity span{display:block;color:#667085;font-size:.8rem;}
.personalization-candidates{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none;}
.personalization-candidates li{padding:10px 11px;border:1px solid rgba(47,128,237,.14);background:rgba(47,128,237,.04);border-radius:13px;}
.personalization-candidates b{display:block;color:#1d2939;font-size:.9rem;margin-bottom:4px;}
.personalization-candidates span{display:block;color:#667085;font-size:.82rem;line-height:1.4;}
@media (max-width:720px){
  .personalization-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .personalization-sensitivity{grid-template-columns:1fr;}
}

/* v0.8.4.1 AI-체감 검증화면 */
.feedback-validation-box{display:flex;flex-direction:column;gap:12px;}
.validation-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.feedback-validation-detail-inner .quality-detail-grid .wide{grid-column:1/-1;}
.validation-day-list,.validation-recommendations{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none;}
.validation-day-list li,.validation-recommendations li{padding:10px 11px;border:1px solid #edf0f6;border-radius:13px;background:#fbfcff;color:#475467;font-size:.84rem;line-height:1.45;}
.validation-day-list b{display:block;color:#1d2939;font-size:.9rem;margin-bottom:3px;}
.validation-day-list span{display:block;color:#667085;font-size:.82rem;}
@media (max-width: 760px){
  .validation-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}


/* v0.8.4.2 개인화 보정 시뮬레이션 */
.feedback-simulation-box{display:flex;flex-direction:column;gap:12px;}
.simulation-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.simulation-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.simulation-panel{display:flex;flex-direction:column;gap:5px;padding:12px 13px;border-radius:16px;border:1px solid #e6eaf2;background:#fbfcff;}
.simulation-panel.simulated{border-color:rgba(123,97,255,.22);background:rgba(123,97,255,.055);}
.simulation-panel b{font-size:.94rem;color:#1d2939;}
.simulation-panel span{font-size:.83rem;color:#667085;font-weight:700;line-height:1.35;}
.feedback-simulation-detail-inner .quality-detail-grid .wide{grid-column:1/-1;}
.simulation-reasons{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none;}
.simulation-reasons li{padding:10px 11px;border:1px solid #edf0f6;border-radius:13px;background:#fbfcff;color:#475467;font-size:.84rem;line-height:1.45;}
.simulation-reasons.caution li{border-color:rgba(245,158,11,.25);background:rgba(245,158,11,.06);}
@media (max-width:760px){
  .simulation-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .simulation-compare-grid{grid-template-columns:1fr;}
}

/* v0.8.4.2.6 activity/workout formula evidence */
.raw-linked-formula{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:10px;}
.formula-card{border:1px solid rgba(148,163,184,.22);background:rgba(15,23,42,.045);border-radius:14px;padding:10px 12px;}
.formula-card b{display:block;font-size:13px;margin-bottom:3px;}
.formula-card span{display:inline-block;font-size:11px;color:var(--muted,#64748b);margin-bottom:5px;}
.formula-card p{margin:0;font-size:12px;line-height:1.45;color:var(--text,#111827);}


/* v0.8.4.2.7 modal formula evidence */
.modal-formula-evidence{margin:10px 0 12px;border:1px solid rgba(47,128,237,.14);background:rgba(47,128,237,.035);border-radius:16px;padding:11px 12px;}
.modal-formula-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px;}
.modal-formula-head b{font-size:.95rem;color:#1d2939;}
.modal-formula-head span{font-size:.78rem;color:#667085;font-weight:700;text-align:right;}
.modal-formula-grid{margin-top:0;}
.modal-formula-card.direct{border-color:rgba(47,128,237,.24);background:rgba(47,128,237,.055);}
.modal-formula-card.indirect{border-color:rgba(123,97,255,.20);background:rgba(123,97,255,.045);}
.modal-formula-card.fallback{border-color:rgba(245,158,11,.22);background:rgba(245,158,11,.055);}
@media (max-width:720px){.modal-formula-head{display:block}.modal-formula-head span{display:block;text-align:left;margin-top:3px}.modal-formula-grid{grid-template-columns:1fr;}}
