
.sv-wrap { max-width: 1100px; margin: 0 auto; }
.sv-note { color: #555; }
.sv-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.sv-card { background: #fff; border: 1px solid #ddd; padding: 16px; border-radius: 6px; }
.sv-subcard { border: 1px dashed #ccc; padding: 12px; margin-top: 10px; border-radius: 6px; background: #fafafa; }
.sv-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-items: end; }
.sv-row.sv-radio { grid-template-columns: 1fr; gap: 8px; }
.sv-compact-table { display: grid; gap: 6px; }
.sv-compact-row { display: grid; grid-template-columns: 160px repeat(5, 1fr); gap: 6px; align-items: center; }
.sv-compact-row.sv-compact-head { font-weight: 600; }
.sv-compact-row input { width: 100%; }
.sv-btn { margin-top: 8px; }
.sv-btn.small { padding: 2px 8px; }
.sv-subtle { color: #666; font-size: 12px; }
.sv-errors { background: #fff3f3; border: 1px solid #f5c2c7; color: #842029; padding: 10px; border-radius: 4px; }
.sv-results p { margin: 6px 0; }
.sv-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sv-badge { display: inline-block; padding: 4px 8px; background: #eef; border: 1px solid #99c; border-radius: 4px; }
.sv-footnote { font-size: 12px; color: #666; }
@media (max-width: 900px) {
  .sv-row { grid-template-columns: 1fr; }
  .sv-compact-row { grid-template-columns: 120px repeat(3, 1fr); }
}
