:root{--ht-primary:#223558;--ht-secondary:#EEEFF2;--ht-text:#5c5c5c}
#ht-test-root{font-family:inherit;color:var(--ht-text)}
.ht-step{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:20px;margin:10px 0;box-sizing:border-box;overflow:hidden}
.ht-title{color:var(--ht-primary);font-weight:600;margin-bottom:8px}
.ht-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media(min-width:768px){.ht-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ht-card{border:1px solid #d1d5db;border-radius:16px;overflow:hidden;background:#fff;cursor:pointer;transition:box-shadow .2s,border-color .2s}
.ht-card input{display:none}
.ht-card img{display:block;width:100%;height:140px;object-fit:contain;background:#fff}
.ht-card .ht-label{padding:10px;text-align:center;color:var(--ht-text);font-size:14px}
.ht-card.selected{border-color:var(--ht-primary);box-shadow:0 0 0 3px rgba(34,53,88,.15)}

.ht-actions{display:flex;justify-content:space-between;margin-top:16px}
.ht-btn{border-radius:100px;border:none;background:var(--ht-primary);color:#fff;padding:12px 20px;font-weight:600;cursor:pointer;transition:background .2s}
.ht-btn:disabled{opacity:.5;cursor:not-allowed}
.ht-btn.secondary{background:var(--ht-secondary);color:var(--ht-primary)}
.ht-btn:hover{background:#5c5c5c}
.ht-btn.secondary:hover{background:#f0f2f6;color:var(--ht-primary)}

/* Visual toggle as image cards */
.ht-toggle{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:12px}
.ht-toggle .ht-choice{background:#fff;border:1px solid #d1d5db;border-radius:16px;padding:12px;text-align:center;cursor:pointer;color:var(--ht-text);border:2px solid transparent;transition:box-shadow .2s,border-color .2s}
.ht-toggle .ht-choice img{width:100%;height:110px;object-fit:contain;display:block;margin-bottom:8px}
.ht-toggle .ht-choice.active{border-color:var(--ht-primary);box-shadow:0 0 0 3px rgba(34,53,88,.15)}

.ht-field{margin:10px 0}
.ht-field label{display:block;color:var(--ht-text);font-size:16px;margin-bottom:6px}
.ht-input{width:100%;padding:12px 14px;border-radius:16px;border:1px solid #d1d5db;box-sizing:border-box}
.ht-consent{font-size:14px;color:var(--ht-text)}
.ht-progress{height:6px;background:#e5e7eb;border-radius:100px;overflow:hidden;margin-bottom:14px}
.ht-progress .bar{height:100%;background:var(--ht-primary);width:0}

/* Upload area */
.ht-upload{border:2px dashed #d1d5db;border-radius:16px;background:#fafafa;padding:16px;text-align:center;color:var(--ht-text);display:flex;align-items:center;justify-content:center;min-height:160px;width:100%;max-width:100%;box-sizing:border-box}
.ht-upload input{display:none}
.ht-upload.drag{border-color:var(--ht-primary);background:#f0f3f8}
.ht-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:12px}
.ht-thumb{position:relative;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff}
.ht-thumb img{width:100%;height:100px;object-fit:cover;display:block}
.ht-thumb .remove{position:absolute;top:6px;right:6px;border:none;background:#0008;color:#fff;border-radius:100px;width:24px;height:24px;cursor:pointer}

.ht-textarea{width:100%;min-height:100px;padding:12px 14px;border-radius:16px;border:1px solid #d1d5db;resize:vertical}
.ht-msg{margin-top:12px;padding:12px;border-radius:12px;font-size:14px}
.ht-msg.error{background:#fdecea;color:#b71c1c;border:1px solid #f5c2c7}
.ht-msg.success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}

.ht-zones svg{max-width:640px;width:100%;height:auto;display:block;margin:10px 0}
.ht-zones .zone{fill:transparent;stroke:#223558;stroke-width:2;cursor:pointer;transition:fill .15s, stroke .15s}
.ht-zones .zone:hover{stroke:#5c5c5c}
.ht-zones .zone.selected{fill:rgba(255, 213, 0, 0.35)}
