/* G1-D SIMULATION surface. Uses shared.css design tokens only. */
.simulation-page{min-width:0;max-width:100%}
.simulation-hero .lede{max-width:70ch}
.simulation-hero .eyebrow{color:var(--teal);letter-spacing:.12em;font-weight:700;margin:0 0 8px}

.boundary-warning{margin:20px 0;padding:16px 18px;border:1px solid var(--amber);
  border-left-width:4px;background:rgba(232,163,61,.08);border-radius:4px;max-width:80ch}
.boundary-warning p{margin:0 0 8px}
.boundary-warning p:last-child{margin-bottom:0}

.badge-row{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;
  max-width:100%;min-width:0}
/* 長い開示ラベルでも viewport を超えないよう折り返す。 */
.badge{padding:4px 10px;border:1px solid var(--line);border-radius:999px;
  background:var(--panel);color:var(--muted);font-size:13px;
  max-width:100%;min-width:0;overflow-wrap:anywhere}

.status-line{margin:16px 0 0;color:var(--muted)}
.status-line[data-state="ready"]{color:var(--success)}
.status-line[data-state="partial_error"]{color:var(--amber)}
.status-line[data-state="fatal_error"]{color:var(--error)}

.retry-button{margin-top:12px;padding:8px 16px;border:1px solid var(--line);
  border-radius:4px;background:var(--panel);color:var(--text);cursor:pointer}
.retry-button:hover{border-color:var(--teal)}

.section-nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.section-nav a{padding:6px 12px;border:1px solid var(--line);border-radius:4px;
  text-decoration:none;color:var(--text);background:var(--panel);max-width:100%;overflow-wrap:anywhere}
.section-nav a:hover{border-color:var(--teal)}

.section-note{color:var(--muted);max-width:80ch}
.section-state{margin:12px 0;color:var(--muted)}
.section-state[data-state="ready"]{color:var(--success)}
.section-state[data-state="error"]{color:var(--error)}

.error-panel{margin:12px 0;padding:16px;border:1px solid var(--error);
  border-left-width:4px;background:rgba(214,107,107,.08);border-radius:4px;max-width:80ch}
.error-panel h4{margin:0 0 8px}
.error-panel dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0}
.error-panel dt{color:var(--muted);overflow-wrap:anywhere;min-width:0}
.error-panel dd{margin:0;word-break:break-word}

.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:12px;margin:16px 0}
.kpi{padding:14px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}
.kpi .kpi-label{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}
.kpi .kpi-value{display:block;font-size:20px;font-weight:700;word-break:break-word}

.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
  gap:16px;margin:20px 0}
.chart-panel{margin:0;padding:16px;border:1px solid var(--line);border-radius:4px;
  background:var(--panel);min-width:0}
.chart-title{font-weight:700;margin-bottom:4px}
.chart-note{margin:0 0 10px;color:var(--muted);font-size:13px}
.chart-canvas{width:100%;min-width:0}
.chart-canvas svg{display:block;width:100%;height:auto;max-width:100%;overflow:visible}
.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;padding:0;list-style:none}
.chart-legend li{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.chart-legend .swatch{width:22px;height:0;border-top-width:3px;border-top-style:solid;flex:0 0 auto}
.chart-empty{color:var(--muted);padding:12px 0}

.status-block{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0;
  padding:14px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}
.status-block dt{color:var(--muted);overflow-wrap:anywhere;min-width:0}
.status-block dd{margin:0;word-break:break-word}

.assumption-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:10px;margin:12px 0}
.assumption{padding:12px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}
.assumption .assumption-name{display:block;color:var(--muted);font-size:13px;word-break:break-word}
.assumption .assumption-value{display:block;font-weight:700;word-break:break-word}

.unmodelled-list{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:12px 0;list-style:none}
.unmodelled-list li{padding:4px 10px;border:1px solid var(--line);border-radius:999px;
  background:var(--panel);color:var(--muted);font-size:13px}

.download-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:12px;margin:16px 0}
.download-card{padding:14px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}
.download-card b{display:block;margin-bottom:4px}
.download-card .download-kind{display:block;color:var(--muted);font-size:13px;margin-bottom:10px}
.download-card .download-links{display:flex;gap:10px;flex-wrap:wrap}
.download-card a{padding:6px 12px;border:1px solid var(--line);border-radius:4px;
  text-decoration:none;background:var(--ink-soft)}
.download-card a:hover{border-color:var(--teal)}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;
  border:1px solid var(--line);border-radius:4px}
.simulation-page .data-table{width:100%;border-collapse:collapse;font-size:14px}
.simulation-page .data-table caption{text-align:left;padding:10px 12px;color:var(--muted);font-size:13px}
.simulation-page .data-table th,.simulation-page .data-table td{
  padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.simulation-page .data-table th:first-child,.simulation-page .data-table td:first-child{text-align:left}
.simulation-page .data-table thead th{position:sticky;top:0;background:var(--ink-soft);
  color:var(--muted);font-weight:700;z-index:1}
.simulation-page .data-table td.status-cell{text-align:left}
.metric-outcome{padding:2px 8px;border:1px solid var(--line);border-radius:999px;font-size:12px}
.metric-outcome[data-outcome="model_better"]{color:var(--success);border-color:var(--success)}
.metric-outcome[data-outcome="baseline_better"]{color:var(--amber);border-color:var(--amber)}
.metric-outcome[data-outcome="not_applicable"]{color:var(--muted)}

@media (max-width:1099px){
  .chart-grid{grid-template-columns:1fr}
  .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
}
@media (max-width:767px){
  .simulation-page .band-inner{padding-left:16px;padding-right:16px}
  .chart-panel{padding:12px}
  .download-grid{grid-template-columns:1fr}
  .assumption-grid{grid-template-columns:1fr}
  .status-block{grid-template-columns:1fr}
  .status-block dt{margin-top:6px}
}
@media (max-width:560px){
  .kpi-grid{grid-template-columns:1fr}
  .section-nav{gap:8px}
  .section-nav a{padding:6px 10px;font-size:14px}
  .badge{font-size:12px}
  .simulation-page .data-table{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .simulation-page *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
