.input,.textarea{width:100%;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-color);font-size:var(--p2-size);font-family:var(--font-primary);transition:all .2s ease;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::-moz-placeholder,.textarea::-moz-placeholder{color:var(--text-quaternary-color)}.input::placeholder,.textarea::placeholder{color:var(--text-quaternary-color)}.input:disabled,.textarea:disabled{opacity:.5;cursor:not-allowed;background:var(--card-bg-secondary)}@media(hover:hover)and (pointer:fine){.input:hover:not(:disabled):not(:focus):not(:focus-visible):not(:focus-within),.textarea:hover:not(:disabled):not(:focus):not(:focus-visible):not(:focus-within){border-color:var(--input-border-hover);background:var(--input-bg-hover)}}.input:focus,.input:focus-visible,.input:focus-within,.textarea:focus,.textarea:focus-visible,.textarea:focus-within{border-color:var(--input-border-focus)!important;background:var(--input-bg-focus)!important}.textarea{height:auto;min-height:clamp(80px,15vw,120px);resize:vertical;line-height:1.5}.input-h-xs{height:var(--input-h-xs)}.input-h-s{height:var(--input-h-s)}.input-h-m{height:var(--input-h-m)}.input-h-l{height:var(--input-h-l)}.input-px-xs{padding-left:clamp(8px,1.2vw,12px);padding-right:clamp(8px,1.2vw,12px)}.input-px-s{padding-left:clamp(10px,1.4vw,14px);padding-right:clamp(10px,1.4vw,14px)}.input-px-m{padding-left:clamp(12px,1.5vw,16px);padding-right:clamp(12px,1.5vw,16px)}.input-px-l{padding-left:clamp(14px,1.8vw,18px);padding-right:clamp(14px,1.8vw,18px)}.input-px-xl{padding-left:clamp(16px,2vw,20px);padding-right:clamp(16px,2vw,20px)}.input-px-xxl{padding-left:clamp(18px,2.2vw,24px);padding-right:clamp(18px,2.2vw,24px)}.textarea-p-xs{padding:clamp(8px,1.2vw,10px) clamp(8px,1.2vw,12px)}.textarea-p-s{padding:clamp(10px,1.4vw,12px) clamp(10px,1.4vw,14px)}.textarea-p-m{padding:clamp(10px,1.5vw,14px) clamp(12px,1.5vw,16px)}.textarea-p-l{padding:clamp(12px,1.8vw,16px) clamp(14px,1.8vw,18px)}.textarea-p-xl{padding:clamp(14px,2vw,18px) clamp(16px,2vw,20px)}.textarea-p-xxl{padding:clamp(16px,2.2vw,20px) clamp(18px,2.2vw,24px)}.input-text-xs{font-size:var(--p4-size)}.input-text-s{font-size:var(--p3-size)}.input-text-m{font-size:var(--p2-size)}.input-text-l{font-size:var(--p1-size)}.input-br-xs{border-radius:var(--btn-r-xs)}.input-br-s{border-radius:var(--btn-r-s)}.input-br-m{border-radius:var(--btn-r-m)}.input-br-l{border-radius:var(--btn-r-l)}.input-br-xl{border-radius:var(--btn-r-xl)}.input-br-xxl{border-radius:var(--btn-r-xxl)}.textarea-resize-xs::-webkit-resizer{border-radius:0 0 var(--card-br-xs) 0}.textarea-resize-s::-webkit-resizer{border-radius:0 0 var(--card-br-s) 0}.textarea-resize-m::-webkit-resizer{border-radius:0 0 var(--card-br-m) 0}.textarea-resize-l::-webkit-resizer{border-radius:0 0 var(--card-br-l) 0}.textarea-resize-xl::-webkit-resizer{border-radius:0 0 var(--card-br-xl) 0}.textarea-resize-xxl::-webkit-resizer{border-radius:0 0 var(--card-br-xxl) 0}.input-error,.input-error:focus{border-color:#ff1e1e}.input-error:focus{box-shadow:0 0 0 3px rgba(255,30,30,.1)}.input-success{border-color:#2ecc40}.input-success:focus{border-color:#2ecc40;box-shadow:0 0 0 3px rgba(46,204,64,.1)}.select{width:100%;border:1px solid var(--input-border);background:var(--select-bg);color:var(--text-color);font-size:var(--p2-size);font-family:var(--font-primary);transition:all .2s ease;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right clamp(12px,1.5vw,16px) center}.select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--card-bg-secondary)}@media(hover:hover)and (pointer:fine){.select:hover:not(:disabled):not(:focus){border-color:var(--input-border-hover);background-color:var(--input-bg-hover)}}.select:focus{border-color:var(--input-border-focus);background-color:var(--input-bg-focus)}.select-xs{height:var(--input-h-xs);padding:0 clamp(28px,3.5vw,32px) 0 clamp(8px,1.2vw,12px);background-size:10px;background-position:right clamp(8px,1.2vw,12px) center}.select-s,.select-xs{font-size:var(--p3-size)}.select-s{height:var(--input-h-s);padding:0 clamp(30px,3.8vw,36px) 0 clamp(10px,1.4vw,14px);background-size:11px;background-position:right clamp(10px,1.4vw,14px) center}.select-m{height:var(--input-h-m);font-size:var(--p2-size);padding:0 clamp(32px,4vw,40px) 0 clamp(12px,1.5vw,16px)}.select-l{height:var(--input-h-l);font-size:var(--p1-size);padding:0 clamp(36px,4.5vw,44px) 0 clamp(14px,1.8vw,18px);background-size:13px;background-position:right clamp(14px,1.8vw,18px) center}.input-wrapper{position:relative;display:inline-block;width:100%}.input-icon{position:absolute;top:50%;transform:translateY(-50%);color:var(--text-tertiary-color);pointer-events:none;display:flex;align-items:center;justify-content:center}.input-icon-left{left:clamp(10px,1.5vw,14px)}.input-icon-right{right:clamp(10px,1.5vw,14px)}.input-with-icon-left{padding-left:clamp(36px,5vw,44px)}.input-with-icon-right{padding-right:clamp(36px,5vw,44px)}.form-label{display:block;margin-bottom:clamp(6px,1vw,8px);color:var(--text-color);font-size:var(--p2-size);font-weight:500}.form-helper-text{color:var(--text-secondary-color)}.form-error-text,.form-helper-text{display:block;margin-top:clamp(4px,.8vw,6px);font-size:var(--p3-size)}.form-error-text{color:#ff1e1e}.checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:clamp(18px,2.2vw,20px);height:clamp(18px,2.2vw,20px);border:1.5px solid var(--input-border);border-radius:var(--card-br-xs);background:rgba(0,0,0,0);cursor:pointer;position:relative;transition:all .2s ease;flex-shrink:0;outline:none;margin:0}.checkbox:checked{background:var(--text-color);border-color:var(--text-color)}@media(hover:hover)and (pointer:fine){.checkbox:hover:not(:disabled):not(:focus-visible){border-color:var(--border-hover)}}.checkbox:checked:before{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);color:var(--bg-color);font-size:.85em;font-weight:600;line-height:1}.checkbox:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.checkbox:disabled{opacity:.4;cursor:not-allowed}.checkbox:active:not(:disabled){transform:scale(.95)}.checkbox-s{width:clamp(16px,2vw,18px);height:clamp(16px,2vw,18px)}.checkbox-m{width:clamp(18px,2.2vw,20px);height:clamp(18px,2.2vw,20px)}.checkbox-l{width:clamp(20px,2.5vw,22px);height:clamp(20px,2.5vw,22px)}.radio{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:clamp(18px,2.2vw,20px);height:clamp(18px,2.2vw,20px);border:1.5px solid var(--input-border);border-radius:50%;background:rgba(0,0,0,0);cursor:pointer;position:relative;transition:all .2s ease;flex-shrink:0;outline:none;margin:0}.radio:checked{border-color:var(--text-color)}@media(hover:hover)and (pointer:fine){.radio:hover:not(:disabled):not(:focus-visible){border-color:var(--border-hover)}}.radio:checked:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:50%;height:50%;border-radius:50%;background:var(--text-color);animation:radio-pop .2s ease}.radio:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.radio:disabled{opacity:.4;cursor:not-allowed}.radio:active:not(:disabled){transform:scale(.95)}@keyframes radio-pop{0%{transform:translate(-50%,-50%) scale(0)}50%{transform:translate(-50%,-50%) scale(1.2)}to{transform:translate(-50%,-50%) scale(1)}}.radio-s{width:clamp(16px,2vw,18px);height:clamp(16px,2vw,18px)}.radio-m{width:clamp(18px,2.2vw,20px);height:clamp(18px,2.2vw,20px)}.radio-l{width:clamp(20px,2.5vw,22px);height:clamp(20px,2.5vw,22px)}.form-group{margin-bottom:clamp(16px,2.5vw,20px)}.form-group-inline{display:flex;align-items:center;gap:clamp(8px,1.2vw,12px)}@media(hover:none)and (pointer:coarse){.checkbox:hover:not(:disabled),.input:hover:not(:disabled),.radio:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--input-border)}}