:root{--color-bg:#0f1115;--color-surface:#1a1d24;--color-border:#2a2e37;--color-text:#f4f4f6;--color-muted:#9a9ea8;--color-accent:#4f8cff;--radius:14px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:system-ui,sans-serif}.screen{min-height:100dvh;display:flex;flex-direction:column;padding-inline:20px;padding-block:24px 40px;max-width:480px;margin-inline:auto}.step-indicator{display:flex;gap:8px;-webkit-margin-after:28px;margin-block-end:28px}.step-dot{flex:1 1;height:4px;border-radius:999px;background:var(--color-border)}.step-dot.active{background:var(--color-accent)}.step-dot.done{background:var(--color-muted)}.title{font-size:22px;font-weight:650;-webkit-margin-after:8px;margin-block-end:8px}.subtitle{font-size:14px;line-height:1.5}.capture-frame,.subtitle{color:var(--color-muted);-webkit-margin-after:24px;margin-block-end:24px}.capture-frame{border:2px dashed var(--color-border);border-radius:var(--radius);aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:var(--color-surface)}.field-row{display:flex;justify-content:space-between;padding-block:12px;-webkit-border-after:1px solid var(--color-border);border-block-end:1px solid var(--color-border);font-size:14px}.field-label,.signature-pad{color:var(--color-muted)}.signature-pad{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);height:160px;display:flex;align-items:center;justify-content:center;-webkit-margin-after:24px;margin-block-end:24px}.primary-button{background:var(--color-accent);color:white;border:none;border-radius:999px;padding-block:14px;font-size:16px;font-weight:600;cursor:pointer;-webkit-margin-before:auto;margin-block-start:auto}.primary-button:disabled{opacity:.5;cursor:not-allowed}.secondary-text{text-align:center;color:var(--color-muted);font-size:13px;-webkit-margin-before:12px;margin-block-start:12px}.form{gap:12px}.field,.form{display:flex;flex-direction:column}.field{gap:6px;font-size:14px}.field span{color:var(--color-muted)}.field input{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.error,.field input{border-radius:10px;padding:12px}.error{color:#ff8a8a;background:rgba(255,80,80,.12);-webkit-margin-after:16px;margin-block-end:16px}.link-button{background:none;border:none;color:var(--color-muted);-webkit-margin-before:12px;margin-block-start:12px;cursor:pointer}.upload-label{cursor:pointer;padding:16px;text-align:center}.guest-list{display:flex;flex-direction:column;gap:12px}