.cq-wrap { max-width: 960px; margin: 0 auto; }
.cq-steps { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.cq-step-pill { flex: 1 1 calc(25% - 0.5rem); min-width: 7rem; text-align: center; padding: 0.5rem; border-radius: 0.5rem; background: #e2e8f0; color: #475569; font-size: 0.75rem; font-weight: 600; }
.cq-step-pill.is-active { background: #2563eb; color: #fff; }
.cq-step-pill.is-done { background: #dcfce7; color: #166534; }
.cq-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1.25rem; box-shadow: 0 8px 24px rgba(15,23,42,.06); }
.cq-panel { display: none; }
.cq-panel.is-active { display: block; }
.cq-field { margin-bottom: 1rem; }
.cq-label { display: flex; align-items: center; gap: 0.35rem; font-size: 0.875rem; font-weight: 600; color: #334155; margin-bottom: 0.35rem; }
.cq-input, .cq-select, .cq-textarea { width: 100%; border: 1px solid #cbd5e1; border-radius: 0.5rem; padding: 0.625rem 0.75rem; font-size: 0.875rem; }
.cq-textarea { min-height: 5rem; resize: vertical; }
.cq-grid-2 { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.cq-check-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.5rem; }
.cq-check { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; }
.cq-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: space-between; margin-top: 1.5rem; }
.cq-btn { border-radius: 0.5rem; padding: 0.625rem 1rem; font-size: 0.875rem; font-weight: 600; cursor: pointer; border: 1px solid transparent; }
.cq-btn-primary { background: #2563eb; color: #fff; }
.cq-btn-primary:disabled { opacity: 0.6; cursor: not-allowed; }
.cq-btn-secondary { background: #fff; border-color: #cbd5e1; color: #334155; }
.cq-validation { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; border-radius: 0.5rem; padding: 0.75rem; margin-bottom: 1rem; }
.cq-validation ul { margin: 0.25rem 0 0 1rem; }
.cq-summary dl { display: grid; grid-template-columns: 1fr; gap: 0.5rem; font-size: 0.875rem; }
.cq-summary dt { font-weight: 600; color: #64748b; }
.cq-status { font-size: 0.8125rem; color: #64748b; margin-top: 0.5rem; }
.cq-compare-grid { display: grid; gap: 1rem; }
.cq-option-card { border: 1px solid #e2e8f0; border-radius: 0.75rem; padding: 1rem; background: #fff; }
.cq-option-card.is-muted { opacity: 0.65; }
.cq-filters { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 1rem; align-items: end; }
.cq-disclaimer { font-size: 0.8125rem; color: #64748b; margin: 1rem 0; padding: 0.75rem; background: #f8fafc; border-radius: 0.5rem; }
.hidden { display: none !important; }
@media (min-width: 768px) {
    .cq-grid-2 { grid-template-columns: 1fr 1fr; }
    .cq-summary dl { grid-template-columns: 12rem 1fr; }
}
