.policy-demo {
  box-sizing: border-box;
  color: var(--ink, #f2f1e9);
  background: var(--bg, #07110d);
  border: 1px solid var(--line, #26382d);
  padding: clamp(1.25rem, 4vw, 2rem);
  font-family: var(--sans, 'Space Grotesk', sans-serif);
  max-width: 100%;
}
.policy-demo *, .policy-demo *::before, .policy-demo *::after { box-sizing: border-box; }
.policy-demo button { cursor: pointer; font: inherit; color: inherit; border-radius: 0; }
.policy-demo button:focus-visible, .policy-demo input:focus-visible { outline: 2px solid var(--lime, #c3f85b); outline-offset: 5px; }
.policy-demo [hidden] { display: none !important; }
.policy-demo__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font: 0.625rem/1.5 var(--mono, 'IBM Plex Mono', monospace); letter-spacing: 0.12em; }
.policy-demo__header > span { color: var(--muted, #a4b1a5); }
.policy-demo__header button { background: transparent; border: 1px solid var(--line, #26382d); padding: 0.5rem 0.75rem; letter-spacing: 0; }
.policy-demo__header button[aria-pressed='true'] { border-color: var(--ink, #f2f1e9); }
.policy-demo__amount { margin-top: 2rem; display: flex; align-items: end; justify-content: space-between; gap: 0.75rem; }
.policy-demo__amount label { color: var(--muted, #a4b1a5); padding-bottom: 0.375rem; font-size: 0.8125rem; }
.policy-demo__amount output { display: flex; align-items: baseline; gap: 0.5rem; white-space: nowrap; }
.policy-demo__amount strong { font-weight: 500; font-size: 3rem; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -0.05em; }
.policy-demo__amount output > span { color: var(--muted, #a4b1a5); font: 0.6875rem var(--mono, 'IBM Plex Mono', monospace); }
.policy-demo__slider { display: block; width: 100%; height: 2rem; margin: 1rem 0 0.5rem; padding: 0; accent-color: var(--lime, #c3f85b); cursor: ew-resize; background: transparent; }
.policy-demo__presets { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.375rem; }
.policy-demo__presets button { padding: 0.625rem 0.125rem; background: var(--surface, #0b1812); border: 1px solid var(--line, #26382d); font: 0.75rem var(--mono, 'IBM Plex Mono', monospace); }
.policy-demo__presets button span { font-size: 0.5rem; color: var(--muted, #a4b1a5); }
.policy-demo__presets button[aria-pressed='true'] { border-color: var(--lime, #c3f85b); color: var(--lime, #c3f85b); }
.policy-demo__rules { margin: 1.75rem 0 0; }
.policy-demo__rule { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.75rem 0; border-top: 1px solid var(--line, #26382d); font-size: 0.75rem; line-height: 1.5; }
.policy-demo__rule dt { color: var(--muted, #a4b1a5); }
.policy-demo__rule dd { margin: 0; display: flex; align-items: center; gap: 0.75rem; text-align: right; }
.policy-demo__check { display: inline-flex; justify-content: center; width: 1rem; flex-shrink: 0; font: 1rem var(--mono, 'IBM Plex Mono', monospace); }
.policy-demo__check[data-result='pass'] { color: var(--lime, #c3f85b); }
.policy-demo__check[data-result='fail'] { color: var(--ink, #f2f1e9); }
.policy-demo__check[data-result='waiting'] { color: var(--muted, #a4b1a5); }
.policy-demo__check[data-result='neutral'] { color: var(--muted, #a4b1a5); }
.policy-demo__verdict { display: flex; gap: 0.75rem; border-top: 1px solid var(--line, #26382d); padding-top: 1.5rem; margin-top: 0.75rem; min-height: 7.5rem; }
.policy-demo__signal { width: 0.5rem; height: 0.5rem; flex: 0 0 0.5rem; margin-top: 0.5rem; background: var(--lime, #c3f85b); border-radius: 50%; }
.policy-demo[data-status='pending'] .policy-demo__signal { background: transparent; border: 1px solid var(--lime, #c3f85b); }
.policy-demo[data-status='blocked'] .policy-demo__signal { background: var(--muted, #a4b1a5); border-radius: 0; }
.policy-demo__status { margin: 0; font-size: 1.125rem; font-weight: 500; line-height: 1.35; letter-spacing: -0.025em; }
.policy-demo__reason { margin: 0.5rem 0 0; color: var(--muted, #a4b1a5); font-size: 0.75rem; line-height: 1.6; max-width: 42ch; }
.policy-demo__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0; }
.policy-demo__actions button { padding: 0.75rem; border: 1px solid var(--line, #26382d); background: transparent; font-size: 0.75rem; }
.policy-demo__actions [data-action='approve'] { color: var(--bg, #07110d); border-color: var(--lime, #c3f85b); background: var(--lime, #c3f85b); }
.policy-demo__note { margin: 1rem 0 0; color: var(--muted, #a4b1a5); font: 0.5625rem/1.65 var(--mono, 'IBM Plex Mono', monospace); }
@media (hover: hover) {
  .policy-demo button:hover { border-color: var(--ink, #f2f1e9); }
}
@media (max-width: 380px) {
  .policy-demo__rule { gap: 0.5rem; font-size: 0.6875rem; }
  .policy-demo__rule dd { gap: 0.375rem; }
  .policy-demo__presets button span { display: none; }
}
