/* Yield / Kernel — visual defaults from the Claude Component Kitchen. */
:root {
  --ds-font: "Hanken Grotesk", system-ui, sans-serif;
  --ds-text: #0c0d0e;
  --ds-text-secondary: #57605c;
  --ds-text-muted: #767e7a;
  --ds-shell: #0b1512;
  --ds-workspace: #f4f3f0;
  --ds-surface: #fff;
  --ds-subtle: #f9f8f6;
  --ds-line: #eeece8;
  --ds-border: #e6e4df;
  --ds-control-border: #c5c9c6;
  --ds-action: #d4522a;
  --ds-action-tint: #fdf5f0;
  --ds-success: #375c54;
  --ds-success-tint: #eef3f1;
  --ds-focus: #1477f8;
  --ds-focus-ring: 0 0 0 3px rgb(20 119 248 / 25%);
  --ds-radius-control: 6px;
  --ds-radius-input: 8px;
  --ds-radius-panel: 10px;
  --ds-space-1: 4px;
  --ds-space-2: 8px;
  --ds-space-3: 12px;
  --ds-space-4: 16px;
  --ds-space-6: 24px;
  --ds-space-8: 32px;
  --ds-space-12: 48px;
  --ds-shadow-soft:
    0 1px 2px rgba(20, 30, 26, 0.05), 0 8px 20px -12px rgba(20, 30, 26, 0.18);
  --ds-shadow-float:
    0 8px 32px rgb(11 21 18 / 14%), 0 1px 4px rgb(11 21 18 / 8%);
  --ds-panel-shadow: none;
  --ds-duration: 140ms;
}
.ds-theme {
  --ds-base-size: 18px;
  color: var(--ds-text);
  background: var(--ds-workspace);
  font: 400 var(--ds-base-size)/1.45 var(--ds-font);
  -webkit-font-smoothing: antialiased;
}
.ds-theme *,
.ds-theme *::before,
.ds-theme *::after {
  box-sizing: border-box;
}
.ds-theme [hidden] {
  display: none !important;
}
.ds-theme :where(button, input, select, textarea) {
  font: inherit;
  color: inherit;
}
.ds-theme :where(a) {
  color: var(--ds-text);
}
.ds-theme :where(a:hover) {
  color: var(--ds-action);
}
.ds-theme
  :where(
    button,
    input,
    select,
    textarea,
    a,
    summary,
    [tabindex]
  ):focus-visible {
  outline: 2px solid var(--ds-focus);
  outline-offset: 2px;
  box-shadow: var(--ds-focus-ring);
}
.ds-theme[data-finish="soft"] {
  --ds-panel-shadow: var(--ds-shadow-soft);
}
.ds-theme[data-text-size="large"] {
  --ds-base-size: 20px;
}
.ds-theme[data-reduced-motion="true"] {
  --ds-duration: 0ms;
}
.ds-title {
  margin: 0;
  font-size: calc(var(--ds-base-size) * 2);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.15;
}
.ds-heading {
  margin: 0;
  font-size: calc(var(--ds-base-size) * 1.556);
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.ds-panel-title {
  margin: 0;
  font-size: calc(var(--ds-base-size) * 1.222);
  font-weight: 600;
  line-height: 1.25;
}
.ds-secondary {
  color: var(--ds-text-secondary);
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-muted {
  color: var(--ds-text-muted);
  font-size: calc(var(--ds-base-size) * 5 / 6);
}
.ds-eyebrow {
  font-size: calc(var(--ds-base-size) * 0.778);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ds-text-muted);
}
.ds-number {
  font-variant-numeric: tabular-nums;
}
.ds-stack {
  display: flex;
  flex-direction: column;
  gap: var(--ds-space-4);
  min-width: 0;
}
.ds-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ds-space-3);
}
.ds-split {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ds-space-4);
  flex-wrap: wrap;
}
.ds-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: var(--ds-space-6);
}
.ds-panel {
  background: var(--ds-surface);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-panel);
  box-shadow: var(--ds-panel-shadow);
  min-width: 0;
}
.ds-panel-header,
.ds-panel-body {
  padding: 24px 28px;
}
.ds-panel-header {
  border-bottom: 1px solid var(--ds-line);
}
.ds-panel-footer {
  padding: 16px 20px;
  border-top: 1px solid var(--ds-line);
}
.ds-divider {
  border: 0;
  border-top: 1px solid var(--ds-line);
  margin: 0;
}
.ds-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 18px;
  border: 1px solid var(--ds-control-border);
  border-radius: var(--ds-radius-input);
  background: var(--ds-surface);
  font-size: calc(var(--ds-base-size) * 8 / 9);
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition:
    background var(--ds-duration),
    border-color var(--ds-duration);
}
.ds-button:hover {
  background: var(--ds-subtle);
  border-color: var(--ds-shell);
  color: var(--ds-text);
}
.ds-button[data-variant="primary"] {
  background: var(--ds-action);
  border-color: transparent;
  color: #fff;
}
.ds-button[data-variant="primary"]:hover {
  background: #bf4722;
  border-color: transparent;
}
.ds-button[data-variant="quiet"] {
  padding-inline: 14px;
  color: var(--ds-text-secondary);
  background: transparent;
  border-color: transparent;
}
.ds-button[data-variant="quiet"]:hover {
  background: var(--ds-line);
}
.ds-button[data-variant="danger"] {
  color: var(--ds-action);
  border-color: var(--ds-action);
}
.ds-button[data-variant="danger"]:hover {
  background: var(--ds-action);
  color: #fff;
}
.ds-button[data-size="small"] {
  height: 36px;
  padding: 0 14px;
  border-radius: var(--ds-radius-control);
  font-size: calc(var(--ds-base-size) * 5 / 6);
}
.ds-button[data-icon-only] {
  width: 44px;
  padding: 8px;
}
.ds-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.ds-button[aria-busy="true"]::before {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: ds-spin 0.8s linear infinite;
}
.ds-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-label {
  font-weight: 600;
}
.ds-input,
.ds-select,
.ds-textarea {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid var(--ds-control-border);
  border-radius: var(--ds-radius-input);
  background: var(--ds-surface);
  font-size: inherit;
}
.ds-textarea {
  min-height: 104px;
  resize: vertical;
}
.ds-input:focus,
.ds-select:focus,
.ds-textarea:focus {
  border-color: var(--ds-shell);
}
.ds-input[aria-invalid="true"],
.ds-textarea[aria-invalid="true"] {
  border-color: var(--ds-action);
}
.ds-help {
  color: var(--ds-text-muted);
  font-size: 0.9375em;
}
.ds-error {
  color: var(--ds-action);
  font-size: 0.9375em;
}
.ds-input-group {
  display: flex;
  align-items: stretch;
}
.ds-input-group > span {
  display: flex;
  align-items: center;
  padding: 0 12px;
  background: var(--ds-subtle);
  border: 1px solid var(--ds-control-border);
  border-right: 0;
  border-radius: 8px 0 0 8px;
}
.ds-input-group > .ds-input {
  border-radius: 0 8px 8px 0;
}
.ds-input[data-numeric] {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ds-search {
  display: flex;
  align-items: center;
  position: relative;
}
.ds-search > .ds-input {
  padding-right: 44px;
}
.ds-search > button {
  position: absolute;
  right: 2px;
  min-height: 40px;
  width: 40px;
  padding: 4px;
}
.ds-choice {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  font-size: calc(var(--ds-base-size) * 8 / 9);
  cursor: pointer;
}
.ds-choice input {
  width: 22px;
  height: 22px;
  accent-color: var(--ds-shell);
  flex-shrink: 0;
}
.ds-switch {
  appearance: none;
  width: 46px !important;
  height: 26px !important;
  background: var(--ds-control-border);
  border-radius: 999px;
  position: relative;
  cursor: pointer;
}
.ds-switch::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: white;
  box-shadow: 0 1px 3px #0002;
  transition: transform var(--ds-duration);
}
.ds-switch:checked {
  background: var(--ds-action);
}
.ds-switch:checked::before {
  transform: translateX(20px);
}
.ds-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--ds-line);
  color: var(--ds-text-secondary);
  font-size: calc(var(--ds-base-size) * 0.778);
  font-weight: 600;
  white-space: nowrap;
}
.ds-badge[data-tone="success"] {
  background: var(--ds-success-tint);
  color: var(--ds-success);
}
.ds-badge[data-tone="attention"] {
  background: var(--ds-action-tint);
  color: var(--ds-action);
}
.ds-badge[data-tone="info"] {
  background: #eef4ff;
  color: #1465cc;
}
.ds-badge[data-dot]::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.ds-avatar {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ds-success-tint);
  color: var(--ds-success);
  font-size: calc(var(--ds-base-size) * 0.778);
  font-weight: 600;
  flex-shrink: 0;
}
.ds-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--ds-border);
  overflow-x: auto;
}
.ds-tab {
  padding: 12px;
  min-height: 44px;
  white-space: nowrap;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-size: calc(var(--ds-base-size) * 8 / 9);
  cursor: pointer;
  color: var(--ds-text-secondary);
}
.ds-tab[aria-selected="true"] {
  border-bottom-color: var(--ds-action);
  color: var(--ds-text);
  font-weight: 600;
}
.ds-segmented {
  display: inline-flex;
  padding: 4px;
  gap: 4px;
  border-radius: 8px;
  background: var(--ds-line);
}
.ds-segmented > button {
  border: 0;
  border-radius: 6px;
  min-height: 36px;
  padding: 6px 12px;
  background: transparent;
  cursor: pointer;
  font-size: calc(var(--ds-base-size) * 5 / 6);
}
.ds-segmented > button[aria-pressed="true"] {
  background: var(--ds-surface);
  box-shadow: 0 1px 3px #0001;
}
.ds-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 4px 0 12px;
  border: 1px solid var(--ds-control-border);
  border-radius: 6px;
  font-size: calc(var(--ds-base-size) * 5 / 6);
  background: #fff;
  min-height: 36px;
}
.ds-chip button {
  border: 0;
  background: none;
  width: 32px;
  height: 32px;
  cursor: pointer;
}
.ds-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: calc(var(--ds-base-size) * 5 / 6);
}
.ds-breadcrumb li + li::before {
  content: "/";
  color: var(--ds-text-muted);
  margin-right: 8px;
}
.ds-breadcrumb a {
  color: var(--ds-text-secondary);
  text-decoration: none;
}
.ds-accordion {
  border-bottom: 1px solid var(--ds-border);
}
.ds-accordion summary {
  cursor: pointer;
  padding: 16px 0;
  font-weight: 600;
}
.ds-accordion > div {
  padding: 0 0 20px;
  color: var(--ds-text-secondary);
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-table-scroll {
  overflow-x: auto;
}
.ds-table {
  width: 100%;
  border-collapse: collapse;
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-table th {
  text-align: left;
  font-size: 0.875em;
  color: var(--ds-text-muted);
  font-weight: 500;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.ds-table :where(td, th) {
  padding: 14px 16px;
  border-bottom: 1px solid var(--ds-line);
  vertical-align: middle;
}
.ds-table th button {
  font: inherit;
  text-transform: inherit;
  color: inherit;
  border: 0;
  background: transparent;
  padding: 0;
  min-height: 32px;
  cursor: pointer;
}
.ds-table [data-align="right"] {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ds-table tr[aria-selected="true"] {
  background: var(--ds-success-tint);
}
.ds-table tbody tr:last-child td {
  border-bottom: 0;
}
.ds-list-row {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--ds-line);
}
.ds-list-row:last-child {
  border-bottom: 0;
}
.ds-alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border: 1px solid var(--ds-border);
  border-left: 3px solid var(--ds-focus);
  border-radius: 8px;
  padding: 16px 20px;
  background: #eef4ff;
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-alert[data-tone="success"] {
  background: var(--ds-success-tint);
  border-left-color: var(--ds-success);
}
.ds-alert[data-tone="attention"],
.ds-alert[data-tone="error"] {
  background: var(--ds-action-tint);
  border-left-color: var(--ds-action);
}
.ds-empty {
  text-align: center;
  padding: 48px 24px;
  display: grid;
  justify-items: center;
  gap: 12px;
}
.ds-empty p {
  margin: 0;
  max-width: 42ch;
  color: var(--ds-text-secondary);
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-progress {
  appearance: none;
  width: 100%;
  height: 6px;
  border: 0;
  border-radius: 999px;
  overflow: hidden;
  background: var(--ds-line);
  accent-color: var(--ds-success);
}
.ds-progress::-webkit-progress-bar {
  background: var(--ds-line);
}
.ds-progress::-webkit-progress-value {
  background: var(--ds-success);
}
.ds-progress::-moz-progress-bar {
  background: var(--ds-success);
}
.ds-skeleton {
  height: 16px;
  border-radius: 4px;
  background: var(--ds-line);
  animation: ds-pulse 1.8s ease-in-out infinite;
}
.ds-dialog {
  color: var(--ds-text);
  font: inherit;
  border: 1px solid var(--ds-border);
  border-radius: 12px;
  background: var(--ds-surface);
  padding: 28px;
  width: min(480px, calc(100% - 32px));
  max-height: calc(100dvh - 32px);
  overflow: auto;
  box-shadow: var(--ds-shadow-float);
}
.ds-dialog::backdrop {
  background: rgb(11 21 18 / 35%);
}
.ds-dialog[data-drawer] {
  margin: 0 0 0 auto;
  height: 100dvh;
  max-height: 100dvh;
  width: min(440px, 100%);
  border-radius: 0;
}
.ds-toast {
  position: fixed;
  z-index: 100;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  max-width: calc(100% - 32px);
  padding: 14px 20px;
  border-radius: 10px;
  color: #fff;
  background: var(--ds-shell);
  box-shadow: var(--ds-shadow-float);
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-tooltip {
  position: relative;
  display: inline-flex;
}
.ds-tooltip [role="tooltip"] {
  display: none;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 200px;
  max-width: 280px;
  background: var(--ds-shell);
  color: #fff;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: calc(var(--ds-base-size) * 0.778);
  z-index: 10;
}
.ds-tooltip:hover [role="tooltip"],
.ds-tooltip:focus-within [role="tooltip"] {
  display: block;
}
.ds-chart {
  width: 100%;
  display: block;
  overflow: visible;
}
.ds-chart text {
  font-family: var(--ds-font);
  font-size: 14px;
  fill: var(--ds-text-muted);
}
.ds-chart-line {
  fill: none;
  stroke: var(--ds-success);
  stroke-width: 2.5;
}
.ds-chart-grid {
  stroke: var(--ds-line);
  stroke-width: 1;
}
.ds-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@keyframes ds-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes ds-pulse {
  0%,
  100% {
    opacity: 0.55;
  }
  50% {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ds-theme {
    --ds-duration: 0ms;
  }
  .ds-theme *,
  .ds-theme *::before {
    animation: none !important;
    scroll-behavior: auto !important;
  }
}
.ds-theme[data-reduced-motion="true"] *,
.ds-theme[data-reduced-motion="true"] *::before {
  animation: none !important;
}
@media (max-width: 700px) {
  .ds-panel-header,
  .ds-panel-body {
    padding: 20px;
  }
  .ds-table :where(td, th) {
    padding: 12px;
  }
}
.ds-combobox {
  position: relative;
}
.ds-options {
  position: absolute;
  top: 70px;
  left: 0;
  right: 0;
  max-height: 240px;
  overflow-y: auto;
  margin: 0;
  padding: 4px;
  list-style: none;
  border: 1px solid var(--ds-border);
  border-radius: 8px;
  background: var(--ds-surface);
  box-shadow: var(--ds-shadow-float);
  z-index: 10;
}
.ds-option {
  padding: 10px 12px;
  border-radius: 4px;
  cursor: pointer;
}
.ds-option:hover,
.ds-option[aria-selected="true"] {
  background: var(--ds-line);
}
.ds-table-filters {
  padding: 0 20px;
  border-bottom: 1px solid var(--ds-line);
  gap: 0;
}
.ds-table-filters .ds-button {
  border-radius: 0;
  border-bottom: 2px solid transparent;
  font-weight: 400;
}
.ds-table-filters .ds-button[aria-pressed="true"] {
  border-bottom-color: var(--ds-action);
  font-weight: 600;
}
.ds-table-selection {
  background: var(--ds-success-tint);
  padding: 8px 20px;
  font-size: calc(var(--ds-base-size) * 8 / 9);
}
.ds-table-checkbox {
  width: 22px;
  height: 22px;
  accent-color: var(--ds-shell);
  cursor: pointer;
}
.ds-table td.ds-empty {
  display: table-cell;
  text-align: center;
  padding: 32px;
}
.ds-table td.ds-empty > button {
  margin-left: 16px;
}
.ds-chart-key {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  display: inline-block;
}
.ds-bars {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  min-height: 236px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.ds-bar-column {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 44px;
}
.ds-bar-stack {
  display: flex;
  flex-direction: column-reverse;
  width: min(100%, 64px);
  border-radius: 4px 4px 0 0;
  overflow: hidden;
}
.ds-donut {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.ds-donut > span {
  display: grid;
  place-items: center;
  width: 116px;
  height: 116px;
  border-radius: 50%;
  background: var(--ds-surface);
  font-size: 1.55em;
  font-weight: 600;
}
.ds-breakdown-values {
  flex: 1;
  min-width: 200px;
  margin: 0;
}
.ds-breakdown-values dd {
  margin: 0;
}
.ds-action-menu {
  position: relative;
  display: inline-block;
}
.ds-action-menu > summary {
  list-style: none;
}
.ds-action-menu > summary::-webkit-details-marker {
  display: none;
}
.ds-action-menu-items {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 200px;
  padding: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border: 1px solid var(--ds-border);
  border-radius: 8px;
  background: var(--ds-surface);
  box-shadow: var(--ds-shadow-float);
  z-index: 10;
}
.ds-action-menu-items > button {
  justify-content: flex-start;
  border: 0;
  font-weight: 400;
}
.ds-action-menu-items > button[data-variant="danger"] {
  border-top: 1px solid var(--ds-line);
  border-radius: 0;
}
.ds-error-slot {
  min-height: 1.45em;
}
