    .summary-card { cursor: pointer; }
    .summary-card.card-ready .count { color: var(--status-active); }
    .summary-card.card-setup_needed .count { color: var(--alert-warning); }
    .summary-card.card-restricted .count { color: var(--status-paused); }

    .ops-flow {
      display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: var(--space-md); margin-bottom: var(--space-xl);
    }
    .ops-step {
      display: flex; align-items: center; gap: var(--space-sm);
      min-height: 56px; padding: var(--space-lg);
      background: var(--bg-primary); border: 1px solid var(--border-default);
      border-radius: var(--radius-md); color: var(--text-primary);
      font-weight: 700; text-decoration: none;
    }
    .ops-step:hover { text-decoration: none; background: var(--bg-tertiary); }
    .ops-step span {
      display: inline-flex; align-items: center; justify-content: center;
      width: 24px; height: 24px; border-radius: var(--radius-full);
      background: var(--bg-tertiary); color: var(--text-secondary);
      font-size: 0.8125rem; flex-shrink: 0;
    }
    .ops-step-primary {
      background: var(--accent); border-color: var(--accent); color: #fff;
    }
    .ops-step-primary:hover { background: var(--accent-hover); color: #fff; }
    .ops-step-primary span { background: rgba(255,255,255,0.2); color: #fff; }
    .ops-section {
      margin-bottom: var(--space-xl);
    }
    .ops-section-header {
      display: flex; align-items: center; justify-content: space-between;
      gap: var(--space-md); margin-bottom: var(--space-sm);
    }
    .ops-section-header h2 {
      margin: 0; font-size: 0.875rem; color: var(--text-primary);
    }
    .ops-section-header a {
      font-size: 0.75rem; color: var(--text-tertiary);
    }
    .ops-summary-bar {
      margin-bottom: var(--space-sm);
    }
    .ops-footnote,
    .ops-loading {
      color: var(--text-tertiary); font-size: 0.8125rem;
    }
    .ops-pool-health-widget {
      margin-bottom: 0;
    }
    /* ── Pool Health Widget (v3 §12 / §14-2、4-band: ok / warning / emergency / critical) ── */
    .pool-health-widget {
      background: var(--bg-primary); border: 1px solid var(--border-default);
      border-radius: var(--radius-md); padding: var(--space-lg);
      margin-bottom: var(--space-xl);
    }
    .pool-health-header {
      display: flex; align-items: baseline; justify-content: space-between;
      margin-bottom: var(--space-md); gap: var(--space-md); flex-wrap: wrap;
    }
    .pool-health-header h2 {
      margin: 0; font-size: 0.875rem; font-weight: 600; color: var(--text-primary);
    }
    .pool-health-link {
      font-size: 0.75rem; color: var(--text-tertiary); text-decoration: none;
    }
    .pool-health-link:hover { color: var(--text-primary); text-decoration: underline; }
    .pool-health-overall {
      display: flex; gap: var(--space-xl); flex-wrap: wrap;
      font-size: 0.875rem; color: var(--text-secondary);
      margin-bottom: var(--space-md);
    }
    .pool-health-metric { display: flex; align-items: center; gap: var(--space-xs); }
    .pool-health-metric-num { font-size: 1.25rem; font-weight: 600; color: var(--text-primary); }
    .pool-health-metric-num.ph-ok        { color: var(--status-active); }
    .pool-health-metric-num.ph-warning   { color: var(--alert-warning); }
    .pool-health-metric-num.ph-emergency { color: var(--alert-warning); font-weight: 700; }
    .pool-health-metric-num.ph-critical  { color: var(--alert-critical); font-weight: 700; }
    .pool-health-metric-label { font-size: 0.6875rem; color: var(--text-tertiary);
      text-transform: uppercase; letter-spacing: 0.04em; }
    .pool-health-summary-row {
      font-size: 0.8125rem; color: var(--text-secondary);
      border-top: 1px solid var(--border-default); padding-top: var(--space-sm);
    }
    .pool-health-status-badge {
      display: inline-block; font-size: 0.625rem; font-weight: 600;
      padding: 2px 6px; border-radius: 2px; margin-left: var(--space-xs);
      text-transform: uppercase; letter-spacing: 0.02em; vertical-align: middle;
    }
    .pool-health-status-badge.ph-ok        { background: var(--status-active-bg);  color: var(--status-active); }
    .pool-health-status-badge.ph-warning   { background: var(--alert-warning-bg);  color: var(--alert-warning); }
    .pool-health-status-badge.ph-emergency { background: var(--alert-warning-bg);  color: var(--alert-warning); }
    .pool-health-status-badge.ph-critical  { background: var(--alert-critical-bg); color: var(--alert-critical); }
    .pool-health-critical-list {
      margin-top: var(--space-sm); padding: 0; list-style: none;
      font-size: 0.8125rem; color: var(--text-secondary);
    }
    .pool-health-critical-list li {
      padding: var(--space-xs) 0; display: flex; gap: var(--space-sm);
      border-top: 1px dashed var(--border-default);
    }
    .pool-health-critical-list li:first-child { border-top: none; }

    /* ── KPI banner (above-target indicator) ── */
    .kpi-banner {
      display: flex;
      align-items: center;
      gap: var(--space-sm);
      padding: var(--space-sm) var(--space-lg);
      background: var(--status-active-bg);
      border-radius: var(--radius-md);
      margin-bottom: var(--space-md);
      font-size: 0.875rem;
      color: var(--status-active);
    }
    .kpi-banner[hidden] { display: none; }

    /* ── Advanced panel (collapsible) for less-common dashboard widgets ── */
    .advanced-panel {
      margin-top: var(--space-xl);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-md);
      background: var(--bg-primary);
    }
    .advanced-summary {
      cursor: pointer;
      padding: var(--space-md) var(--space-lg);
      font-weight: 600;
      font-size: 0.875rem;
      color: var(--text-primary);
      list-style: none;
      user-select: none;
    }
    .advanced-summary::-webkit-details-marker { display: none; }
    .advanced-summary::before {
      content: "▸ ";
      display: inline-block;
      transition: transform 0.15s ease;
      margin-right: 4px;
    }
    .advanced-panel[open] .advanced-summary::before {
      transform: rotate(90deg);
    }
    .advanced-section {
      padding: var(--space-md) var(--space-lg) var(--space-lg);
      border-top: 1px solid var(--border-default);
    }
    .advanced-loading {
      font-size: 0.8125rem;
      color: var(--text-tertiary);
    }

    /* ── KPI trend panel ── */
    .kpi-trend-panel {
      background: var(--bg-secondary);
      border: 1px solid var(--border-default);
      border-radius: var(--radius-md);
      padding: var(--space-lg);
    }
    .kpi-trend-title {
      font-size: 0.875rem;
      font-weight: 600;
      color: var(--text-primary);
      margin-bottom: var(--space-sm);
    }

    /* ── BAN checklist modal styles (CSP, no inline) ── */
    .ban-checklist-modal-box { max-width: 520px; }
    .ban-checklist-intro {
      font-size: 0.875rem;
      color: var(--text-secondary);
      margin-bottom: var(--space-lg);
    }
    .ban-checklist-list {
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
    }
    .ban-checklist-item {
      display: flex;
      align-items: center;
      gap: var(--space-sm);
      font-size: 0.875rem;
      cursor: pointer;
    }

    @media (max-width: 720px) {
      .ops-flow { grid-template-columns: 1fr; }
    }

    /* ── Iter5-F2 T2 / T3: alert-pane bulk-dismiss + inline resume ── */
    .btn-bulk-dismiss-alerts {
      margin-left: auto;
      padding: 4px 12px;
      font-size: 0.75rem;
    }
    .btn-bulk-dismiss-alerts.hidden { display: none; }
    .alert-panel-note {
      font-size: 0.6875rem;
      color: var(--text-tertiary);
      padding: var(--space-xs) var(--space-lg);
      margin: 0;
      border-bottom: 1px solid var(--border-default);
    }
    .alert-panel-note[hidden] { display: none; }
    .btn-resume-inline {
      background: transparent;
      color: var(--accent, #3a6db0);
      border: 1px solid var(--accent, #3a6db0);
      border-radius: var(--radius-sm);
      padding: 2px 8px;
      font-size: 0.6875rem;
      font-weight: 500;
      cursor: pointer;
      white-space: nowrap;
      margin-right: var(--space-xs);
    }
    .btn-resume-inline:hover {
      background: var(--accent, #3a6db0);
      color: #fff;
    }

    /* ── Iter3-Z: V3 §14-3 アポ獲得通知 section ── */
    .appt-notify-section[hidden] { display: none; }
    .appt-notify-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-md);
    }
    .appt-notify-card {
      background: var(--bg-primary);
      border: 1px solid var(--status-active);
      border-left-width: 3px;
      border-radius: var(--radius-md);
      padding: var(--space-md) var(--space-lg);
    }
    .appt-notify-header {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: var(--space-md);
      flex-wrap: wrap;
      margin-bottom: var(--space-sm);
    }
    .appt-notify-title {
      font-size: 1rem;
      font-weight: 600;
      color: var(--status-active);
    }
    .appt-notify-meta {
      font-size: 0.75rem;
      color: var(--text-tertiary);
    }
    .appt-notify-fields {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: var(--space-xs) var(--space-md);
      margin-bottom: var(--space-sm);
      font-size: 0.8125rem;
    }
    .appt-notify-row {
      display: flex;
      gap: var(--space-sm);
      align-items: baseline;
      padding: 2px 0;
    }
    .appt-notify-label {
      color: var(--text-tertiary);
      font-size: 0.6875rem;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      flex-shrink: 0;
      min-width: 88px;
    }
    .appt-notify-value {
      color: var(--text-primary);
      font-family: var(--font-number, var(--font-body));
      word-break: break-all;
    }
    .appt-notify-summary {
      margin-top: var(--space-sm);
      padding-top: var(--space-sm);
      border-top: 1px dashed var(--border-default);
    }
    .appt-notify-summary-label {
      font-size: 0.6875rem;
      font-weight: 600;
      color: var(--text-tertiary);
      letter-spacing: 0.04em;
      text-transform: uppercase;
      margin-bottom: 4px;
    }
    .appt-notify-summary-text {
      font-size: 0.8125rem;
      color: var(--text-secondary);
      line-height: 1.6;
      white-space: pre-wrap;
      word-break: break-word;
      max-height: 200px;
      overflow-y: auto;
    }
    @media (max-width: 720px) {
      .appt-notify-fields { grid-template-columns: 1fr; }
    }
