/* Distribution Sandbox — client-side statistics explorer.
   Self-contained palette (navy/accent), kept separate from the theme so the
   applet reads as its own tool, like the Efron game pages. */
.ds-app {
  --ds-navy: #1e2761;
  --ds-blue: #2563eb;
  --ds-purple: #7c3aed;
  --ds-fence: var(--color-danger-hover);
  --ds-slate: var(--jmaths-gray-600);
  font-family: system-ui, -apple-system, sans-serif;
  max-width: 1100px;
  margin: 0 auto;
}

/* ---- controls bar ---- */
.ds-controls {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 12px;
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.ds-label {
  font-size: 12px;
  color: #6b7280;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.ds-spacer { flex: 1; }

.ds-toggle {
  padding: 5px 11px;
  font-size: 13px;
  background: #fff;
  color: #374151;
  border: 1px solid #d1d5db;
  border-radius: 5px;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.15s;
}
.ds-toggle--on { color: #fff; }
.ds-toggle--on.ds-toggle--mean { background: var(--ds-blue); border-color: var(--ds-blue); }
.ds-toggle--on.ds-toggle--median { background: var(--ds-purple); border-color: var(--ds-purple); }
.ds-toggle--on.ds-toggle--sd { background: var(--ds-navy); border-color: var(--ds-navy); }
.ds-toggle--on.ds-toggle--fence { background: var(--ds-fence); border-color: var(--ds-fence); }

.ds-preset {
  padding: 5px 10px;
  font-size: 12px;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  cursor: pointer;
  color: #374151;
}
.ds-preset--clear {
  background: #fef2f2;
  border-color: #fecaca;
  color: var(--ds-fence);
  font-weight: 600;
}

/* ---- canvas ---- */
.ds-canvas {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 12px;
}
.ds-svg {
  display: block;
  cursor: crosshair;
  user-select: none;
  background: var(--color-bg-subtle);
}
.ds-band-outer { fill: #cbd5e8; opacity: 0.45; }
.ds-band-inner { fill: #9eb6d6; opacity: 0.55; }
.ds-fence { stroke: var(--ds-fence); stroke-width: 1.5; stroke-dasharray: 5 4; }
.ds-fence-label { font-size: 10px; fill: var(--ds-fence); font-weight: 600; }
.ds-tick { stroke: #9ca3af; stroke-width: 1; }
.ds-tick-label { font-size: 11px; fill: #6b7280; }
.ds-axis { stroke: #374151; stroke-width: 1.5; }
.ds-mean-line { stroke: var(--ds-blue); stroke-width: 2.2; stroke-dasharray: 6 4; }
.ds-mean-label { font-size: 12px; fill: var(--ds-blue); font-weight: 700; }
.ds-median-line { stroke: var(--ds-purple); stroke-width: 2.2; stroke-dasharray: 2 4; }
.ds-median-label { font-size: 12px; fill: var(--ds-purple); font-weight: 700; }
.ds-dot {
  fill: var(--ds-navy);
  stroke: #fff;
  stroke-width: 1.8;
  cursor: grab;
}
.ds-dot--outlier { fill: var(--ds-fence); }
.ds-empty { font-size: 16px; fill: #9ca3af; }

/* ---- stats + challenges ---- */
.ds-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 720px) {
  .ds-grid { grid-template-columns: 1fr; }
}
.ds-panel {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 16px;
}
.ds-panel-title {
  font-size: 12px;
  color: #6b7280;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  margin-bottom: 10px;
}
.ds-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 24px;
}
.ds-stat-label {
  font-size: 11px;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  font-weight: 600;
}
.ds-stat-val {
  font-size: 22px;
  font-family: Georgia, serif;
  color: var(--ds-navy);
  font-weight: 700;
  margin-top: 2px;
}
.ds-stat-val--mean { color: var(--ds-blue); }
.ds-stat-val--median { color: var(--ds-purple); }
.ds-stat-val--sd { color: var(--ds-navy); }
.ds-stat-val--out { color: var(--ds-fence); }
.ds-note {
  margin-top: 14px;
  padding: 10px;
  background: #f0f9ff;
  border-radius: 6px;
  font-size: 12px;
  color: #0c4a6e;
}
.ds-challenges {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ds-challenge {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  padding: 8px;
  border-radius: 5px;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  color: #374151;
  transition: all 0.2s;
}
.ds-challenge--done {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #065f46;
}
.ds-check { font-size: 16px; line-height: 1; color: #9ca3af; }
.ds-challenge--done .ds-check { color: var(--color-success); }
.ds-challenge--done .ds-challenge-text { text-decoration: line-through; }
.ds-challenge-text { flex: 1; }

.ds-try {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 8px;
  padding: 14px;
  margin-top: 12px;
  font-size: 13px;
  color: #78350f;
}
.ds-try b { color: #92400e; }
