/* =========================
   KPI Tabs (11カテゴリ切替)
========================= */
.life-kpi-tabs-section {
  margin-top: 10px;
  margin-bottom: 10px;
}

.life-kpi-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 2px 4px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.life-kpi-tabs::-webkit-scrollbar { display: none; }

.life-kpi-tab {
  flex: 0 0 auto;
  appearance: none;
  border: 1px solid rgba(255,255,255,.95);
  background: rgba(255,255,255,.88);
  border-radius: 999px;
  min-height: 34px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #334155;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(15, 23, 42, .05);
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
  white-space: nowrap;
}

.life-kpi-tab:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(15, 23, 42, .07);
}

.life-kpi-tab:active {
  transform: translateY(0);
}

.life-kpi-tab.is-active {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border-color: rgba(255,255,255,1);
  box-shadow:
    0 0 0 2px rgba(255,255,255,.9) inset,
    0 6px 16px rgba(15, 23, 42, .08);
}

.life-kpi-tab__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--tab-color, #94a3b8);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--tab-color, #94a3b8) 18%, transparent);
}

.life-kpi-tab__label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .01em;
}

/* パネル */
.life-kpi-panels {
  margin-top: 2px;
}

.life-kpi-panel[hidden] {
  display: none !important;
}

/* 未実装プレースホルダ */
.kpi-placeholder {
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.92);
  background: linear-gradient(180deg, #ffffff 0%, #f7f8fb 100%);
  box-shadow: 0 8px 18px rgba(15,23,42,.05);
  padding: 14px;
}

.kpi-placeholder-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.kpi-placeholder-title {
  margin: 0;
  font-size: 14px;
  font-weight: 900;
  color: #111827;
}

.kpi-placeholder-chip {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
}

.kpi-placeholder-body {
  border-radius: 12px;
  background: #fff;
  border: 1px solid #eef2f7;
  padding: 10px;
  color: #475569;
  font-size: 12px;
  line-height: 1.55;
}

.kpi-placeholder-body b {
  color: #0f172a;
}

.kpi-placeholder-meta {
  margin-top: 8px;
  display: grid;
  gap: 6px;
}

.kpi-placeholder-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: #64748b;
  font-size: 11px;
}

.kpi-placeholder-row .dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #cbd5e1;
  flex: 0 0 auto;
}

.kpi-placeholder-row .txt {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}