.field-group{background:var(--bg-elev);border:var(--btn-border) solid var(--line);border-radius:var(--radius-field);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.field-group:focus-within{border-color:rgba(255,174,100,.55);box-shadow:0 0 0 3px rgba(255,174,100,.07)}
.field{position:relative;display:flex;align-items:center}
.field + .field{border-top:1px solid var(--line)}
.field[hidden]{display:none}
.field.is-new{animation:field-in .35s var(--ease)}
.field input{width:100%;height:58px;padding:0 60px 0 20px;background:transparent;border:none;color:var(--text);font:600 1.05rem 'Nunito',sans-serif;outline:none}
.field input::placeholder{color:var(--dim);font-weight:500}
.field.has-eye input{padding-right:100px}
.go-btn,.eye-btn{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:50%;background:none;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.go-btn{right:11px;width:36px;height:36px;border:var(--btn-border) solid var(--line);color:var(--dim)}
.go-btn:hover{border-color:var(--accent);color:var(--accent)}
.go-btn.is-ready{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.go-btn[hidden]{display:none}
.go-btn:disabled{cursor:progress}
.go-btn svg{width:18px;height:18px}
.eye-btn{right:52px;width:36px;height:36px;border:none;color:var(--dim)}
.field.no-go .eye-btn{right:11px}
.eye-btn:hover{color:var(--text)}
.eye-btn svg{width:18px;height:18px}
.err-msg{display:none;margin-top:10px;padding-left:20px;font-size:.88rem;color:var(--err)}
.err-msg.show{display:block;animation:msg-in .2s var(--ease)}
.msg-box{display:none;margin-bottom:16px;padding:12px 18px;border-radius:14px;font-size:.92rem;font-weight:600;text-align:center}
.msg-box.show{display:block;animation:msg-in .2s var(--ease)}
.msg-box.ok{background:rgba(46,213,122,.1);color:var(--ok)}
.msg-box.fail{background:rgba(255,77,90,.1);color:var(--err)}
.check{display:flex;align-items:flex-start;gap:10px;color:var(--dim);font-size:.92rem;line-height:1.45;cursor:pointer;user-select:none;text-align:left}
.check input{position:absolute;opacity:0;pointer-events:none}
.check-box{width:20px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:7px;border:var(--btn-border) solid var(--line);background:var(--field-bg);transition:background .2s,border-color .2s}
.check input:checked + .check-box{background:var(--accent);border-color:var(--accent)}
.check input:checked + .check-box::after{content:'';width:9px;height:5px;border-left:2px solid var(--on-accent);border-bottom:2px solid var(--on-accent);transform:rotate(-45deg) translate(1px,-1px)}
.check input:focus-visible + .check-box{box-shadow:0 0 0 4px rgba(255,174,100,.2)}
.spin{animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes msg-in{from{opacity:0;transform:translateY(-4px)}}
@keyframes field-in{from{opacity:0;transform:translateY(-8px)}}
