:root{color:#17201d;background:#f4f6f4;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-height:100%;background:#f4f6f4}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.page-shell{display:grid;width:min(100%,680px);min-height:100vh;margin:0 auto;grid-template-rows:auto 1fr auto;gap:16px;padding:max(14px,env(safe-area-inset-top)) 14px max(20px,env(safe-area-inset-bottom))}.brand-header{display:flex;align-items:center;gap:10px;color:#59625f;font-size:14px}.brand-mark{border-radius:8px;padding:7px 9px;background:#dfece6;color:#164c3d;font-weight:700;letter-spacing:.08em}.content-card,.state-card{align-self:start;border:1px solid #e1e5e2;border-radius:16px;padding:22px 18px;background:#fff;box-shadow:0 10px 32px #1b2f280f}.content-card{display:grid;gap:17px}.content-card h1,.state-card h1,.content-card p,.state-card p{margin:0}.content-card h1,.state-card h1{font-size:clamp(23px,6vw,30px);font-weight:650;letter-spacing:-.03em}.lead{color:#65706c;font-size:14px;line-height:1.65}.lead strong{color:#17201d}.step-label{justify-self:start;border-radius:999px;padding:5px 9px;background:#edf4f1;color:#286a58;font-size:12px;font-weight:600}.invite-summary{border:1px solid #d9e9e2;border-radius:10px;padding:11px 12px;background:#f4f9f7;color:#286a58;font-size:13px}label{display:grid;gap:7px;color:#47514e;font-size:13px;font-weight:550}input,textarea{width:100%;border:1px solid #d7ddda;border-radius:10px;padding:12px 13px;outline:0;background:#fff;color:#17201d;font-size:16px;transition:border-color .15s ease,box-shadow .15s ease}textarea{min-height:84px;resize:vertical}input:focus,textarea:focus{border-color:#4d8b79;box-shadow:0 0 0 3px #4d8b7921}input:disabled{background:#f3f5f4;color:#59625f}.otp-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.primary-button,.secondary-button{border:0;border-radius:10px;padding:12px 16px;cursor:pointer;font-weight:650}.primary-button{min-height:48px;background:#17201d;color:#fff}.secondary-button{min-height:46px;background:#e8efec;color:#245848;white-space:nowrap}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55}.debug-code{border-radius:8px;padding:10px 12px;background:#fff7dc;color:#785700;font-size:13px}.error-message{border-radius:8px;padding:10px 12px;background:#fff0ef;color:#a52a20;font-size:13px;line-height:1.5}.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.photo-field{position:relative}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.photo-picker{display:grid;min-height:180px;place-items:center;align-content:center;gap:6px;overflow:hidden;border:1px dashed #aebcb6;border-radius:12px;background:#f7f9f8;color:#2f6253;cursor:pointer}.photo-picker small{color:#78817e;font-weight:400}.photo-picker.selected{border-style:solid;background:#111}.photo-picker img{width:100%;max-height:340px;object-fit:contain}.consent-row{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:9px;color:#59625f;font-size:12px;font-weight:400;line-height:1.6}.consent-row input{width:18px;height:18px;margin:1px 0 0;accent-color:#245848}.state-card{display:grid;justify-items:center;align-self:center;gap:12px;padding-block:44px;text-align:center}.state-card p{max-width:420px;color:#65706c;line-height:1.7}.state-card small{max-width:420px;color:#89918e;line-height:1.6}.state-icon{display:grid;width:66px;height:66px;place-items:center;border-radius:50%;font-size:34px;font-weight:700}.state-icon.success{background:#dff3e9;color:#18704b}.state-icon.error{background:#fff0ef;color:#b42318}.spinner{width:44px;height:44px;border:4px solid #dbe5e1;border-top-color:#286a58;border-radius:50%;animation:spin .8s linear infinite}footer{display:flex;justify-content:center;gap:16px;color:#8a928f;font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:520px){.page-shell{padding-right:10px;padding-left:10px}.content-card,.state-card{border-radius:14px;padding:20px 15px}.otp-row,.two-columns{grid-template-columns:1fr}.secondary-button{width:100%}}
