/* clamp width; no sideways pan */
html,body{max-width:100%;overflow-x:hidden}
.spike-wrap{max-width:900px;margin:24px auto;padding:18px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.06);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden}
.spike-wrap*,.spike-wrap *::before,.spike-wrap *::after{box-sizing:border-box}

/* steps look like headings */
.spike-steps{display:flex;gap:8px;margin-bottom:12px}
.spike-step{flex:1;text-align:center;padding:10px;border-radius:10px;background:#f1f5f9;font-weight:700}
.spike-step.is-active{background:#e0f2fe}
.spike-steps.headings{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;margin:0 0 1rem}
.spike-steps.headings .spike-step{background:transparent;border:none;box-shadow:none;padding:.25rem 0;cursor:default}
.spike-steps.headings .spike-step span{display:inline-block;font-weight:600;font-size:1rem;opacity:.6}
.spike-steps.headings .spike-step.is-active span{opacity:1;text-decoration:underline}

/* grid & fields */
.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
@media(max-width:768px){.grid{grid-template-columns:minmax(0,1fr)}}
.field label{display:block;font-weight:600;margin:6px 0;line-height:1.2}
.field label span{color:#000000}
.field input,.field textarea,.field select{width:100%;max-width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;font-size:16px}
.field textarea{min-height:84px;resize:vertical}
.field select{background:#fff;-webkit-appearance:none;appearance:none}

/* actions & buttons */
.actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px}
.btn{border:0;border-radius:10px;padding:12px 16px;background:#0ea5e9;color:#fff;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}
.btn.secondary{background:#64748b}.btn.small{padding:8px 10px;font-size:12px}

/* diagram & signature */
.diagram{border:1px solid #e2e8f0;border-radius:10px;padding:8px;background:#fafafa;overflow:hidden}
.toggle{display:flex;gap:8px;margin-bottom:8px}
.diagram-box{position:relative;max-width:600px;margin:auto}
.diagram-box img{display:block;width:100%;height:auto;max-height:60vh}
.diagram-box canvas{position:absolute;left:0;top:0;width:100%;height:100%}
.diagram svg{display:block;width:100%;height:auto;max-height:60vh}
#spike_sig{border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc;touch-action:none;width:100%;height:180px;display:block}

/* consent */
.consent-box{max-height:none;overflow:visible;border:1px solid #e2e8f0;padding:10px;border-radius:8px;background:#fafafa}
.consent-body h4{margin:.25rem 0 .5rem;font-size:1.05rem}
.consent-body h5{margin:.5rem 0 .25rem;font-size:.98rem}
.consent-body ul{margin:.25rem 0 .5rem .75rem}

/* section titles */
.section-title{margin:1.25rem 0 .5rem;font-size:1.05rem;font-weight:700}

/* checkbox chips — use grid (Safari-safe), never break inside */
.checks{display:flex;flex-wrap:wrap;gap:8px}
.checks label{display:inline-grid;grid-auto-flow:column;grid-auto-columns:max-content;align-items:center;column-gap:8px;white-space:nowrap}
.checks label input[type="checkbox"]{margin:0;width:18px;height:18px;-webkit-appearance:checkbox;appearance:checkbox;flex:0 0 auto}
.checks label .lbl{display:inline-block;line-height:1.2}
.checks input[type="text"]{padding:6px;border:1px solid #cbd5e1;border-radius:6px}

/* modal */
.spike-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:99999}
.spike-overlay .box{background:#fff;padding:16px 18px;border-radius:10px;max-width:460px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.25)}

/* mobile extras */
@media(max-width:640px){
  .spike-wrap{padding:14px}
  .spike-steps.headings{grid-template-columns:1fr;row-gap:4px}
  .actions{flex-wrap:wrap}
}

/* safety */
.spike-wrap img,.spike-wrap canvas,.spike-wrap svg,.spike-wrap video{max-width:100%}
.spike-invalid{border-color:#ef4444}
